Hallo,

SQL kennt keine optionalen Paramter, dafür können Prozeduren und User Defined Functions überladen werden, d.h. die gleiche Prozedur oder Funktion kann mehrfach in der gleichen Bibliothek, jedoch mit unterschiedlicher Parameter-Definition existieren.

Wenn eine RPG-Prozedur oder Funktion mit optionalen Parametern registiert werden soll, müssen die optionalen Parameter mit OPTIONS(*NOPASS: *OMIT) definiert werden und entsprechend geprüft werden.

Für jede Parameter-Kombination muss dann die Funktion mit dem gleichen Namen registriert werden. (Es ist NICHT erforderlich für jede Parameter-Kombination eine eigene RPG-Funktion zu erstellen.)

Für die optionalen Parameter werden beim Aufruf der Funktion als UDF NULL-Pointer übergeben. Deshalb ist die Definition mit *OMIT und die Prüfung der optionalen Parameter auf *NULL erforderlich.

Die Indikator-Variablen können beim Parameter Style GENERAL WITH NULLS oder SQL wahlweise als eigene Parameter oder als Feldgruppe mit einem Element pro Parameter definiert werden. Die Parameterübergabe wird korrekt gehandelt.

Birgitta