[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Dec 2004
    Beiträge
    203

    RPG Parameterübergabe von RPG an übergeordnetes CL

    Hallo *world,

    ich stehe hier gerade irgendwie auf einem Schlauch :-)

    CL

    PGM
    DCL Fehler Char(1)
    Call RPGPROGRAMM parameter Fehler
    If Feld = "x" then do was auch immer

    Zum Verständnis. Ich definiere im CL das Feld Fehler und setze es auf Blank. Nun läuft das RPG um z. b. den Artikelstamm und findet z.b. irgendwelche Fehler / nicht gepflegte Daten etc... . Im RPG habe ich das Feld ja mit *Entry übernommen. Möchte dann innerhalb des RPG das Feld z. B. mit X befüllen und dann im CL abbprüfen ob Feld Fehler = "x" ist ...

    Dachte immer so was geht doch ... aber irgendwie glaube ich das geht gar nicht oder ?

    Gruß,
    Ralf

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich stehe bei der Beschreibung schon auf dem Schlauch, denn dies geht sozusagen sein Urzeiten der Programmierung so.
    Aber ohne den nötigen Code zu kennen, kann ich mir darauf auch keinen Reim machen.
    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
    Oct 2013
    Beiträge
    171
    Doch, das geht. Wenn's bei Dir nicht geht, hast Du irgendwas falsch gemacht.
    Das Irgendwas anhand Deines Pseudo-Codes zu erraten, ist sinnlos.

  4. #4
    Registriert seit
    Dec 2004
    Beiträge
    203
    Vielleicht mach es der keine Quellcode einfacher

    PGM

    DCL VAR(&FEHLER) TYPE(*CHAR) LEN(1)
    CALL PGM(PGMXXX) PARM(FEHLER)
    IF COND(&FEHLER *EQ 'X') THEN(GOTO CMDLBL(FEHLER))
    GOTO ENDE99
    FEHLER:
    SNDBRKMSG MSG('Fehler ist aufgetreten') TOMSGQ(DSPXXXX)
    ENDE99:
    RCLRSC
    ENDPGM

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Parm(Fehler) ist falsch
    Parm(&Fehler) ist richtig
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Dec 2004
    Beiträge
    203
    Sorry .. das war jetzt nur schnell geschrieben... es geht uim die Sache ansich. Also wenn ich die Variable im CL defenieren (blank) dann das rpg laufen lasse ist die Frage ob danach ein durch das rpg neu ermittelter wert auch wieder im cl zur verfügung steht (hier dann z. b. das x)

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Sorry, das war nur schnell geantwortet.
    Die Sache an sich
    Das geht seit es RPG / CL gibt

    Ausnahme:
    im RPG empfängst du

    Code:
         *entry     plist
         f1           parm     f2                  f3
    Dann wird geht nicht f3 zurück ans CL sondern f1

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Dec 2004
    Beiträge
    203
    Danke für alle schnellen Antworten. Sorry für die Frage .. aber irgendwie waren hier im Norden einfach zu viele Bäume vor meinen Augen.

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Zitat Zitat von Robi Beitrag anzeigen
    Sorry, das war nur schnell geantwortet.
    Die Sache an sich
    Das geht seit es RPG / CL gibt

    Ausnahme:
    im RPG empfängst du

    Code:
         *entry     plist
         f1           parm     f2                  f3
    Dann wird geht nicht f3 zurück ans CL sondern f1

    Robi
    Stimmt nicht ganz: f2 wird zurückgegeben!
    Dieter

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Stimmt natürlich
    Fülltext 20 Zeichen

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das Problem ist manchmal nur schwer zu finden, vor allem wenn das "&"-Zeichen an wichtiger Stelle fehlt.
    In CLP werden Variablen immer mit "&" deklariert!
    Der vollständige Name ist also grundsätzlich "&Name".

    Bei allen Kommandos sind (bis auf wenige Ausnahmen) sowohl Variablen als auch Konstanten möglich.
    Übergibst du also CALL ... PARM(FEHLER) statt PARM(&FEHLER) lehnt der Compiler das nicht ab (denn sie (die Programmierer) wissen was sie tun....).
    Für die Konstante "FEHLER" wird nun intern eine Variable angelegt und an das Programm übergeben.
    Wenn dieses dann den Wert verändert, kommt das rufende Programm halt nicht mehr dran.
    Bei nächsten Aufruf (in einer Schleife) wird nun allerdings der veränderte Wert weitergegeben.
    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

  12. #12
    Registriert seit
    Dec 2004
    Beiträge
    203
    Moin Moin Herr Fuerschau, Robi.
    @Fuerschau : Ja das war nur ein Tippfehler.
    @Robi .... Wie soll ich das mit den 20 Zeichen verstehen .. sorry wenn ich nachfrage.
    Gruß
    Ralf

Similar Threads

  1. WebService länge der Parameterübergabe
    By svit in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 11-09-14, 13:23

Berechtigungen

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