View Full Version : ILE/RPG Module, Prozeduren, Serviceprogramme
sunnysidesup
12-08-04, 11:51
Hallo,
ich habe ein schlaues ILE-RPG-Buch, in den die Erstellung von Modulen, Prozeduren und Serviceprogrammen erklärt ist. Aber nirgends steht, wie die Source z.B. eines RPG-Moduls aufgebaut ist. Ist das ein vollständiges RPG-Programm mit F,D,C-Anweisungen oder nur Code-Schnipsel beliebiger Art...?
Und wie spricht man ein Modul an, das ich mit CRTPGM PGM1 MODULE(MOD1) oder in einem Service-Programm eingebunden habe? Mit CALLB oder? Mit dessen Namen (MOD1)? Mit einem Funktionsnamen, der in dem Modul definiert ist, wie z.B. bei Java? Gibt es auch Parameterübergaben? Kann ein Modul mehrere Funktionen (Einstiegspunkte) haben oder wird es von oben bis unten abgearbeitet?
Wenn ich mit CRTPGM mehrere Module zu einem lauffähigen Programm verbinde, mit welchem Modul beginnt dann die Programmausführung? Oder habe ich mehrere Einstiegspunkte? Oder kann es nur von "außen" aufgerufen und ausgeführt werden?
Kann mir jemand sagen, ob es irgendwo Source-Code-Beispiele gibt oder mir welche zur Verfügung stellen oder mir ein gutes Buch dazu nennen.
Danke und Gruß
Sunny
Hallo Sunny
Hallo,
ich habe ein schlaues ILE-RPG-Buch, in den die Erstellung von Modulen, Prozeduren und Serviceprogrammen erklärt ist. Aber nirgends steht, wie die Source z.B. eines RPG-Moduls aufgebaut ist. Ist das ein vollständiges RPG-Programm mit F,D,C-Anweisungen oder nur Code-Schnipsel beliebiger Art...?
Sunny
so schlau scheint das Buch auch wieder nicht zu sein.
Und wie spricht man ein Modul an, das ich mit CRTPGM PGM1 MODULE(MOD1) oder in einem Service-Programm eingebunden habe? Mit CALLB oder? Mit dessen Namen (MOD1)? Mit einem Funktionsnamen, der in dem Modul definiert ist, wie z.B. bei Java? Gibt es auch Parameterübergaben? Kann ein Modul mehrere Funktionen (Einstiegspunkte) haben oder wird es von oben bis unten abgearbeitet?
Sunny
aufgerufen werden die Procedures mit CALLP unter Verwendung eines Prototyps, dabei können Parameter übergeben werden. Ein Modul kann mehrere Funktionen enthalten, die dann Einstiegspunkte sind, wenn sie exportiert werden.
Wenn ich mit CRTPGM mehrere Module zu einem lauffähigen Programm verbinde, mit welchem Modul beginnt dann die Programmausführung? Oder habe ich mehrere Einstiegspunkte? Oder kann es nur von "außen" aufgerufen und ausgeführt werden?
Sunny
Die Programmausführung beginnt mit der Main Procedure (das ist die namenlose globale vor der ersten P Bestimmung), das Modul wird beim CRTPGM angegeben.
Kann mir jemand sagen, ob es irgendwo Source-Code-Beispiele gibt oder mir welche zur Verfügung stellen oder mir ein gutes Buch dazu nennen.
Sunny
Source Beispiele gibt es auf allen Open Source Seiten und zusätzlich natürlich auch noch auf den Seiten der Zeitschriften und es gibt Beispiele in den Referenz Handbüchern von IBM.
mfg
Dieter Bender
sunnysidesup
12-08-04, 12:52
Hallo Dieter,
1000 Dank für die Infos!
<<< Source Beispiele gibt es auf allen Open Source Seiten und zusätzlich natürlich auch noch auf den Seiten der Zeitschriften und es gibt Beispiele in den Referenz Handbüchern von IBM. >>>>
Wie/wo finde ich denn die Open Source Seiten?
Danke! :-)
Gruß Sunny
Hallo Sunny,
zum Beispiel:
http://www.opensource400.org/
oder
help400.de
oder
Herrn Google fragen
oder
dem Link meiner Signatur folgen
mfg
Dieter Bender
Hallo Dieter,
1000 Dank für die Infos!
<<< Source Beispiele gibt es auf allen Open Source Seiten und zusätzlich natürlich auch noch auf den Seiten der Zeitschriften und es gibt Beispiele in den Referenz Handbüchern von IBM. >>>>
Wie/wo finde ich denn die Open Source Seiten?
Danke! :-)
Gruß Sunny
Hallo Dieter,
1000 Dank für die Infos!
<<< Source Beispiele gibt es auf allen Open Source Seiten und zusätzlich natürlich auch noch auf den Seiten der Zeitschriften und es gibt Beispiele in den Referenz Handbüchern von IBM. >>>>
Wie/wo finde ich denn die Open Source Seiten?
Danke! :-)
Gruß Sunny
Hallo Sunny,
vielleicht helfend Dir die folgenden Links weiter.
ILE Universum (http://www.common-d.de/pdf04/ws-rpg/ILE_universum.pdf)
Prototyping (http://www.common-d.de/pdf04/ws-rpg/prototyping.pdf)
Wichtig und sehr hilfreich ist auch das Redbook:
Who Knew You Could Do That with RPG IV? A Sorcerer’s Guide to System Access andMore (http://www.redbooks.ibm.com/pubs/pdfs/redbooks/sg245402.pdf)
Birgitta
sunnysidesup
12-08-04, 14:11
vielleicht helfend Dir die folgenden Links weiter.
ILE Universum (http://www.common-d.de/pdf04/ws-rpg/ILE_universum.pdf)
Prototyping (http://www.common-d.de/pdf04/ws-rpg/prototyping.pdf)
Hallo Birgitta,
das ist ja genial! 1000 Dank! :-)
Damit habe ich mal einen guten Überblick, was es mit ILE/RPG auf sich hat! Ich habe gar nicht gewußt, dass es so stark von RPG/400 abweicht! Kann man sich das einfach im Selbststudium aneignen? Was schätzt Du wie lange man braucht, um das alles zu verstehen?
Kannst Du mir vielleicht ein gutes Buch (möglichst in deutsch!) empfehlen, das die Vorgehensweise mit Modulen, Prozeduren und Co genau beschreibt. Deine Unterlagen sind toll, aber mir fehlt leider das, was Du in Deinem Kurs dazu erläuterst.
1000 Dank!
Sunny
Wenn du Kenntnisse in C-ähnlichen (prozeduralen) Sprachen hast, dann ist das absolut kein Problem, da man viele Elemente wieder findet.
Naja, RPG solltest du schon kennen ;)
Damit habe ich mal einen guten Überblick, was es mit ILE/RPG auf sich hat! Ich habe gar nicht gewußt, dass es so stark von RPG/400 abweicht! Kann man sich das einfach im Selbststudium aneignen? Was schätzt Du wie lange man braucht, um das alles zu verstehen?
Kannst Du mir vielleicht ein gutes Buch (möglichst in deutsch!) empfehlen, das die Vorgehensweise mit Modulen, Prozeduren und Co genau beschreibt. Deine Unterlagen sind toll, aber mir fehlt leider das, was Du in Deinem Kurs dazu erläuterst.
1000 Dank!
Sunny[/QUOTE]
Hallo Sunny,
sich ILE im Selbstudium anzueignen ist schon nicht ganz ohne. Ich habe mindestens ein Jahr gebraucht, um das Ganze zu verstehen und bin eigentlich immer noch am lernen.
Die ersten wichtigen Schritte habe ich aus dem "Sorcerer's Guide" (den Link habe ich im letzten Mail angegeben) und über die ILE-Concepte aus der Online Library gelernt. Ansonsten viel Nachdenken und Versuch und Irrtum.
Deutsche Bücher zu dem Thema kenne ich eigentlich nicht. Ich habe zwar ein ca 100seitiges Handout zu dem Thema geschrieben, aber leider kann ich dies nicht herausgeben, da es Bestandteil unserer Schulungsunterlagen ist.
Birgitta
Hallo,
Hallo Sunny,
sich ILE im Selbstudium anzueignen ist schon nicht ganz ohne. Ich habe mindestens ein Jahr gebraucht, um das Ganze zu verstehen und bin eigentlich immer noch am lernen.
Birgitta
Das kann man so pauschal nicht sagen. Für einen OPM Programmierer, der von klassischem RPG her kommt ist das durchaus richtig, für einen C, Pascal oder Java Programmierer stimmt das so nicht, für den mag allenfalls die Programmerstellung etwas umständlich und das statische Binden etwas absonderlich sein; ansonsten hat das für ihn/sie mehr Wiedererkennungswert als OPM RPG (insbesondere im Free Format).
Die seltsamen Lochkartendeklarationen sind RPG und nicht ILE Thema.
Für einen Java Programmierer zum Beispiel :
- ist ein Modul nichts anderes als eine statische Klasse
- sind Procedures nichts anderes als statische Methoden
- und P Bestimmungen deren Deklaration
- export bedeutet public, default ist private
- Prototypen braucht nur der Compiler
- globale Deklarationen entsprechen Klassenvariablen
- sind lokale Variablen normal
- und eine globale Procedure ist ein namenloses main
- mit einer seltsamen Schnittstellendeklaration
- sind Binderverzeichnisse, Signaturen und Binderlanguage Quatsch
- darf man Methoden leider nicht überladen
- hat der Compiler leider keine ausreichende Typprüfung
- und Errorhandling ist leider Luxus und teuer
- sind eval, call, callb und callp überflüssige Anweisugen
- von denen es eine ganze Menge weitere gibt
- ist die Unterscheidung zwischen BIFs und Procedures künstlich
- aber das % Zeichen am Anfang ist lustig
- lästig ist allerdings, dass man Methodenaufrufe nicht qualifizieren darf.
So kuriose Dinge, wie Speicherüberlagerungen in den Deklarationen muss man nicht machen, die F Lochkarten kann man aus Beispielen abschreiben und die Lese- und Schreiboperationen sehen alle viel freundlicher aus, wenn man mit Programm beschriebenen Dateien und externen Datenstrukturen arbeitet, in die man liest und aus denen man schreibt, wenngleich es merkwürdig ist, dass das nicht als normale Funktionsaufrufe geschrieben werden darf, lustig müssen Sie schon gewesen sein, die alten Lochkartenzeiten und dass sich noch jemand daran erinnert...
Dieter Bender
Hallo,
Das kann man so pauschal nicht sagen. Für einen OPM Programmierer, der von klassischem RPG her kommt ist das durchaus richtig, für einen C, Pascal oder Java Programmierer stimmt das so nicht, für den mag allenfalls die Programmerstellung etwas umständlich und das statische Binden etwas absonderlich sein; ansonsten hat das für ihn/sie mehr Wiedererkennungswert als OPM RPG (insbesondere im Free Format).
Die seltsamen Lochkartendeklarationen sind RPG und nicht ILE Thema.
Für einen Java Programmierer zum Beispiel :
- ist ein Modul nichts anderes als eine statische Klasse
- sind Procedures nichts anderes als statische Methoden
- und P Bestimmungen deren Deklaration
- export bedeutet public, default ist private
- Prototypen braucht nur der Compiler
- globale Deklarationen entsprechen Klassenvariablen
- sind lokale Variablen normal
- und eine globale Procedure ist ein namenloses main
- mit einer seltsamen Schnittstellendeklaration
- sind Binderverzeichnisse, Signaturen und Binderlanguage Quatsch
- darf man Methoden leider nicht überladen
- hat der Compiler leider keine ausreichende Typprüfung
- und Errorhandling ist leider Luxus und teuer
- sind eval, call, callb und callp überflüssige Anweisugen
- von denen es eine ganze Menge weitere gibt
- ist die Unterscheidung zwischen BIFs und Procedures künstlich
- aber das % Zeichen am Anfang ist lustig
- lästig ist allerdings, dass man Methodenaufrufe nicht qualifizieren darf.
So kuriose Dinge, wie Speicherüberlagerungen in den Deklarationen muss man nicht machen, die F Lochkarten kann man aus Beispielen abschreiben und die Lese- und Schreiboperationen sehen alle viel freundlicher aus, wenn man mit Programm beschriebenen Dateien und externen Datenstrukturen arbeitet, in die man liest und aus denen man schreibt, wenngleich es merkwürdig ist, dass das nicht als normale Funktionsaufrufe geschrieben werden darf, lustig müssen Sie schon gewesen sein, die alten Lochkartenzeiten und dass sich noch jemand daran erinnert...
Dieter Bender
Hallo Dieter,
das mag ja alles richtig sein, was Du sagst.
Aber soweit ich das beurteilen kann handelt es sich bei Sunny um einen klassischen RPG Programmierer (so wie ich einer bin), der sich vorsichtig in die neue Welt der modularen Programmierung vortasten will. Viele von uns müssen sich leider mit gewachsenen Anwendungen herumschlagen, die man nicht von heute auf morgen umstellen kann. Dazu kommt noch, dass in der heutigen Zeit oft kein Geld für Schulungen zur Verfügung gestellt werden kann. Sich JAVA im Selbsttudium beizubringen ist m.E. schlichtweg unmöglich. Der Weg für uns "klassische RPG-Programmierer" ist nun mal nicht von JAVA nach RPG, sondern umgekehrt. Wenn man allerdings ILE einigermaßen verstanden hat, ist man zumindest mal in der Lage JAVA-Quellen zu entziffern und zu verstehen. Dann fällt einem der nächste Schritt nicht ganz so schwer.
Übrigens noch eine Anmerkung und die kommt direkt hier aus Rochester von der Quelle:
Die iSeries Roadmap sieht keineswegs eine Ablösung von RPG durch JAVA vor, sondern ein friedliches Miteinander, da jede Sprache ihre Stärken und Schwächen hat. Das bedeutet jedoch nicht, dass man wild Java-Methoden aus RPG und RPG-Funktionen aus JAVA aufrufen sollte. Dazu sind beide Sprachen doch zu verschieden.
Birgitta