[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    39

    CGIDEV2 Fehlermeldung // Abbruch ?

    Hallo zusammen,
    ich habe mal wieder eine Frage:

    Ich habe ein Programm zur Generierung von XML Dateien erstellt. Vorlage war hier ein Script mit CGIDEV2. Insgesamt werden 7 Datenbanken als XML Dateien generiert. Bei folgender Datei kommt es zu Eintragungen in der QPJOBLOG:

    Code:
    H Option(*SrcStmt: *NoDebugIO)         
    H DftActGrp(*No)                       
    H BndDir('CGIDEV2':'QC2LE':'QUSAPIBD') 
    H ALWNULL(*USRCTL)                     
    
    FWROI00    IF   E           K DISK            
    DmyString         S            100A   VARYING 
    
    /include prototypeb                                                       
                                                                              
    /free                                                                     
      getHtmlIfsMult('/XML/WROI00_template.xml');                            
       wrtsection('FileHeader');                                              
       read WROI00;                                                           
       dow not %eof(WROI00);                                                  
         updHtmlVar('customerNo'        : WOIKUN);                            
         updHtmlVar('customerOrderNo'   : WOIBEN);                            
         updHtmlVar('orderNo'           : WOIAFN);                            
         updHtmlVar('orderDate'         : %char(WOIBED));                     
         updHtmlVar('item'              : WOIPON);                            
         updHtmlVar('subItem'           : WOIPUN);                            
         updHtmlVar('articleNo'         : WOIARN);                            
         updHtmlVar('quantityOrdered'   : %char(WOIBTM));                     
         updHtmlVar('quantityDelivered' : %char(WOIGEM));                     
         updHtmlVar('invoiceNo'         : WOIFKR);                            
         updHtmlVar('invoiceDate'       : %char(WOIFKD));                     
         wrtsection('OrdersRec');                                             
         read WROI00;                                                         
       ENDDO;                                                                 
       wrtsection('FileFooter');                                              
       WrtHtmlToStmf('/XML/WROI00_complete.xml': 819);                        
       *inlr = *on;                                                           
    /end-free
    folgende Meldung kommt x-mal:

    (Die XML Datei wird trotzdem erstellt.)

    Code:
    CPF1015    Abbruch                 40   21.02.07  15:23:45,396536  QWCSRTVR     QSYS        00AC     CGISRVPGM2  CGIDEV2     *STMT
                                         Zielmodul . . . . . . . . . :   XXXDEBUG                                                     
                                         Zielprozedur  . . . . . . . :   ISDEBUG                                                      
                                         Anweisung . . . . . . . . . :   9400                                                         
                                         Nachricht . . . :   Datenbereich CGIDEBUG in *LIBL nicht gefunden.                           
                                         Fehlerbeseitigung:  Den Datenbereichsnamen berichtigen oder den                              
                                           Bibliotheksnamen ändern (Parameter DTAARA). Anschließend die Anforderung                   
                                           wiederholen.
    Die Datei hat ca. 10.000 Datensätze.
    Geplant ist hier, dass es sowohl einen Komplettexport als auch updates gibt für den Datenaustausch.

    Kann es sein, dass es hier an der Stelle "WriteHtmltoStmf" zu einer Art Speicherüberlauf kommt?!

    Wenn ich in der Datei nur ca. 300 Sätze habe bekomme ich keine Meldung bei der Ausführung des Programms.

    Was kann ich machen, damit die Meldung nicht mehr kommt?
    Was bedeutet diese Meldung überhaupt?
    Eine Bibliothek mit Namen CGIDEBUG haben wir nicht auf der I5. Ich habe da nur die CGIDEV2 "installiert".
    Oder muss ich im Header eine Zeile ändern?
    Wer kann mir weiterhelfen?

    Vielen Dank im Voraus

    mfg - Drittaccount

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    CGIDEBUG muss eine DTAARA sein.
    Warum und weshalb die gesucht wird, entzieht sich mir.
    Such mal bei Mr.Google.
    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
    Jan 2001
    Beiträge
    850
    Hallo,

    bei CGIDEV2 kann man den Debugmodus ein bzw. ausschalten.
    C callp wrtjobdbg(*on)

    Ob das dazu führt das die DTAARA nicht mehr benutzt wird kann ich leider nicht sagen.

    Desweiteren benutzen die mächtigen Prozeduren eine Datei
    CGIDEBUG die in der Bibliotheksliste des Job gesucht wird.

    Vielleicht hilfts
    gruss
    Michael

  4. #4
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo,

    die DTAARA CGIDEBUG ist doch in der Bibliothek CGIDEV2 vorhanden. Oder hast Du die CGIDEV2 nicht in Deiner LIBL ?

    Gruß,
    KM

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    39
    vielen Dank für die Antworten.

    Ich hatte die CGIDEV2 nicht in der *libl drin.
    Mit dem Befehl von mk klappt das ganze auch ohne die library.
    Nachdem ich etwas nachgelesen hatte habe ich dann auch die DTAARA gefunden und auch einen Blick in die gleichnamige physische Datei geworfen ...

    Das Problem wäre damit gelöst.

    Hier aber schon wieder ein neues:
    Die Funktion Encode2 bereitet mir etwas Sorgen.

    Nachdem ich auf die schnelle eine eigene Zeichenkonvertierungsfunktion geschrieben habe ist mir aufgefallen, dass die Funktionen Encode und Encode2 genau das machen, was ich mir zusammengebastelt habe.

    Die Funktion Encode reicht mir leider nicht aus, da ich die deutschen Umlaute auch konvertieren möchte. Also habe ich mir für Encode2 eine eigene "encode2fil.txt" angelegt und diese im IFS gespeichert: /XML/encode2fil.txt


    Im Programm habe ich folgende Zeilen getestet.

    Code:
    myString = Encode(WCUKNA);
    updHtmlVar('name'   : myString);
    funktioniert mit den 4 Zeichen " & < > wunderbar ...

    Code:
    myString = Encode2(WCUKNA:myRCode:'/XML/encode2fil.txt');
    updHtmlVar('name'   : myString);
    bringt gar nichts zurück ...

    Woran kann das liegen?!

    In der Beschreibung der Funktion steht ...

    Code:
    * Customizing the character entity list                                   
    * -------------------------------------                                   
    * - The default data are stored in /cgidevExtHTML/encode2fil.txt.         
    *   It is recommended that you NOT modify, move, or rename this           
    *   file because it could be replaced whenever CGIDEV2 is updated         
    *   or reinstalled.  Instead,                                             
    *     - Copy the default file to an IFS file of your own.                 
    *     - Make sure user QTMHHTP1 has *RX authority to your file
    /cgidevExtHTML/encode2fil.txt gibt es bei uns nicht.

    Wie kann ich nun testen ob QTMHHTP1 Leseberechtigung auf die Datei hat?

    Macht es Sinn den default Paramter der Funktion zu ändern und die Datei neu zu kompilieren? (Damit ich den nicht immer als 3. Paramter mitgeben muss ...)
    Bei einer neuen Version müsste ich hier halt wieder an die Änderung denken.

    Muss hier in der CGIDEV2 was neu kompiliert werden, oder werden die Funktionen als copystrecke bei der Umwandung des Programms in die Quelle kopiert?

    mfg - Drittaccount

  6. #6
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo,

    also die Programme in der CGIDEV2 würde ich nicht compilieren. Wenn Du die Bibliothek CGIDEV2 normal "installiert" hast, dann ist auch die Datei /cgidevExtHTML/encode2fil.txt vorhanden. Hast Du mal versucht die Funktion encode2 ohne den dritten Parameter aufzurufen ? Dann würde das Programm ja automatisch auf die encode2fil.txt zugreifen. Evtl. ist was mit Deiner selbst erstellten Datei faul. Was steht denn im Returncode ?

    Gruß,
    KM

  7. #7
    Registriert seit
    Sep 2005
    Beiträge
    39
    Also wenn ich die Funktion nur mit 2 Parameter aufrufe bekomme ich "-1" als ReturnCode. In der Datei CGIDEBUG steht allerdings nichts ...
    hier sollte doch eine ausführlichere Beschreibung stehen ...

    Den Inhalt meiner "faulen" Datei kann ich hier leider nicht posten, da er mir die Sonderzeichen gleich umsetzt.

    An der ersten Stelle steht immer das Zeichen und Stelle 2-9 dann der zu ersetzende Code.

  8. #8
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Anbei der Inhalt der Original-Datei. Vielleicht kannst Du sie ja einfach nochmal erstellen und im korrekten Pfad abspeichern.

    Gruß,
    KM

    Code:
    
    
    ""   Quotation Mark
    &&    Ampersand
    <<     Less Than Symbol
    >>     Greater Than Symbol
    ¡¡  Inverted Exclamation Point
    ¢¢   Cent Sign
    ££  Pound Sterling
    ¥¥    Yen sign
    ¦¦ Broken vertical bar
    §§   Section sign
    ¨¨    Umlaut
    ©©   Copyright
    ªª   Feminine ordinal
    ««  Left angle coute
    ¬¬    Not sign
    ®®    Registered trademark
    ¯¯   macron ancent
    °°    Degree sign
    ±± Plus or minus
    ²²   Superscript two
    ³³   Superscript three
    ´´  Acute accent
    µµ  Micro sign
    ¶¶   Paragraph sign
    ·· Middle dot
    ¸¸  Cedilla
    ¹¹   Superscript one
    ºº   Masculine ordinal
    »»  Right angle cuote
    ¼¼ Fraction 1/4
    ½½ Fraction 1/2
    ¾¾ Fraction 3/4
    ¿¿ Inverted question mark
    ÀÀ Capital A, grave accent
    ÁÁ Capital A, acute accent
    ÂÂ  Capital A, circumflex accent
    ÃÃ Capital A, tilde
    ÄÄ   Capital A, dieresis or umlaut mark
    ÅÅ  Capital A, ring
    ÆÆ  Capital AE, dipthong (ligature)
    ÇÇ Capital C, cedilla
    ÈÈ Capital E, grave accent
    ÉÉ Capital E, acute accent
    ÊÊ  Capital E, circumflex accent
    ËË   Capital E, dieresis or umlaut mark
    ÌÌ Capital I, grave accent
    ÍÍ Capital I, acute accent
    ÎÎ  Capital I, circumflex accent
    ÏÏ   Capital I, dieresis or umlaut mark
    ÐÐ    Capital Eth, Icelandic
    ÑÑ Capital N, tilde
    ÒÒ Capital O, grave accent
    ÓÓ Capital O, acute accent
    ÔÔ  Capital O, circumflex accent
    ÕÕ Capital O, tilde
    ÖÖ   Capital O, dieresis or umlaut mark
    ××  Multiply sign
    ØØ Capital O, slash
    ÙÙ Capital U, grave accent
    ÚÚ Capital U, acute accent
    ÛÛ  Capital U, circumflex accent
    ÜÜ   Capital U, dieresis or umlaut mark
    ÝÝ Capital Y, acute accent
    ÞÞ  Capital THORN, Icelandic
    ßß  Small sharp s, German (sz ligature)
    àà Small a, grave accent
    áá Small a, acute accent
    ââ  Small a, circumflex accent
    ãã Small a, tilde
    ää   Small a, dieresis or umlaut mark
    åå  Small a, ring
    ææ  Small ae, dipthong (ligature)
    çç Small c, cedilla
    èè Small e, grave accent
    éé Small e, acute accent
    êê  Small e, circumflex accent
    ëë   Small e, dieresis or umlaut mark
    ìì Small i, grave accent
    íí Small i, acute accent
    îî  Small i, circumflex accent
    ïï   Small i, dieresis or umlaut mark
    ðð    Small eth, Icelandic
    ññ Small n, tilde
    òò Small o, grave accent
    óó Small o, acute accent
    ôô  Small o, circumflex accent
    õõ Small o, tilde
    öö   Small o, dieresis or umlaut mark
    ÷÷ Division sign
    øø Small o, slash
    ùù Small u, grave accent
    úú Small u, acute accent
    ûû  Small u, circumflex accent
    üü   Small u, dieresis or umlaut mark
    ýý Small y, acute accent
    þþ  Small thorn, Icelandic
    ÿÿ   Small y, dieresis or umlaut mark
    €€   euro

  9. #9
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Oh, jetzt wurden die Entities umgesetzt. Damit kannst Du leider nichts anfangen.

    Was für einen Returncode kriegst Du, wenn Du Deine Datei angibst ?

    Gruß,
    KM

  10. #10
    Registriert seit
    Sep 2005
    Beiträge
    39
    kannst du mir die Datei bitte an napf77 [at] googlemail . com schicken? Hier wurden ja die Zeichen auch schon umgesetzt ...

    wie kann ich auf der AS/400 nachschauen ob es den Ordner und die Datei gibt? geht das mit WRKF? Das ganze sollte doch auf dem IFS sein? Ich kenn mich hier leider nicht so aus ...
    den anderen Ordner habe ich als IFS Windows - Freigabe. Wie ich nachschauen kann was es sonst noch für IFS Ordner gibt weiß ich nicht.

  11. #11
    Registriert seit
    Sep 2005
    Beiträge
    39
    wenn ich meine Datei angebe bekomme ich auch -1 als Returncode ...

  12. #12
    Registriert seit
    Sep 2005
    Beiträge
    39
    Hallo,
    hier ist die Original-Datei. Am besten erstellst Du Dir mit dem OpsNav eine Freigabe auf das betreffende IFS-Verzeichnis (oder das Root) und ordnest sie Dir im Windows-Explorer zu. Dann kannst Du die Datei einfach dort abspeichern. Sie hat bei mir übrigens die CCSID 819. Mit WRKLNK (vorher erst "CD /" eingeben) kannst Du Dir auch die Berechtigungen anzeigen (Auswahl 9). Bei mir hat nur der Benutzer QPGMR Zugriff auf die Datei. Man müsste evtl. noch die Benutzer QTMHHTP1 bzw. QTMHHTTP dafür berechtigen. Bist Du sicher, dass die Datei wirklich nicht vorhanden ist ? Vielleicht ist es ja nur das Berechtigungsproblem. Ich kann mir kaum vorstellen, dass die Datei fehlt. Schau doch erst mal mit WRKLNK nach.

    Gruß,
    KM
    Hallo KM ... vielen Dank für die Datei.
    Mit deiner Beschreibung hat alles geklappt. Der default Ordner ist zwar nicht auf unserer I5, aber mit deiner Version geht es. Ich habe aber noch eine Frage zu den ersetzten Zeichen:

    z.B.: Ä wird hier in &_A_u_m_l_; konvertiert. Wenn ich diese .xml nun im Browser anschauen will bekomme ich eine Fehlermeldung für dieses Zeichen. Verwende ich stattdessen &_#_1_9_6_; wird es richtig angezeigt.

    Muss ich eventuell einen anderen Header in der .xml Datei verwenden? Im Moment steht da:
    Code:
    < ? xml version="1.0" encoding="UTF-8" ? >
    mfg - Drittaccount

Similar Threads

  1. sql fehlermeldung sichtbar machen
    By steven_r in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 25-11-06, 11:48
  2. Eingabe sperren bei Fehlermeldung über API
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 17-10-06, 16:48
  3. Fehlermeldung sichtbar machen
    By steven_r in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 14-08-06, 16:29
  4. Fehlermeldung 0000003 bei IPL auf Panel
    By schwenth in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-07-06, 17:22
  5. MCH0601 - Fehlermeldung
    By A_Mroos in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 26-06-06, 12:12

Berechtigungen

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