[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    - value geht mit dynamischem Aufruf (CALL) nicht, da hierbei Parameter immer by Reference übergeben werden.
    - das callp darf man im Freeformat auch weglassen
    - zur Verdeutlichung: an den aufgerufenen Programmen wird nix geändert, es wird lediglich im aufrufenden ein Prototyp statt der Keylist benötigt.

    D*B

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Hierfür bietet sich die Prototyp-Definition an.
    Der Vorteil ist, dass man bestimmte Parameter dann als "VALUE" definieren kann, so dass die komplizierten Ver- und Entsorgungen von Übergabestrukturen entfallen kann.

    Aufgerufen wird das Ganze dann per

    callp MyExtPgm(P1: P2: ...);

    wobei Value-Parameter dann automatisch in Hilfsfelder kopiert und ggf. konvertiert werden.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #2
    Registriert seit
    May 2005
    Beiträge
    103
    Hallo Fuerchau und BenderD,

    vielen Dank für die Antworten.

    Dass die aufgerufenen Programme weiterhin funktionieren ist das Wichtigste !!! Habe ich eben auch mal kurz getestet - Danke !!

    Was ich noch nicht so ganz verstanden habe ist die Sache mit dem Value Fuerchau.

    Meintest du anstatt
    Firma = 1 / immer 1 im Format 3S0
    callp PGMName (Firma : TNr);

    dann nur noch
    callp PGMName (1 : TNr);

    so dass ich mir die fixen Feldfüllungen sparen kann??

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    value (keyword beim Parameter in PR und PI) geht nur bei Procedure Aufrufen.
    bei Programmen (was du hier brauchst) geht nur CONST und das auch nur, wenn da nix geändert zurück kommt.
    In beiden Fällen kann man Literale und Ausdrücke als Parameter verwenden, der Compiler prüft dann Typ Verträglichkeit beim Aufruf gegen den Prototyp und konvertiert implizit.

    D*B

    Zitat Zitat von Tobse77 Beitrag anzeigen

    Meintest du anstatt
    Firma = 1 / immer 1 im Format 3S0
    callp PGMName (Firma : TNr);

    dann nur noch
    callp PGMName (1 : TNr);

    so dass ich mir die fixen Feldfüllungen sparen kann??
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    May 2005
    Beiträge
    103
    OK, Verstanden !!
    Beim Aufruf von RPG400-Programmen muss mit Variablen als Parameter gearbeitet werden - sonst meckert auch der Compiler - da im aufgerufenen Programm die übergebenen Parameter jederzeit geändert werden können, da aufgrund fehlender PR-Definition nicht prüfbar für den Compiler.

    Dankeschön !!

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    wenn die Variablen im aufgerufenen Programm nicht geändert werden, kann man im Prototyp bei selbigen das Schlüsselwort CONST ablochen, dann gehen auch hier Literale und Ausdrücke.

    mfg

    Dieter Bender

    PS: Literale sind kein guter Programmierstil, da sollte man in ordentlichen Programmiersprachen Konstanten verwenden und in RPG Variablen mit festbelegtem Wert.

    Zitat Zitat von Tobse77 Beitrag anzeigen
    OK, Verstanden !!
    Beim Aufruf von RPG400-Programmen muss mit Variablen als Parameter gearbeitet werden - sonst meckert auch der Compiler - da im aufgerufenen Programm die übergebenen Parameter jederzeit geändert werden können, da aufgrund fehlender PR-Definition nicht prüfbar für den Compiler.

    Dankeschön !!
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Call in einem Ile-RPG
    By dino in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-01-07, 09:23
  2. "remote" - call
    By hh-mi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 15-11-06, 12:23
  3. CALL PGM schlägt fehl
    By alexander may in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 18-05-06, 20:16
  4. rekursiver Call
    By Marimari1009 in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 03-05-06, 17:30
  5. RPGII, RPGIII, RPG400, RPGIV, ILE Was ist was?
    By Schnichels in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 27-05-04, 21:29

Berechtigungen

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