Ob dein Programm die Aufrufparameter über *ENTRY oder Interface definiert ist dem rufenden Programm letztlich egal da es sich hierbei ausschließlich um Compiler-Direktive handelt.

Wenn du dir per DSPPGM mal die Anzahl Parameter (Programmstatistik) ansiehst, so wirst du feststellen dass jedes Programm zwischen 0 und 255 Aufrufparameter hat selbst wenn du keine definiert hast.

Deshalb gibt es ja erst Laufzeitfehler nach dem Aufruf eines Programmes. Die Anzahl Parameter kannst du mit %parms() abfragen und ob ein Parameter besetzt ist mit %addr(Parm) = *NULL.

Beim CLP wird die Anzahl der Parameter festvorgegeben, weshalb es da ggf. beim Aufruf schon den Parameterfehler gibt.

Eine Mischung zwischen ILE- und OPM-Calls ist daher jederzeit möglich.