[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2005
    Beiträge
    31

    Aufruf CL aus Programm

    Hallo,

    Ich rufe aus einem Cobolprogramm ein CL auf. Es werden keine Parameter übergeben.
    Dieses Programm läuft sporadisch auf Fehler mit der Meldung MCH0802,
    Gesamtzahl der übergebenen Parameter stimmt nicht mit der erforderlichen Anzahl überein.

    Ein Tipp ???

    Gruß Malti

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Mach mal ein DSPPGM des aufzurufenden CLP's. Dort siehst du die Anzahl der benötigten Parameter.

    Ansonsten würde ich beim Auftreten des Fehlers die LIBL prüfen.
    Vielleicht existert ja noch eine andere Version (wrkpgm *all/mypgm).
    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
    Apr 2004
    Beiträge
    54
    Ich hatte so eine Meldung als ich ein RPG ohne die notwendigen Parameter aufgerufen hab.

    Erst wenn versucht wurde vom Hauptprogramm ein weiteres Programm auf zu rufen das auf die übergebenen Parameter Bezug nahm kam der beschriebene Parameterfehler.

    Daher könnte der Fehler schon im ersten Programmaufruf liegen.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Aufrufe von CLP's mit falscher Parameteranzahl werden direkt beim CALL abgelehnt (siehe DSPPGM, Anzahl Parameter N - N).

    Bei RPG/COBOL werden die Parameter mit "0 - N" ausgewiesen, so dass tatsächlich erst beim Zugriff der MCH-Fehler auftritt.
    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

  5. #5
    Registriert seit
    Jun 2005
    Beiträge
    31
    Danke für die Antworten,

    wir haben das alles vorher schon geprüft, das Problem war, dass dieser Fehler bei 10 Läufen ca. 1 mal auftrat.
    Wir übergeben jetzt einen Scheinparameter, in der Hoffung, dass es dann nicht mehr auftritt.

    Gruß Malti

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wenn der Aufruf mit einem Scheinparameter klappt, dann muss an der Definition des aufgerufenen Programmes irgendwas nicht stimmen.

    a) CLP
    CLP's können nur mit der definierten Anzahl Parameter aufgerufen werden !
    CALL 'CLPPGM' USING ...

    b) CLE-Prozeduren
    Hier bestimmt die Prozedur selber, wie viele Parameter tatsächlich verwendet werden, da diese leider mit 0-255 Parametern definiert werden.
    CALL PROCEDURE 'MYPRC' USING ... RETURNING ...

    c) HLL-Programme (ILE/RPG, ILE/COBOL)
    Auch hier gilt, die Anzahl Parameter kann zwischen 0 und N liegen, wobei N die Anzahl der definierten Parameter ist (RPG *ENTRY PLIST, COBOL PROCEDURE DIVISION USING ...)
    Hier muss das Programm ggf. die Anzahl der Parameter ermitteln (RPG in SDS).

    Wenn also der Aufruf mit dem "Scheinparameter" klappt, dann sind in dem Programm auch Parameter definiert, die anscheinend unter bestimmten Bedingungen dann auch angesprochen werden (z.B. Fehler-Returncode).

    Ein Scheinparameter hilft da nicht wirklich, da man ja Typ und Ausprägung mit der Call-Schnittstelle synchronisieren muss.

    PS:
    Vielleicht ruft ja das CLP manchmal ein weiteres Programm auf, dessen Schnittstelle sich inzwischen geändert hat !
    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

  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    @Baldur: RPG zumindest ist es als echte Huddel Programmiersprache völlig Wurscht wieviele Parameter übergeben werden, N kann auch größer als die deklarierte Anzahl Parameter sein.

    Zitat Zitat von Fuerchau Beitrag anzeigen

    c) HLL-Programme (ILE/RPG, ILE/COBOL)
    Auch hier gilt, die Anzahl Parameter kann zwischen 0 und N liegen, wobei N die Anzahl der definierten Parameter ist (RPG *ENTRY PLIST, COBOL PROCEDURE DIVISION USING ...)
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dem muss ich etwas wiederversprechen:

    ILERPG akzeptiert 0 - 255 (Das CMD-CALL schafft aber nur 32) und 255 ist sowieso das systemweite Maximum.

    OPMRPG erlaubt nicht mehr als N Parameter, weniger bis 0 sind durchaus erlaubt.
    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

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    stimmt, da hat mich meine Erinnerung getäuscht (deshalb habe ich auch meine Validity Checker in RPG geschrieben und bis 255 mit dummy Parametern aufgefüllt...)

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Dem muss ich etwas wiederversprechen:

    ILERPG akzeptiert 0 - 255 (Das CMD-CALL schafft aber nur 32) und 255 ist sowieso das systemweite Maximum.

    OPMRPG erlaubt nicht mehr als N Parameter, weniger bis 0 sind durchaus erlaubt.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  10. #10
    Registriert seit
    Jul 2003
    Beiträge
    63
    Hallo Malti,

    hast Du schonmal einen RTVCLSRC des gerufenen Programms versucht ?

    Klaus

Similar Threads

  1. Programmbibliothek in einem Cobol oder CL Programm ermitteln
    By schatte in forum NEWSboard Programmierung
    Antworten: 19
    Letzter Beitrag: 10-01-07, 11:32
  2. Rufendes Programm in CL "retrieven"
    By Lichtblitz in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 22-06-06, 09:50
  3. Datumsrechnung im CL Programm
    By Jenne in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 31-08-05, 09:47
  4. QMQRY in CL Programm
    By Hubert in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 11-05-05, 13:25
  5. CMD Parameter im CL Programm
    By mk in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 25-09-04, 15:48

Berechtigungen

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