Sprache: Deutsch · English
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
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.
CA_ (Calculated Attribute).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;
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;
Im BO-Assistenten wird das berechnete Attribut in Schritt 7 (Attributdefinitionen) verlinkt.
Verknüpfung im BO-Assistenten.