[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2011
    Beiträge
    81
    Das Problem könnte in der Tatsache liegen, das Parameter im ONLINE anders gehandt habt werden als im BATCH.
    Dieses Problem löse ich dadurch, das ich auf der letzten Stelle der Parameter einen Stern setze, den das auszuführende CL wieder entfernt. Dann wird der Parameter in der Orginallänge an BATCH weitergegeben.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wieder mal das übliche Problem von Parametern im CALL-Statement.

    Rufst du im CLP per CALL ein anderes Programm übergibst du ja meist Variablen oder Konstanten in der korrekten Länge.

    Machst du aber einen SBMJOB mit einem CALL-CMD, kürzt der CMD-Interpreter Leerzeichen am Ende weg, wenn der Wert nicht in Hochkomma steht.
    Es erfolgt ggf. sogar eine Umsetzung ein Großbuchstaben.

    Du kannst den Trick von MR-BN erweitern.
    Da Werte an ein Programm immer per Referenz übergeben werden, kannst du natürlich das Übergabe-Feld auch um 1 Stelle größer definieren als das Zielprogramm benötigt.
    Stelle dann ein beliebiges Zeichen an die überzählige Stelle.
    Der CMD-Interpreter baut dann den SBMJOB korrekt zusammen und dein Programm erhälte den vollständigen Wert ohne das zusätzliche Zeichen.

    Ansonsten:
    Es gibt keine unterschiedliche Behandlung von Parametern im CALL zwischen Batch und Online.
    Die Regeln dafür sind immer gleich:

    Aus
    call mypgm parm(xxxx)
    wird
    CALL MYPGM PARM(XXXX)
    Wobei XXXX als 32-stelliges Feld übergeben wird.

    Aus
    call mypgm parm('xxxx')
    wird
    CALL MYPGM PARM('xxxx')
    Jetzt wird 'xxxx' als 4-stelliges Feld übergeben.
    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
    Nov 2003
    Beiträge
    2.403

  4. #4
    Registriert seit
    Feb 2007
    Beiträge
    5
    vielen Dank, hatte den Fall einfach noch nicht, obwohl schon seit fast 20 Jahren dabei.

    Hab mal die elegante Variante gewählt mit einer verkürzten Empfängervariable und läuft. Werd das aber wieder abändern, weil mir vielleich sonst noch ein Kollege irgendwann feststellt...unterschiedlich definiert, berichtige ich usw.

    Allerdings verhält sich CALL und SBM CALL wirklich anders. Im Call war alles sauber, das abschneiden erfolgte nur beim SBM.

    Ansonsten noch vielen Dank.

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Was auch noch geht ist ein SBMJOB auf einen selbst erstellten Befehl, welcher das gewünschte CL-Programm als Befehlsverarbeitungsprogramm hat. Dann kommen die Parameter genau so wie im eigenen Befehl definiert an das CL-Programm.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dann rufe mal CALL über die Kommandozeile und nicht per Programm auf.
    CALL über Kommandozeile verhält sich wie CALL im SBMJOB.

    CALL im CLP wird ja definiert aufgerufen und zur Compilezeit festgelegt und verhält sich da scheinbar anders, insbesonders wenn Variablen verwendet werden.

    Und was das Abändern angeht musst du das nur richtig dokumentieren.
    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

Similar Threads

  1. wieder mal RUNRMTCMD
    By KM in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 15-01-07, 09:01
  2. RUNRMTCMD
    By jmoritz in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 18-10-06, 09:56
  3. RUNRMTCMD
    By dino in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 18-09-06, 12:14
  4. RUNRMTCMD kann nicht funktionieren
    By Franz_Rust in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 16-08-06, 14:39
  5. RUNRMTCMD
    By tomikra in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-03-05, 09:31

Berechtigungen

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