hallo forum

ich möchte eine externe UDF nutzen, die mit unterschiedlichen Parametern aufgerufen werden kann. Ich registriere hierzu die gleiche Funktion mit den jeweiligen Paramtern mit SPECIFIC Name.

Es soll immer das gleiche RPG-SRVPGM gecallt werden.

Wie kann ich im RPG die Anzahl der übergebenen Parameter abfragen??

%parms wird nicht unterstützt und liefert keinen Wert.

Ich habe schon verschiedene Parameter-Styles probiert. Bei Parameter-Style SQL und DB2SQL kann ich zwar die NULL-Indicator ansprechen, bekomme aber keinen Wert in die Funktion exportiert. Das Ergebniss der Funktion ist immer NULL.

Mit Paramter-Style GENERAL WITH NULLS habe ich das gleiche Problem.

evtl. habt ihr einen Tip
thx

Hier die Funktionsdef.
CREATE FUNCTION CMXLIB/GET_VK (
FIRMA CHAR(3) ,
ARTN DECIMAL(8, 0) ,
FILIALE CHAR(3) ,
GROP DECIMAL(2, 0) ,
DATUM DATE, BRUNET varchar(1))
RETURNS dec(9, 4)
CAST FROM numeric(9, 4)
LANGUAGE RPGLE
SPECIFIC GET_VK1
NOT DETERMINISTIC
not fenced
external action
NO SQL
PARAMETER STYLE GENERAL WITH NULLS
EXTERNAL NAME 'CMXLIB/CAPI136R(GET_VK)';

Hier das Parameterinterface vom RPG:
p get_vk b export
d get_vk pi 9s 4
d p$firma 3
d p$artn 8 0
d p$filial 3
d p$grop 2 0
d p$datum d datfmt(*iso)
d p$brunet 1 varying
d p$firma_ni 2b 0
d p$artn_ni 2b 0
d p$filial_ni 2b 0
d p$grop_ni 2b 0
d p$datum_ni 2b 0
d p$brunet_ni 2b 0
d p$vkpr_ni 2b 0