[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    *PRV ist allerdings das Programm, dass das CLP aufruft.
    Bei ILE sind auch noch einige Ebenen dazwischen.
    SNDPGMMSG unerstützt keine "relative" Adressierung, wenn man nicht *PRV nehmen kann, muss man leider genau die Programm/Prozedurnamen kennen sonst schlägt der Befehl fehl.

    Alternativ wäre allerdings ein "Wrapper":
    - Originärer Programmname als CLP mit den Aufrufparametern
    - obigen SNDPGMMSG ausführen
    - das Ergebnis als zusätzlichen Parameter an das eigentliche Programm (neuer Name) durchreichen
    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

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    *PRV geht eine Stufe zurück. Deshalb habe ich auch gesagt, solange nur Programme verwendet werden. Werden natürlich zwischenzeitlich Prozeduren aufgerufen oder das Programm aus einer Prozedur aufgerufen, klappt das nicht.

    Ich gehen in diesem Fall jedoch davon aus, dass nur Programme aufgerufen werden.

    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    *PRV liefert das aufrufende Programm:
    CALL PGMA
    CALL PGMB
    Der Call des CLP's aus PGMB kann nur PGMB und nicht PGMA liefern.
    Deshalb der "Wrapper".
    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

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau Beitrag anzeigen
    *PRV liefert das aufrufende Programm:
    CALL PGMA
    CALL PGMB
    Der Call des CLP's aus PGMB kann nur PGMB und nicht PGMA liefern.
    Deshalb der "Wrapper".
    Versuch doch einfach das kleine CL-Programm aufzurufen, und zwar so wie ich beschrieben habe, d.h. Du übergibst den Namen des RPG-Programms als PARCALLED und als PARCALLER bekommst Du das Programm zurück das das RPG-Programm aufgerufen hat.

    Auf diese Weise kann man sogar durch den CALL-Stack hangeln, d.h. das im ParCALLED Parameter zurückgegebene Programm wird beim nächsten Aufruf als PARCALLER übergeben usw. bis der Anfang des Callstacks erreicht ist.

    Ich hatte das Programm (bevor es das API gab -also vor Release V5R1) jahrelang im Einsatz, schon in den alten RPGIII-Zeiten und auch noch in den frühen RPGIV-Zeiten.
    Das Teil habe ich sogar dazu verwendet um das Programm zu ermittelt, das einen Trigger aktiviert hat.

    Birgitta
    Birgitta Hauser

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

Similar Threads

  1. IBM i Partitions-Nr. via Programm ermitteln
    By B.Hauser in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 16-01-15, 15:20
  2. Zeitdauer ermitteln in RPG
    By sepp in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 09-07-02, 16:09
  3. Größe des IFS, wie ermitteln?
    By Spirou in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 17-04-02, 09:54
  4. Subsystembeschreibung ermitteln
    By Sven Schneider in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-12-01, 21:17
  5. Satzlänge in CL ermitteln
    By kschmidt in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 19-06-01, 17:35

Berechtigungen

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