| Auszug | ||
|---|---|---|
| ||
Nuclos berechnete Attribute: Datenbankfunktion CA_, INTID-Parameter, SORT_CALCULATED_ATTRIBUTES, SQL-Beispiel, Ampel als Bild. |
Sprache: Deutsch · English
Attributwerte zur Laufzeit per Datenbankfunktion berechnen – inkl. SQL-Beispielen und Status-Ampeln.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
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
...
Die Berechnung von Attributen des Typs Referenzfeld ist nicht möglich.
| Warnung |
|---|
Berechnete Attribute sollten sparsam verwendet werden, da ihre Berechnung unter Umständen sehr zeitintensiv werden kann, vor allem bei Suchen und der Anzeige in der Suchergebnisliste. |
. Ihr Wert kann daher auch nicht per Regel gesetzt werden; Referenzfelder lassen sich nicht berechnen.
| Warnung | ||
|---|---|---|
| ||
Sparsam einsetzen: Die Berechnung kann – besonders bei Suchen und in Suchergebnislisten – sehr zeitintensiv werden. |
| Info | ||
|---|---|---|
| ||
Die Sortierung berechneter Attribute in der Suchergebnisliste ist standardmäßig deaktiviert und lässt sich über den |
...
Parameter |
Es gibt zwei Wege für die Erstellung eines berechneten Attributes.
...
...
...
...
Der Rückgabewert der Datenbankfunktion muss den Ergebniswert des berechneten Attributes zurückgeben. Der Datentyp muss mit dem Attribut im BO-Wizard übereinstimmen.
...
CA_ (...
...
...
...
...
Berechnet
...
Bestand − Reserviert. Der Übergabeparameter id
...
ist die INTID
...
des aktuellen Objekts; der Rückgabewert ist varchar2 (Attributwerte werden als String abgelegt).
| Codeblock | ||
|---|---|---|
| ||
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.
| Codeblock | ||
|---|---|---|
| ||
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.