[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2001
    Beiträge
    96

    Question RPGLE/CLLE, CALLPRC, MCH3601, Länge des RückgabeParm

    OS400_V5R2 mit PTF_Stand: TL-05-263

    aus einem CLLE wird per CALLPRC eine Prozedur (ServicePgm + RPGLE_Modul) aufgerufen, der Rückgabewert war zuerst char(1)
    identische Länge sowohl im CLLE wie auch in der RPG_Proc.

    CALLPRC PRC(GETxxyyy) PARM(&Parm1 &Parm2) RTNVAL(&RTNVAR)

    dann kam im CLLE immer MCH3601 "Zeiger für angegebene Position nicht gesetzt. "

    wird im CLLE der Parameter von char(1) auf char(2) verlängert,
    und auch in der RPGLE-Procedure auf 2A verlängert, so kommt kein MCH3601 mehr !!!???

    ist das ein Fehler oder ein Feature ??
    gibt es dafür ein PTF oder wer hatte eine ähnliche Situation ??

    wie gesagt - es geht um die LängenDefinition von
    DCL VAR(&RTNVAR) TYPE(*CHAR) LEN(1)
    oder
    DCL VAR(&RTNVAR) TYPE(*CHAR) LEN(2)

  2. #2
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Hi,
    der Fehler kommt immer wenn das gerufene Programm mit einem nicht empfangenen Parameter arbeitet.
    call pgm_a
    Parm eins
    Parm zwei

    und in PGM_a (CLLE)
    PGM Parm(&eins &zwei &drei)
    ( oder eben procedur parm empfang)
    ...
    chgvar &drei 'Beispiel' --> MCH3601

    hilfts ?
    Robi

  3. #3
    Registriert seit
    Sep 2001
    Beiträge
    96

    Smile

    Zitat Zitat von Robi
    Hi,
    der Fehler kommt immer wenn das gerufene Programm mit einem nicht empfangenen Parameter arbeitet.
    call pgm_a
    Parm eins
    Parm zwei

    und in PGM_a (CLLE)
    PGM Parm(&eins &zwei &drei)
    ( oder eben procedur parm empfang)
    ...
    chgvar &drei 'Beispiel' --> MCH3601

    hilfts ?
    Robi

    es mag sein, daß dann (Anzahl der Parameter ungleich) dieselbe Fehlermeldung kommt,

    ich bin mir aber absolut sicher, daß das in meinem Fall nicht zutrifft,
    da ich sowohl auf die Anzahl der Parameter wie auch auf deren Länge jeweils genau geachtet hatte.
    Auch hatte ich alle Objekte gelöscht und alle beteiligten Komponenten vollständig neu compiliert - hat alles nichts geholfen.

    Das Problem ist &RTNVAR ,
    mit Länge 1 funktioniert es nicht,
    mit Länge 2 alles o.k.

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    ja, erinner mich jetzt.
    sowas hatten wir auch mal, allerdings mit einem numerischen rückgabewert. und nur wen der rufende ein CL ist.
    is wohl n Fehler. aus RPGLE geht's
    Robi

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Zitat Zitat von COS
    Das Problem ist &RTNVAR ,
    mit Länge 1 funktioniert es nicht,
    mit Länge 2 alles o.k.
    Soweit ich mich richtig erinnere tritt dieser Fehler unter Release V5R2M0 und früher auf! Und wurde auch nie behoben.

    Ab Release V5R3M0 sollte der Fehler eigentlich nicht mehr auftreten. Wir definieren in solchen Fällen die Rückgabe-Werte im CL mit 2A.

    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

Similar Threads

  1. STRPCCMD - Länge beschränkt
    By Bau in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-01-07, 15:13
  2. Länge Zeichenkette bei Barcode PDF417?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 13-11-06, 07:31
  3. Cursorpositionierung nach Auswahl des letzten Subfilesatzes!
    By CrazyJoe in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 02-10-06, 10:01
  4. Sprache des Betriebssystems ändern XP
    By intelinside in forum NEWSboard Server Software
    Antworten: 4
    Letzter Beitrag: 28-07-06, 09:00
  5. Subfilepositionierung bei der Ausgabe des Steuersatz mit WRITE
    By timeless in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-05-06, 06:37

Berechtigungen

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