MIDRANGE 10/2016 - page 36

36
TECHNIK & INTEGRATION
MIDRANGE
MAGAZIN · 10/2016
CLICK TO
Der vollständige Artikel steht Abonnenten
des TechKnowLetters online zur Verfügung.
Prototypen und ihre Besonderheiten
Prozeduren im Free-Format –
Teil 2
Prototypen werden zur Parameterprüfung zur Compile-Zeit benötigt. Bei der Prüfung
erfolgt ein Abgleich zwischen den übergebenen und den im Prototypen hinterlegten
Parametern. Werden Prototypen für Funktionen oder Methoden, die in anderen
Programmiersprachen geschrieben wurden, erstellt, können diese fremden Funktionen
wie RPG-Prozeduren aufgerufen und verarbeitet werden. In diesem Artikel wird gezeigt,
wie Prototypen im Free-Format codiert werden können und welche Besonderheiten
zu beachten sind.
S
ofern ein Programm oder eine Pro-
zedur im Free-Format aufgerufen
werden soll, muss der Operations-Code
CallP (= Call with Prototype), dessen
Angabe im Free-Format optional ist,
verwendet werden.
Prototypen werden zur Parame-
terprüfung zur Compile-Zeit verwen-
det. Um einen Parameterabgleich zur
Compile-Zeit zu ermöglichen, müssen
die Prototypen für die aufgerufenen
Programme und Prozeduren in jeder
Quelle hinterlegt werden, in der der
entsprechende Aufruf über CallP oder
ohne Angabe eines CallP-Befehls er-
folgt.
Um Fehler durch Mehrfachcodie-
rung der Prototypen zu vermeiden,
sollten die Prototypen als Copy-Stre-
cken über eine Copiler-Anweisung,
wahlweise /COPY oder /INCLUDE, ein-
gebunden werden.
Werden Funktionen und Metho-
den, die in anderen Programmier-
sprachen geschrieben wurden, im
Free-Format aus RPG aufgerufen, so
müssen auch für diese Funktionen
und Methoden Prototypen generiert
und eingebunden werden. Mit dem
korrekten Prototypen können solche
„fremden“ Funktionen und Methoden
nach den gleichen Regeln wie RPG-
Prozeduren/-Funktionen aufgerufen
und ausgeführt werden.
Prototypen im Free-Format
Die Syntax und der Aufbau eines Proto­
typen, der nur zur Parameterprüfung
verwendet wird, entspricht weitgehend
der Syntax und dem Aufbau des Proce-
dure Interface.
Im Fix-Format wird anstatt einer
PI-Zeile (PI auf Position 24/25) eine
PR-Zeile (PR auf Position 24/25) defi-
niert.
Im Free-Format beginnt der Proto-
typ immer mit dem Operations-Code
DCL-PR (Declare Prototype), und er
endet mit dem Operations-Code END-
PR (End Prototype). Die einzelnen Pa-
rameter werden zwischen den beiden
Operations-Codes hinterlegt. Sofern für
die Prozedur keine Parameter definiert
werden, kann END-PR direkt am Ende
des DCL-PR Statement angegeben wer-
den. In diesem Fall wird nur ein einzi-
ges Statement, das mit einem Semiko-
lon beendet wird, codiert.
Im Gegensatz zum Procedure In-
terface ist die Angabe des Prozedur-
namens nach dem Operations-Code
DCL-PR zwingend erforderlich. Der
Sonderwert *N darf auch dann nicht
verwendet werden, wenn der Proze-
durname im Schlüsselwort ExtProc
hinterlegt wurde.
Der Prototyp wird lediglich bei der
Kompilierung zur Prüfung der überge-
benen Parameter verwendet. Da beim
Aufruf beliebige Parameternamen oder
-ausdrücke verwendet werden kön-
nen, erfolgt der Abgleich nur über die
Anzahl, über die Datentypen und die
Datenlängen sowie über die bei den Pa-
rametern hinterlegten Schlüsselworte.
Der Parametername wird nicht geprüft.
Im Fix-Format ist deshalb auch die An-
gabe von Parameternamen im Proto-
typen optional. Im Free-Format muss
dagegen entweder ein (beliebiger) Na-
me oder der Sonderwert *N hinterlegt
werden.
Der Prozedurname kann beim END-
PR Statement wiederholt werden, die
Angabe ist jedoch nicht erforderlich.
Beim END-PI Statement (Ende Proce-
dure Interface) ist dagegen die Angabe
des Prozedurnamens nicht erlaubt.
Birgitta Hauser
ó
1...,26,27,28,29,30,31,32,33,34,35 37,38,39,40,41,42,43,44,45,46,...52
Powered by FlippingBook