Drittaccount
21-02-07, 15:40
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:
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.)
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
CGIDEBUG muss eine DTAARA sein.
Warum und weshalb die gesucht wird, entzieht sich mir.
Such mal bei Mr.Google.
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
Hallo,
die DTAARA CGIDEBUG ist doch in der Bibliothek CGIDEV2 vorhanden. Oder hast Du die CGIDEV2 nicht in Deiner LIBL ?
Gruß,
KM
Drittaccount
22-02-07, 13:46
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.
myString = Encode(WCUKNA);
updHtmlVar('name' : myString);
funktioniert mit den 4 Zeichen " & < > wunderbar ...
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 ...
* 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
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
Drittaccount
22-02-07, 15:27
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.
Anbei der Inhalt der Original-Datei. Vielleicht kannst Du sie ja einfach nochmal erstellen und im korrekten Pfad abspeichern.
Gruß,
KM
<!--
************************************************** ************************
* This material is provided by IBM for illustrative purposes *
* only and has not been thoroughly tested under all conditions. *
* IBM, therefore, cannot guarantee or imply reliability, *
* serviceability, or function of this material. IBM provides *
* no program services for this material. All material contained *
* herein is provided to you "AS IS" without any warranties of *
* any kind. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS *
* FOR A PARTICULAR PURPOSE AND NON-INFRINGMENT ARE EXPRESSLY *
* DISCLAIMED. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION *
* OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY *
* TO YOU. IN NO EVENT WILL IBM BE LIABLE TO ANY PARTY FOR ANY *
* DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR *
* ANY USE OF THIS MATERIAL, INCLUDING, WITHOUT LIMITATION, ANY *
* LOST PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER *
* DATA ON YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN *
* IF WE ARE EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. *
* *
* (C) Copyright IBM Corp. 1997, 2004 *
* All rights reserved. *
* US Government Users Restricted Rights - *
* Use, duplication, or disclosure restricted *
* by GSA ADP Schedule Contract with IBM Corp. *
* *
* Licensed Materials - Property of IBM *
************************************************** ************************
-->
"" 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
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
Drittaccount
22-02-07, 15:58
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.