Einführung in die RPG/400 Programmierung

harl3kin@buhaboard.de

                                          

1.) Das RPG Datenformat:

 

Datei   {   01        01     123       TEST   <- Satz

                  \          \      /           /

                             Felder     

 

2.) RPG-Bestimmungen

H = besondere Programmattribute

F = Definition der angesprochenen Dateien

I = Definition der Eingabeinformationen

C = Operationen zur Dateienmanipulation

O = Identifikation und Formatierung der ausgegebenen Informationen

 

·         Die 5 wesentlichen RPG-Bestimmungsarten sind Steuer-, Datei-, Eingabe-, Rechen- und Ausgabebestimmungen.

·         Jede in einem Programm benutzte Datei muss durch eine Datei- oder

F-Bestimmung definiert werden.

·         Die Angabe der „Dateiart“ in einer F-Bestimmung spezifiziert, ob eine Datei für die Eingabe oder Ausgabe verwendet wird.

·         Die Ein-/Ausgabebestimmungen bestehen aus zwei unterschiedlichen Formaten: den Beschreibungen auf Satzebene und den Beschreibungen auf Feldebene.

·         Der Name und die Länge von Eingabefeldern werden in den Eingabebestimmungen des Programms festgelegt.

 

 

3.) Quelleneingabedienstprogramm (SEU)

SEU-Zeilenbefehle:

 

Steuerbestimmung                                ->         IPH

Dateibestimmung                                  ->         IPF

Eingabebestimmung (Satzebene)           ->         IPI

Eingabebestimmung (Feldebene)           ->         IPJ

Ausgabebestimmung (Satzebene)          ->         IPO

Ausgabebestimmung (Feldebene)          ->         IPP

 

 

4.) Umwandlung eines Programms:

 


·         Bei einem Compiler handelt es sich um ein Systemprogramm, das RPG-Quellenanweisungen in ein Objektprogramm „übersetzt“.

·         Die Eintragung in dem Feld „Art“ in der Anzeige „Mit Teildateien arbeiten“ wird in Verbindung mit der Auswahl 14 benutzt, um den richtigen CL-Befehl für die Umwandlung auszuwählen.

·         Die Befehlseingabezeile in der Anzeige „Mit Teildateien arbeiten“ kann auch für den Aufruf von Programmen benutzt werden.

·         Umwandlungslisten enthalten sog. „Querverweise“, die die Anweisungsnummern aufführen, in denen Dateien, Felder und Bezugszahlen verwendet werden.

·         In dem Bereich „Nachrichtenzusammenfassung“ einer Umwandlungsliste wird die Summe der auf eine einzelne Bewertungsziffer entfallenden Fehlermeldungen aufgeführt.

 

5.) Erzeugung von Listenüberschriften:

 

6.) Rechenbestimmungen:

 

Rechenoperationen:

Bei keiner Angabe des Operanden im Faktor1 wird der aktuelle Wert des Ergebnisfeldes verwendet!

 

 

7.) Gruppenwechsel:

 

8.) Zwischen-  und Endsummen in einer Liste:

 

 

9.) Verarbeitung mehrerer Satzarten:

 

 

10.) Extern beschriebene Dateien:

 

 

 

Befehl:     dspfd  atsgrg1/pepffm1

(display file description)      Bilbliothek         Quellenteildatei

 

Befehl:     fromfile(atsgrg1/perstamm tofile(atsgrg1/pepffm1) mbropt(*replace)

 

 

 

11. Benutzung einer extern beschriebenen Datei:

 

·         Die SEU-Unterstützungsfunktion Ansehen/Kopieren kann dazu benutzt werden, um Anweisungen aus einer anderen Quellendatei in die gerade bearbeitete Quellenteildatei zu kopieren.

·         Mit der SEU-Unterstützungsfunktion Ansehen/Kopieren kann man sich zwei verschiedene Quellenteildateien gleichzeitig am Bildschirm anzeigen lassen.

·         Die Feldbeschreibungen einer extern beschriebenen Datei werden für eine Programmumwandlung abgerufen und in der Umwandlungsliste mit ausgegeben.

·         Mit dem Zeilenbefehl zum Kopieren von Anweisungen kann auch eine Gruppe von Anweisungen in einem Vorgang an eine andere Stelle kopiert werden.

·         Die Dateibestimmung einer extern beschriebenen Datei erfordert weniger Angaben, da bestimmte Definitionen, die notwendig sind, aus der Dateibeschreibung übernommen werden.

 

12. Datenstrukturen:

 

Erstellung der Datenstruktur:

            Durch Eingabe eines Leerzeichens kann der Datenstruktur-Name ggf. „leer“ bleiben.

            Danach werden wie mit Hilfe der Bedienerführung (F23, J) die Eingaben vorgenommen.

 

 

13.) Tabellenverarbeitung:

 

Mit dem Zeilenbefehl IP** können Werte ohne ein bestimmtes Format eingegeben werden.

 

·         Eine Tabelle kann einfach als eine Gruppe von gleichartigen Daten verstanden werden.

 

14.) Feldgruppenverarbeitung:

 

LOKUP-Operation durchsucht werden.

 

15.) Arithmetische Operationen mit Feldgruppen:

 

·         Mit der XFOOT-Operation kann die Summe aller werte einer numerischen Feldgruppe ermittelt werden.

·         Wurden die Elemente einer Feldgruppe numerisch definiert, können Sie in RPG in einer einzigen Operation eine Rechenoperation mit allen Elementen ausführen.

·         Die einzelnen Elemente einer numerischen Ausführungszeitfeldgruppe werden standardmäßig mit Nullen vorbesetzt.

·         Berechnungen mit numerischen Feldgruppen können die Anzahl der in einem Programm erforderlichen Anweisungen beträchtlich reduzieren.

·         Eine schnelle und einfache Möglichkeit, die Elemente einer Feldgruppe zu laden, besteht darin, diese als Unterfelder einer Datenstruktur zu definieren.

 

16.) Parameter und externe Schalter:

 

·         Bei externen Schaltern handelt es sich um Bezugszahlen, die „außerhalb“ des Programms an- oder ausgesetzt werden, im Programm selbst aber abgefragt werden können.

·         Externe Schalter werden durch den CL-Befehl CHGJOB über den Parameter SWS an- und ausgesetzt.

·         Parameter sind externe Variablen, die an ein Programm bei dessen Ausführung übergeben werden.

·         Als Eingabeparameter verwendete Programmvariablen können nicht als Unterfelder eines Datenstruktur definiert werden.

·         Mit dem Operationscode PARM werden Parameter für ein RPG-Programm definiert.

 

 

17.) Konzepte und Methoden der Dateiverarbeitung:

 

 

·         Extern beschriebene Dateien bestehen aus einer Dateibeschreibung und einer oder mehreren Teildateien.

·         Zugriffspfade beschreiben die Reihenfolge, in der Sätze aus einer Datei einem Programm zur Verfügung gestellt werden.

·         Wurden keine Schlüsselfelder für eine physische Datei definiert, bedeutet das, dass auf die Sätze in Eingangsfolge zugegriffen wird.

·         Die relative Satznummer bezieht sich auf die Position eines Satzes in einer Datei.

 

18.) Logische Dateien:

 

·         Logische Dateien können selbst keine physischen Datensätze enthalten

·         Es gibt keinen Unterschied bei der programminternen Behandlung von physischen und logischen Dateien

·         Logische Dateien erstellen Zugriffspfade, mit denen auf die Sätze einer physischen Datei zugegriffen werden kann.

·         In den DDS wird das Schüsselwort PFILE für eine logische Datei definiert, um hiermit den Bezug zu einer physischen Datei herzustellen.

·         Ein in eine logische Datei ausgegebener Satz wird tatsächlich in einer Teildatei der physischen Datei gespeichert, auf die sich eine logische Datei bezieht.

·         Eine logische Datei kann so definiert werden, dass sich ihr Zugriffspfad auf die Sätze mehrerer physischer Dateien bezieht.

·         Logische Dateien ermöglichen verschiedene logische Sichten auf Daten, die in physischen Dateien gespeichert sind.

 

19.) Wahlfreie Dateiverarbeitung:

 

·         Bei wahlfreier Verarbeitung können Sie einen bestimmten ausgewählten Satz aus einer Datei lesen.

·         Sätze können sowohl bei einem Zugriffspfad in Schlüsselfolge als auch bei einem Zugriffspfad in Eingangsfolge wahlfrei gelesen werden.

·         Ein „K“ in Spalte 31 einer Dateibestimmung bedeutet, dass das >Programm die Sätze dieser Datei in Schlüsselfolge verarbeiten soll.

·         Vollprozedurale Dateien erfordern die explizite Kodierung der Ein- und Ausgabeoperationen in einem Programm.

·         Die Ergebniszahl für eine CHAIN-Operation wird in den Spalten 54+55 angegeben.

·         Das Suchargument für eine CHAIN-Operation muss dieselben Attribute wie der entsprechende Schlüssel der Datei aufweisen.

·         Bei jeder erfolgreichen CHAIN-Operation wird nur ein Satz gelesen.

 

20.) Sequentielle Datenverarbeitung in Grenzen:

 

·         Die Dateiposition, bei der eine SETLL-Operation aufsetzt, wird durch einen sog. Dateizeiger oder Pointer markiert.

·         Eine READ-Operation liest den nächsten Satz einer Datei.

·         Die Ergebnisbezugzahl einer READ-Operation wird angesetzt, wenn das Dateiende erreicht ist.

·         Der Operationscode EXCPT erlaubt die Ausgabe von Informationen auf Abruf, unabhängig von den normalen Ausgabeoperationen im eigentlichen RPG-Zyklus.

·         Die Ausgabe von Sätzen zur Ausnahmezeit wird durch die Angabe eines „E“ in Spalte 15 der Ausgabebestimmungen auf Satzebene erreicht.

 

21.) Operationen zur Dateiverwaltung:

 

 

·         Eine UPDAT-Operation setzt voraus, dass der betreffende Satz vorher gelesen wurde.

·         Die Angabe eines „I“ in Spalte 15 einer Dateibestimmung bedeutet, dass die Sätze der Datei nur gelesen werden können.

·         Eine Datei, die als Fortschreibungs-Erstdatei definiert wurde, benutzt den RPG-Zyklus zum Lesen und zur Ausgabe von Sätzen.

·         Bei Unterprogrammen oder Subroutinen handelt es sich um Gruppen von Anweisungen, die funktional zusammengehörende Verarbeitungsschritte ausführen sollen.

·         GOTO-Operationen können nicht außerhalb von Unterprogrammen verwendet werden, um zu einer TAG-Anweisung in einem Unterprogramm zu springen.

·         Unterprogramme müssen immer als die letzten Anweisungen in einem Programm definiert werden.

 

RPG-Operationscodes:

 

 

22.) Programminterne Dokumentation:

 

·         Erläuterungen zu einzelnen Programmoperationen können in einem Quellenprogramm in Form von nicht-ausführbaren Kommentarzeilen kodiert werden.

·         /SPACE veranlasst den Compiler, eine bestimmte Anzahl von Zeilen zu übergehen, bevor die folgenden Programmanweisungen gedruckt werden.

·         Vor dem eigentlichen Begin eines Programms sollte generell ein Block mit Kommentarzeilen erfasst werden, aus dem der Programmname, die zentralen Programmfunktionen und die Verwendung von Bezugszahlen zu entnehmen sind.

·         Die AS/400 dokumentiert automatisch einige wichtige Beziehungen zwischen einem Programm und den von diesem benutzten Daten.

·         Mit dem Cl-Befehl DSPDBR können die logischen Dateien angezeigt werden, die sich auf eine bestimmte physische Datei beziehen

·         Mit dem CL-Befehl DSPOBJD kann der Name der Quellendatei angezeigt werden, auf deren Grundlage das Programm umgewandelt wurde.

·         Die Textbeschreibung, die eine Quellenteildatei näher erläutert, kann bei der Umwandlung des Programms übernommen werden.