[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Nov 2001
    Beiträge
    96

    RPGII, RPGIII, RPG400, RPGIV, ILE Was ist was?

    Hallo,

    wir diskutieren gerade über die verschiedenen RPG-Arten.
    Sind uns aber nicht ganz einig was die Bezeichnung nun eigentlich bedeuten.

    RPGII:
    ganz altes RPG mit Zyklus, Quellenart RPG

    RPGIII + RPG400:
    "normales RPG" ohne Zyklus, Quellenart RPG

    ILERPG + RPGIV:
    ILE-RPG, Quellenart RPGLE

    Free-Format-RPG:
    ?????????????????????

    Ist das so richtig?

    Gibt es einen Unterschied zwischen ILERPG und RPGIV?

    Was ist Free-Format-RPG? Ab welchem Release kann man es
    einsetzen? Worin besteht der Unterschied zu ILERPG?

    Und wo geht die Reise hin? ILERPG, Free-Format, ........ ???

    Was ist eure Meinung?

    Vielen Dank im Voraus

    Jürgen Schnichels

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Alle RPG-Versionen (auch ILE) unterstützen noch die Zyklus-Programmierung !

    RPGIV ist auch Quellenart RPG und ist eigentlich identisch zu RPG/400.

    ILERPG und Freeformat (seit V5) gehören eigentlich zusammen. Das Freeformat bietet nur eine etwas komfortablere Quelleneditierung (Einrückungen) und ein paar Erweiterungen bzgl. der Dateizugriffe (Keyliste ohne KLIST).
    Ansonsten kann auch ohne /Free genau das Gleiche programmiert werden wie mit /Free.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Hier ein kurzer Überblick:

    RPGII oder RPG/36 --> auf der /36
    RPGIII oder RPG/38 --> auf der /38

    RPG400 entspricht RPGIII nur auf der AS/400
    RPGIII und RPG400 werden oft als Synonym verwendet.
    Quellenart RPG
    --> RPGII, RPGIII und RPG400 sind definitiv tot, da alle weitere Entwicklung nur noch in RPGIV erfolgt.

    RPGIV seit Release V3R1M0
    Quellenart RPGLE
    Erweiterung von RPGIII
    Längere Datei-/Feld-Namen, z.T. andere OpCodes z.B. SELECT statt SELEC, erweiterter Faktor 2, Einsatz von Built-in-Funktionen

    Free Format RPG seit Release V5R1M0
    Quellen-Art RPGLE
    C-Bestimmungen können ohne Spalten-Format geschrieben werden.
    Free-Format-Codierung beginnt mit der Compiler-Direktive /FREE und endet mit /END-FREE.
    Free-Format und klassische Schreibweise können in der gleichen Quelle verwendet werden.
    Veränderte Reihenfolge im Free-Format: OPCODE Faktor1 Faktor2 Ergebnis.
    Keine Unterstützung von Bedingungs- und Ergebnis-Indikatoren
    Nicht alle OPCodes werden im Free Format unterstützt (z.B. MOVE)
    Felddefinitionen sind nur in D-Bestimmungen möglich
    Jedes Statement endet mit einem Semi Colon.
    In Release V5R1M0 gibt es für jede Free-Format-Codierung eine Entsprechung in der klassischen Schreibweise. In V5R2M0 gibt es Neuerungen, die nur noch im Free-Format möglich sind.
    Free Format RPG ist und bleibt RPGIV (zumindest vorerst!)

    ILERPG und RPGIV werden oft als Synonym verwendet, was jedoch nicht ganz korrekt ist. Jedes ILERPG-Programm ist in RPGIV geschrieben, jedoch nicht jedes RPGIV-Programm ist ein ILE Programm.
    ILE ist eigentlich ein Programmierungs-Konzept, mit Prototyping, Erstellen von Prozeduren, Funktionen, Service-Programmen u.ä.
    Durch ILE ist es möglich Funktionen und Methoden aus anderen Programmiersprachen (z.B. C oder JAVA) direkt in ein Programm einzubinden.

    Was die zukünftige Entwicklung in RPG angeht:
    1. Umstieg auf RPGIV
    2. Free-Format ist im ersten Schritt nicht unbedingt erforderlich.
    (In Code400 gibt es z.B. eine Option, mit der Quellen von der klassischen Schreibweise in Free-Format konvertiert werden können)
    3. Ganz wichtig sich mit den ILE-Konzepten auseinander setzen und auf modulare Programmierung umsteigen.
    4. Noch ist RPG auf der i5 die erste Wahl, auch wenn manche Kollegen anderer Meinung sind.
    Allerdings sollte man, gerade was Dialog-Programmierung angeht, mal in Richtung JAVA schauen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Nov 2001
    Beiträge
    96
    Hallo,

    danke für die ausführlichen Antworten. Jetzt wissen wir Bescheid.

    mfG

    Jürgen Schnichels

  5. #5
    Registriert seit
    Nov 2001
    Beiträge
    96
    Doch noch ein paar Fragen:

    RPG/400 ist immer Quellenart RPG?

    RPG IV ist immer Quellenart RPGLE?

    Es reicht nicht aus aus einer RPG einfach einen RPGLE Quelle zu machen und diese dann umzuwandeln. Mann muss diese mit CVTRPGSRC umsetzen, dann ist eine RPGLE Quelle entstanden, wenn ich diese dann umwandele habe ich ein RPG IV Programm aber ohne ILE Funktionen?

    Jetzt kann ich in diese Quelle ILE Funktionen einbauen, dann habe ich ein ILE Programm?

    So richtig?

    mfG

    Jürgen Schnichels

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    Quellen-Art

    Hallo Jürgen,

    wenn Du von RPGIII auf RPGIV konvertieren willst benötigst Du den Befehl CVTRPGSRC.
    Bei diesem Befehl werden die Bestimmungs-Arten umgesetzt.
    H-Bestimmungen sind in RPGIV nicht mehr an ein Spalten-Format gebunden, sondern werden durch Schlüssel-Worte angegeben.
    In den F-Bestimmungen gibt es einige Änderungen, z.B. ein Datei-Name kann in RPGIV bis zu 10 Stellen lang sein.
    E-Bestimmungen und L-Bestimmungen und Teile der I-Bestimmungen werden in D-Bestimmungen, die es in RPG400 noch nicht gibt umgewandelt. Faktor1, Faktor2 und Ergebnis sind in RPGIV 14 Stellen lang, OpCode 10 stellen. Der Convert-Befehl bereitet die C-Bestimmungen im neuen Format auf.
    Das Ergebnis ist immer noch RPG400, das jetzt nach RPGIV aussieht.
    Für weitere Anpassungen z.B. Ersetzen von Z-ADD in EVAL brauchst Du ein Tool oder viel Fleiss.
    In diesen geänderten Quellen kannst Du alles machen, was in RPGIV z.Z. möglich ist, z.B. Built-in-Funktionen einbauen, Qualifizierte Datenstrukturen definieren u.v.m.

    Wenn Du RPGLE-Quellen mit Auswahl 14 umwandelst, wirst Du feststellen, dass auch ein anderer Compile-Befehl verwendet wird.
    RPG400-Quellen werden mit CRTRPGPGM erstellt, während für RPGIV der Befehl CRTBNDRPG verwendet wird.

    Sobald Du wirklich mit ILE anfängst, wirst du feststellen, dass vieles z.B. auch die Umwandlung nicht mehr so einfach geht. Und man des öfteren vor Problemen steht, die man sich zu RPGIII-Zeiten noch nicht mal vorstellen konnte.

    Noch eine Anmerkung:
    Falls Du SQL in deinen Quellen verwendest, muss die Quellen-Art für RPG400 SQLRPG und für RPGIV SQLRPGLE sein.
    Ansonsten haben RPG400 Quellen immer die Quellen-Art RPG und RPGIV und ILERPG-Quellen die Quellen-Art RPGLE

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Nov 2001
    Beiträge
    96
    D A N K E !!!!!!!!!!!!!!!!!!!!!!!!!!

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ein, mittels CVTRPGSRC umgesetztes Programm ist im Sinne von ILE tatsächlich ein ILE-Programm.
    Es besteht zwar nur aus einem Modul, verwendet aber trotzdem die Service-Programme der Laufzeitumgebung und ist deshalb als ILE-Programm anzusehen.
    OPM-Programme (RPG) verwenden keine Service-Programme.

    Nachzusehen über DSPPGM, ziehmlich zum Schluß werden die verwendete Service-Programme und Funktionen aufgelistet.

    Aber: Es ist alles eine Betrachtungsweise.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    RPG

    Hallo Baldur,

    sobald Prozeduren aus Service-Programmen aufgerufen werden, spricht man tatsächlich von ILE, auch wenn das Programm nur aus einem Modul besteht.

    Wenn aber nur im OPM-Stil programmiert wird, also nur dynamische Programm-Aufrufe erfolgen, ist das m.E. kein ILE sondern RPGIV.
    In RPGIII war ein statischer Prozedur-Aufruf noch nicht möglich, deshalb kann aus konvertierten Quellen ohne entsprechende Bearbeitung kein ILE-Programm entstehen.

    ILE ist das Konzept und nicht die Programmiersprache!
    Die ILE-Konzepte gelten ebenso für C oder COBOL.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    727
    Hallo Birgitta,
    ich möchte mich auch noch einmischen.
    Ich muß hier Baldur rechtgeben.

    Aus technischer Sicht ist ein mit CRTBNDPGM und DFTACTGRP(*YES) umgewandeltes RPGIV-Programm eine ILE-Objekt, es verhält sich halt wie ein OPM-Programm.

    Auszug aus Online-Doku :

    Wird dieses Programm aufgerufen, wird es immer in der
    Standardaktivierungsgruppe ausgeführt. Die
    Standardaktivierungsgruppe ist die Aktivierungsgruppe, in der alle
    OPM-Programme (OPM = Original Program Model) ausgeführt werden.

    Wird DFTACTGRP(*YES) angegeben, verhalten sich ILE RPG-Programme in
    bezug auf die gemeinsame Benutzung von Dateien, den Dateibereich und
    RCLRSC wie OPM-Programme.

    Statisches Binden in ILE ist nicht verfügbar, wenn ein Programm mit
    DFTACTGRP(*YES) erstellt wird. Dies bedeutet, daß beim Erstellen
    dieses Programms die Parameter BNDDIR oder ACTGRP nicht verwendet
    werden können. Darüber hinaus muß jede Aufrufoperation in der Quelle
    ein Programm und nicht eine Prozedur aufrufen.

    DFTACTGRP(*YES) ist sinnvoll, wenn versucht wird, eine Anwendung auf
    Programmbasis in ILE RPG zu übertragen.


    Weil auch CRTBNDRPG nutzt intern CRTRPGMOD und den Linker CRTPGM.
    Und da hier ja Service-Progamme der ILE-Laufzeitumgebung statisch gebunden und zur Laufzeit auch genutzt werden, handelt es sich um ein ILE-Programmobjekt.
    Jederzeit mit DSPPGM kontrollierbar.

    Das Programm läuft halt nur in der Default-Aktivierungsgruppe, kann keine selbst!!! geschriebenen Prozeduren aufrufen und statisches Binden eigener!!! Module/Service-Programme ist nicht möglich.

    Das Programm kann sehr wohl aber statisch gebundene Prozeduren der Laufzeitumgebung aufrufen.

    Oder um es anders auszudrücken es gibt keinen OPM-Compiler für den Sprachstandard RPGIV.
    Technisch wäre das sicherlich möglich, wenn man auf die ILE-Konstukte verzichten würde.

    Sven

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.873

    ILE oder nicht!

    Hallo Sven,

    diese ganzen technischen Gegenheiten waren mir schon bekannt.

    Wogegen ich mich einfach wehre ist, dass, wie bisher nach OPM, TopDown in Monsterprogrammen programmiert wird und dann behautet wird, das sei ILE.

    Ich habe schon erlebt, dass nur aus einem Grund nach RPGIV konvertiert wurde, weil RPGIII die Anzahl Dateien und Statements nicht mehr verarbeiten konnte. Die Quelle wurde in RPGIII geändert, anschliessend konvertiert und umgewandelt. Die nächste Änderung wurde wieder in der RPGIII Quelle gemacht.

    Solange nicht modular nach ILE-Konzepten programmiert wird, ist es für mich kein ILE sondern RPGIV, auch wenn bei der Umwandlung technisch ein ILE-Objekt entsteht.

    Und ganz ehrlich, es gibt nur wenige, die wirklich ILE RPG programmieren.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn man auf der "grünen Wiese" ein neues Software-Paket entwickelt (aber wer macht das schon noch auf der iSeries), kann man sicherlich nach ILE-Konzepten Programme entwickeln.
    Dann fehlen mir allerdings wesentliche Eigenschaften für ein "richtiges" Konzept:
    Klassen mit Eigenschaften und Methoden, Mehrfachinstanzen sowie Vererbung.
    Das ist aber eher was für C++/Java und wird es sicherlich niemals in ILERPG geben.

    Dann kann ich die Anwendung auch ganz anders konzipieren und meinetwegen auch ILE verwenden.
    Solange ich aber auf der Basis bestehender Anwendungen weiterentwickeln muss, kann ich nun mit ILERPG etwas komfortabler neue Funktionen (Builtin's) nutzen und ggf. in Freeformat lesbarere Quellen erstellen (was allerdings Alt-RPGler ziehmlich schwierig finden).

    Das eigentlich ILE-Konzept wird allerdings eher selten verwendet:
    Integrated-Language-Environment besagt nun mal, dass ich je nach Anforderung die für mich günstigste Sprache für die Entwicklung einer Funktion wähle und dann damit mein Programm zusammenmische.
    Also COBOL/RPG/C++/CLP gemischt in Modulen mit dem jeweils Besten was die Sprache zu bieten hat (Java sollte man allerdings wirklich nicht als Modul hinzuziehen).
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. ILE RPG / SQL Füllen einer Feldgruppe
    By homue in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 18-07-07, 16:47
  2. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  3. ILE Umwandlung per FNDSTRPDM
    By horni in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-12-06, 18:51
  4. RPG III auf V4 oder V5?
    By AJS in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-01-05, 18:41
  5. RPGII auf RPGIII umstellen
    By becama in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-08-02, 07:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •