MIDRANGE 09/2016 - page 38

38
TECHNIK & INTEGRATION
MIDRANGE
MAGAZIN · 09/2016
CLICK TO
Der vollständige Artikel steht Abonnenten
des TechKnowLetters online zur Verfügung.
Neue Operations-Codes
Prozeduren im Free-Format –
Teil 1
Prozeduren, unabhängig davon, ob sie exportiert oder nur intern verwendet werden, beginnen
und enden in RPG in der klassischen Schreibweise mit einer P-Bestimmung. Zur Definition von
Parametern und zum Abgleich der beim Aufruf übergebenen Parameter bereits zur Compile-
Zeit muss Prototyping verwendet werden. Für die Free-Format-Codierung wurden sowohl für
die P-Bestimmungen als auch zur Definition von Prototypen und Proce
dure Interfaces neue
Operations-Codes zur Verfügung gestellt. In diesem Artikel wird gezeigt, wie Prozeduren mit
Hilfe der neuen Operations-Codes komplett im Free-Format geschrieben werden können.
P
rozeduren, unabhängig davon, ob
sie exportiert oder nur intern ver-
wendet werden, beginnen und enden
im klassischen Format mit einer P-Be-
stimmung.
P-Bestimmungen im Free-Format
Im Free-Format werden die P-Bestim-
mungen durch die Operations-Codes
DCL-PROC (Declare Procedure/Prozedur-
beginn) und END-PROC (End Procedure/
Prozedurende) ersetzt. Wie alle Free-
Format-Bestimmungen werden auch die
DCL-PROC und END-PROC Statements
mit einem Semikolon (;) beendet.
Der eigentliche Prozedurquellcode
wird zwischen den beiden P-Bestim-
mungen bzw. den Operations-Codes
DCL-PROC und END-PROC hinterlegt.
Unmittelbar nach dem Operations-
Code DCL-PROC muss der Prozedur-
name, der beim Prozeduraufruf (Auf-
rufname) verwendet werden soll, an-
gegeben werden. Im Anschluss daran
können die zulässigen Schlüsselworte
folgen. Sofern eine Prozedur expor-
tiert, also von außen aufrufbar ge-
macht werden soll, ist die Angabe des
Schlüsselworts EXPORT erforderlich.
Sofern in multithreadingfähigen An-
wendungen die Prozedurausführung
im gleichen Thread erfolgen soll, muss
das Schlüsselwort SERIALIZE angege-
ben werden.
Die Prozedur muss durch Angabe
des Operation-Codes END-PROC been-
det werden. Die Angabe des Prozedur-
namens im END-PROC Statement ist im
Gegensatz zum Fix-Format optional.
Im folgenden Beispiel wird zu-
nächst die interne Prozedur IntProc01
und im Anschluss die externe Prozedur
ExtProc01 im Free-Format definiert.
Bei der internen Prozedur IntProc01
(1) wird im DCL-PROC Statement ledig-
lich der Prozedurname angegeben.
Bei der externen Prozedur Ext-
Proc01 (2) werden nach dem Prozedur-
namen zusätzlich die Schlüsselworte
EXPORT (Prozedur kann exportiert
werden) und SERIALIZE (in multi­
threadingfähigen Anwendungen erfolgt
die Ausführung im gleichen Thread)
angegeben.
Beim END-PROC Statement (3) wird
der Prozedurname nur bei der internen
Prozedur angegeben, bei der exportier-
ten Prozedur wird jedoch darauf ver-
zichtet.
Prototyping im Free-Format
Zur Parameterdefinition und Übergabe
bei Prozeduren muss Prototyping ver-
wendet werden.
Prototyping wurde zunächst nur für
Prozeduren entwickelt. Im Vergleich
zu *Entry PLists hat Prototyping je-
doch einige Vorteile. So können unter
anderem auch Input-Only- und/oder
optionale Parameter definiert werden.
Mit Hilfe des Schlüsselworts OPTIONS
kann für die einzelnen Parameter noch
eine Reihe weiterer Aufbereitungsope-
rationen hinterlegt werden. Der größte
Vorteil jedoch, den Prototyping bietet,
ist, dass die Parameterprüfung bereits
zur Compile-Zeit erfolgt, wodurch un-
liebsame Überraschungen zur Laufzeit
vermieden werden können.
Birgitta Hauser
ó
// Interne Procedure
DCL-PROC
IntProc01
;
           (1)
  //Procedure Interface          
  //Source Code (F-/D-/C-Bestimmungen)
End-Proc
ntProc01
;
         (3)
// Exportierte Prozedur
DCL-PROC
ExtProc01
Export Serialize;
(2)
  //Procedure Interface          
  //Source Code (F-/D-/C-Bestimmungen)
End-Proc
;
(3)
Beispiel 1: Declare Procedure – DCL-PROC und
END-PROC Statements
1...,28,29,30,31,32,33,34,35,36,37 39,40,41,42,43,44,45,46,47,48,...52
Powered by FlippingBook