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