Der entscheidende Punkt beim Aufruf ist die Verwendung eines Prototyps und nicht die technische Erstellung des Objektes (SRVPGM oder PGM). Der einzige Unterschied, der da sichtbar wird ist, ob es einen Rückgabewert gibt, oder die Rückgabe in einem Aufrufparameter zurückkommt.
Dynamisches binden kann man auf zwei Wegen, entweder durch die Maskierung als SQL Function, oder über die Verwendung von APIs. Im Prototyp wird dann ein Procedure Pointer deklariert, der vor dem ersten Aufruf zugeordnet werden muss (siehe PROCP4NAME auf meiner Freeware Seite).

Der entscheidende Punkt bei der ganzen Angelegenheit ist das Design der Anwendung: bei gutem Design sind Signatur Änderungen selten!!! Programmieren ist eine Design lastige Tätigkeit und gutes Design (erst überlegen, dann tippen) wird immer durch einfache Implementierung und gute Wartbarkeit belohnt. Natürlich muss man dann vom oft zu hörenden "Fang schon mal an..." (zieh Dir schon mal die Hose hoch, den Hintern kannst Du Dir später noch abwischen...) weg.

D*B