globe with meridians Sprache: Deutsch · English

hammer and wrench Berechnete Attribute

Attributwerte zur Laufzeit per Datenbankfunktion berechnen – inkl. SQL-Beispielen und Status-Ampeln.

HOW-TO ANWENDUNGSENTWICKLER STAND: JUL 2026 GILT FUER NUCLOS 4.2026.X

Auf dieser Seite

Was ist ein berechnetes Attribut?

Statt einen festen Wert zu speichern, bezieht ein berechnetes Attribut seinen Inhalt aus einer Funktion auf Datenbankebene. Der Wert wird zur Laufzeit neu berechnet und angezeigt – ohne dass der Datensatz gespeichert werden muss. Typische Fälle: Jahresumsatz eines Artikels, berechnete Datumswerte, Status-Ampeln.

Berechnete Attribute verhalten sich fast wie normale Attribute (Anzeige in Layout und Suchergebnisliste), werden aber nicht in der Datenbank gespeichert. Ihr Wert kann daher auch nicht per Regel gesetzt werden; Referenzfelder lassen sich nicht berechnen.

Performance

Sparsam einsetzen: Die Berechnung kann – besonders bei Suchen und in Suchergebnislisten – sehr zeitintensiv werden.

Sortierung

Die Sortierung berechneter Attribute in der Suchergebnisliste ist standardmäßig deaktiviert und lässt sich über den Parameter SORT_CALCULATED_ATTRIBUTES aktivieren.

Zwei Wege der Konfiguration

  • Über ein Datenbankobjekt: eine Datenbankfunktion unter Datenbankobjekte anlegen. Sie erhält die ID des Datensatzes als Parameter und gibt den Ergebniswert zurück (Datentyp muss zum Attribut passen). Der Funktionsname beginnt mit CA_ (Calculated Attribute).
  • Über eine Datenquelle: das berechnete Attribut wird über eine Datenquelle definiert.

Beispiel 1: verfügbare Artikel berechnen

Berechnet Bestand − Reserviert. Der Übergabeparameter id ist die INTID des aktuellen Objekts; der Rückgabewert ist varchar2 (Attributwerte werden als String abgelegt).

CREATE OR REPLACE FUNCTION CA_ARTIKELVERFUEGBAR(id IN number) RETURN varchar2 IS
  summe number(12);
  bestand number(12);
  reserviert number(12);
begin
  SELECT strvalue INTO bestand
  FROM t_ud_go_attribute 
  WHERE intid_t_md_attribute = (SELECT intid FROM t_md_attribute WHERE strattribute='artikelBestand') 
        AND intid_t_ud_genericobject = id;
 
  SELECT strvalue INTO reserviert
  FROM t_ud_go_attribute 
  WHERE intid_t_md_attribute = (SELECT intid FROM t_md_attribute WHERE strattribute='artikelReserviert')
        AND intid_t_ud_genericobject = id;
 
  summe:=bestand-reserviert;
 
  RETURN(summe);
end CA_ARTIKELVERFUEGBAR;

Beispiel 2: Ampel als Bild zurückgeben

Ein berechnetes Attribut kann auch ein Bild liefern – ideal für Status-Ampeln. Die Bilder werden vorab als Ressourcen (Konfiguration → Sonstiges → Ressourcen) hochgeladen.

Ampel als berechnetes Attribut.

CREATE OR REPLACE FUNCTION C31G_CA_PROJEKT_VERFUEGBARKEIT(id numeric) 
RETURNS bytea AS
$BODY$
DECLARE
   ist numeric(9,2);
   soll numeric(9,2);
   bild bytea;
BEGIN
   select dblfortschritt, dblusedbudget / dblworkingbudget * 100 into ist, soll from c31g_projekt where intid=id;
   if (ist = 100) then
      bild := null;
   else
      if (ist >= soll) then
         select blbcontent into bild from t_md_resource where strname = 'Ampel grün';
      else
         select blbcontent into bild from t_md_resource where strname = 'Ampel rot';
      end if;
   end if;
   RETURN bild;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

Anwendung

Im BO-Assistenten wird das berechnete Attribut in Schritt 7 (Attributdefinitionen) verlinkt.

Verknüpfung im BO-Assistenten.

Verwandte Seiten

package Businessobjekt


Attribute.

Öffnen →

file cabinet Datenbankobjekte


DB-Funktionen.

Öffnen →

clipboard Spezielle Datentypen


Datentypen.

Öffnen →

  • Keine Stichwörter