Seitenhistorie
...
Codeblock |
---|
ALTER FUNCTION "CA_GET_VORGANGSNUMMER" (@projektnummer numeric(20), @vorgangstyp VARCHAR(30)) RETURNS INT AS BEGIN declare @nummer numeric(20) declare @counter numeric(20) SELECT @counter = COUNT(*) FROM t_ad_hertwich_vorgangsnr WHERE projektnr = @projektnummer AND TYP = @vorgangstyp IF @counter = 0 BEGIN RETURN 0 END SELECT @nummer = t1.vorgangnr FROM t_ad_hertwich_vorgangsnr t1 WHERE t1.projektnr = @projektnummer AND t1.typ = @vorgangstyp RETURN @nummer END |
Beispiel 2 (PostgreSQL):Berechnet die Anzahl aller Bestellwerte, die noch keine Rechnungen oder Lieferscheine enthalten. Diese Berechnung wird anhand eines Dynamischen Businessobjekt durchgeführt und es wird somit auf die View zugegriffen. Der Übergabeparameter id stellt in die INTID von dem aktuellen Objekt dar. Dieses wird automatisch an die Funktion mit übergeben.
Codeblock |
---|
CREATE OR REPLACE FUNCTION CA_BESTELLWERTGESAMT(id numeric)
RETURNS numeric AS
$BODY$
DECLARE
summe numeric (15, 2);
BEGIN
SELECT SUM(bestellwert) INTO summe
FROM v_de_bestellungen
WHERE intid_t_ud_genericobject = id;
RETURN summe;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100; |
Achtung: Bei PostgreSQL muss immer eine Löschanweisung mit angegeben werden, die für den Fall der Löschung des Berechnetem Attribut greifen kann.
Überblick
Inhalte