[NEWSboard IBMi Forum]

Thema: RPG und Modul

  1. #1
    Registriert seit
    Feb 2006
    Beiträge
    62

    RPG und Modul

    Hallo zusammen,

    wieweit besteht die Möglichkeit, von RPG aus mit ILE-Modulen zu arbeiten?

    vielen Dank und Gruss

    stoerfang

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    792
    Moin,

    die Möglichkeit besteht Allerdings benötigst du eine RPGLE-Quelle. In diesem Programm kannst du dann eine Procedure aus einem Modul aufrufen (Procedureheader muss im Programm angegeben werden). Wenn du das Programm erstellst, musst du angeben wo sich das Modul befindet. Entweder bindest du das Modul beim Erstellen des Programms direkt über einen Verweis im Parameter MODULE oder das Modul ist in ein Serviceprogramm (dies ist zu bevorzugen!) eingebunden. In diesem Fall kannst du das Serviceprogramm beim erstellen des PGM angeben.

    Gruß

    Sascha

  3. #3
    Registriert seit
    Feb 2006
    Beiträge
    62
    danke erstmal,


    also, wenn ich dich richtig verstanden habe, muss aus dem RPG ein ILE-PGM aufrufen (über CALL ) , in dem ich dann ein MODUL aufrufe....

    gruss stoerfang

  4. #4
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    also du brauchst in deinem Programm was die Procedure aufrufen soll den Procedureheader (D MeineProc PR).
    Um die Procedure des Moduls aus einem anderen Programm aufrufen zu können, MUSS! die Procedure in der Zeile "B MeineProc" das Keyword "Export" haben. Dann sollte es eigentlich ein Problem sein die Procedure aus dem Modul aufzurufen.
    Falls doch poste doch mal die Meldung.

    Gruß

    Sascha

  5. #5
    Registriert seit
    Feb 2006
    Beiträge
    62
    also,
    das ILE-Modul bzw. das Service-PGM besteht.

    wie sage ich im RPG, dass er ein Modul aufrufen soll, da es ja keine D-Bestimmung in RPG gibt...

    gruss stoerfang

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

    Wenn in der Quelle zu Deinem Modul das Schlüssel-Wort NOMAIN nicht in den H-Bestimmungen angegeben wurde, kannst Du die Quelle auch über 14 in ein Programm umwandeln.

    Du hast also sowohl ein Modul (welches Du in ILE verwenden kannst) als auch ein Programm welches Du mit CALL aus einem RPGIII oder auch aus einem CL-Programm aufrufen kannst. Solltest Du aus dem Modul ein Service-Programm gemacht haben, wird natürlich das Service-Programm in ILE verwendet. Das Modul kannst Du dann löschen, da es nicht mehr gebraucht wird. Ob in ILE das Service-Programm oder das Programm aufgerufen wird, hängt davon ab, ob im Prototyp das Schlüssel-Wort EXTPGM oder EXTPROC angegeben wurde. Wurde EXTPGM angegeben erfolgt ein dynamischer Programm-Aufruf, bei EXTPROC oder falls keines der beiden Schlüssel-Worte angegeben wurde erfolgt ein statischer Prozedur-Aufruf.

    Für den Aufruf aus RPGIII wird natürlich keine D-Bestimmung und auch kein Prototyp benötigt. Einfach das Programm über CALL mit den erwarteten Parametern aufrufen.

    Wenn allerdings NOMAIN in den H-Bestimmungen angegeben wurde, funktioniert dies allerdings nicht. Dann brauchst Du für JEDE exportierte Prozedur ein Wrapper-Programm (wie bereits zuvor beschrieben).

    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
    Feb 2001
    Beiträge
    20.241
    Das geht im RPG überhaupt nicht.
    RPG kann ausschließlich OPM-Call's !

    Möchte man solche Konstrukte verwenden, muss das RPG eine ILERPG aufrufen mit den Parametern des gew. Prozedurnamens und den dazugehörenden Parametern.

    Dieses ILERPG kann dann entweder per SELECT/WHEN die gewünschte Prozedur statisch aufrufen oder mittels Benders Freeware die Prozedur dynamisch ermitteln und aufrufen.
    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

  8. #8
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hallo,

    bei NoMain-Modulen wäre dann der Mindestaufbau so.

    Modul:
    PHP-Code:
    H Nomain
    P MeineProcedure  B                   Export
    D MeineProcedure  PI
     
    //Mach was
    P MeineProcedure  E 
    rufendes Programm:
    PHP-Code:
    D MeineProcedure  PR

    C                   CallP     MeineProcedure 

  9. #9
    Registriert seit
    Feb 2006
    Beiträge
    62
    Ok, vielen Dank an alle !!!

    ... tja, dann müssen wohl meine Kollegen langsam auf "ILE umsteigen..."

    Gruss stoerfang

  10. #10
    Registriert seit
    Feb 2006
    Beiträge
    62
    sorry, aber nochmal eine grundlegende Frage:

    ist es besser, einzelne Module mit einzelnen Prozeduren zu haben und diese entsprechend nach bestimmten Kriterien zu einem Serviceprogramm zusammenzufassen,
    oder

    ein Modul mit mehreren Prozeduren und das dann in ein Serviceprogramm einzubinden.

    Gruss stoerfang

Similar Threads

  1. Rückgabewert vom RPG Programm
    By mk in forum NEWSboard Java
    Antworten: 8
    Letzter Beitrag: 21-04-11, 21:51
  2. RPG: Client Infos lesen?
    By robertki in forum NEWSboard Programmierung
    Antworten: 25
    Letzter Beitrag: 19-01-07, 08:42
  3. Bibliotheksliste in RPG IV abfragen
    By timeless in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-01-07, 12:04
  4. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  5. RPG goes Web
    By jth in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 21-12-06, 11:13

Berechtigungen

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