[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.699
    Nicht darstellbare Zeichen vermeiden

    Alternativ den Parameter Hex expandieren und per X'...' ü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

  2. #2
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.013
    Ich wollte damit ja auch nur sagen, dass der Fehler nur vorkommt, wenn man Zeichen unter Hexa 40 verwendet. Das war ja nur ein Beispiel. Wir benötigen nun mal den CRLF. Diesen fügen wir in das Parameterfeld ja schon mit X'0D25' ein. Eine andere Möglichkeit kenne ich nicht.

    KM

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Folgendes Programm übergibt einen Paramter mit besagten Zeichen und läuft hier unter V5R4. Kannst du einmal prüfen, ob es auch bei dir läuft?
    Code:
    D QCMD            S          16384A   INZ                              
    D QCMDLEN         S             15P 5 INZ(%SIZE(QCMD))                 
    D PARM            S             80A   INZ                              
    D**********************************************************************
    C                   EVAL      PARM = 'ABCD' + X'0D25' + 'EFGH'         
    C                   EVAL      QCMD = 'SBMJOB CMD(CALL PGM(SBM2) ' +    
    C                                    'PARM(''' + PARM + '''))'         
    C                   CALL      'QCMDEXC'                                
    C                   PARM                    QCMD                       
    C                   PARM                    QCMDLEN                    
    C                   MOVE      *ON           *INLR

  4. #4
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.013
    Bei kurzen Parameterfeldern funktioniert der Aufruf. Ändere mal die Länge von PARM auf 12000 Stellen. Bin mal gespannt was dann bei Dir passiert. Wir haben übrigens auch V5R4.

    KM

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Seltsam. Bis zu einer Länge von 9988A für die Variable PARM läuft's, auch wenn diese Variable X'0D25' enthält. Ab einer Länge von 9989A für die Variable PARM läuft's nur noch, wenn das X'0D25' aus der Zuweisung entfernt oder z.B. durch X'4040' ersetzt wird.

  6. #6
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.013
    Genau das ist das Problem. Na, dann sind wir nicht die einzigen, die diesen Fehler haben. Bei uns liegt der Schwellenwert irgendwo zwischen 9700 und 9800 Stellen, weil wir noch ein paar andere Parameter übergeben. Die Grenze ist also nicht fix, sondern hängt irgendwie von der Länge der Parameter ab.

    Es scheint also keine Lösung für diesen Fehler zu geben. Dann müssen wir uns doch anders behelfen.

    KM

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Es scheint, als würde der Inhalt dieses Parameters in Hex-Schreibweise ('...0D25...') übergeben werden, sobald Zeichen kleiner Hex 40 vorhanden sind. Oder dieser Parameter wird intern in Doppelbyte-Darstellung konvertiert und dann übergeben. Das würde dann ja tatsächlich mehr als die maximal erlaubten 20.000 Bytes ergeben.

  8. #8
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Ah, hier steht etwas dazu:

    PARM (Parameter) statement

    *CMDSTR: The parameter value is a command string that is checked for validity by the command analyzer. It is passed to the CPP as a character string.

    The command analyzer rebuilds the command string when it checks it for validity. When the command is rebuilt, keywords are added to parameters that were specified positionally, parameters can be reordered, and parameters that contain characters that cannot be printed (X'FF' and X'00 - X'3F') are converted to hexadecimal notation. As a result, the rebuilt command string may be substantially longer than the original command string. If the length of the rebuilt command is longer than the allowed length specified with the LEN keyword, the command will fail.

Similar Threads

  1. SNDPGMMSG und SBMJOB
    By Dominik Meyer in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 13-01-07, 15:16
  2. JOBQ(*JOBD) oder JOBQ(LIB/JOBQ) an SBMJOB übergeben
    By hww in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 12-12-06, 15:27
  3. Seltsames Phänomen Lpar System
    By TARASIK in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 12-12-06, 13:24
  4. SBMJOB und SCDDATE/SCDTIME
    By Luebbert in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 13-09-06, 11:39
  5. sbmjob und ' im Parameter
    By muadeep in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 27-06-06, 11:31

Berechtigungen

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