Anmelden

View Full Version : XML Extender for iSeries



Seiten : 1 2 [3] 4

mom
18-01-07, 14:51
Guten Abend :D

ich muß dieses Thema leider nochmal ausgraben, weil mein fopen() heute wieder streikt :mad:

Siehe hier:

Physische Teildatei anzeigen
Datei . . . . . : STDERR Bibliothek . . . : QTEMP
Teildatei . . . : STDERR Satz . . . . . . : 1
Steuerung . . . : Spalte . . . . . : 1
Suchen . . . . . :
*...+....1....+....2....+....3....+....4....+....5 ....+....6....+....7....+....8....+....9....+....0 ....+....1....+....2....+....3
000000000000fopen() error.
000000000000Error accessing file: /home/TECCMD/NetPriceMasterData.xml 3025
****** DATENENDE ******

Die Pfadangabe bekommt von irgendwoher immer einen blank hinten angehängt, so dass das XML-File im IFS nicht gefunden wird. :o

mom
18-01-07, 15:01
Eins fällt mir auf, :) wenn ich die Pfadangabe ändere, bleibt der Rest von der vorherigen noch stehen s.u.



Physische Teildatei anzeigen
Datei . . . . . : STDERR Bibliothek . . . : QTEMP
Teildatei . . . : STDERR Satz . . . . . . : 1
Steuerung . . . : Spalte . . . . . : 1
Suchen . . . . . :
*...+....1....+....2....+....3....+....4....+....5 ....+....6....+....7....+....8....+....9....+....0 ....+....1....+....2....+....3
000000000000fopen() error.
000000000000Error accessing file: NETPRICEMASTERDATA.XML a.xml 3025
****** DATENENDE ******

Fuerchau
18-01-07, 15:26
Wie rufst du das C-Progrämmchen den auf ?

C arbeitet bei Strings (CHAR) mit einem Ende-Zeichen X'00'.
Wenn du also aus CLP/RPG aufrufst so hänge per *TCAT X'00' an.
Beim Aufruf aus ILERPG kannst du den Paramter mit "*string" kennzeichnen.

mom
18-01-07, 15:50
Aufruf erfolgt aus CLP:

PGM PARM(&PARM1 &PARM2 &PARM3)
DCL VAR(&PARM1) TYPE(*CHAR) LEN(19)
DCL VAR(&PARM2) TYPE(*CHAR) LEN(513)
DCL VAR(&PARM3) TYPE(*CHAR) LEN(256)
:
:
:
CALL PGM(DXXSAMPLES/SHDX) PARM(&PARM1 &PARM2 &PARM3)
DLTOVR FILE(STDERR STDOUT) LVL(*JOB)


*TCAT wird ausprobiert, dauert aber ein Weilchen.
Danke für den Tip.

Fuerchau
18-01-07, 16:32
Achtung:
Du erwartest mit &PARM2 und &PARM3 mehr als 32 Zeichen !!!

D.h., dass du das Programm so aus der Kommandozeile oder mit Konstanten nicht aufrufen kannst, da der CALL-Befehl nur soviele Zeichen übergibt wie eingegeben, mindestens jedoch 32 Zeichen.

Dein CLP greift dadurch ggf. auf Schrottdaten zu !!!

Entweder schreibst du ein CMD dazu wodurch dir die Übergabeparameter garantiert sind oder du kannst dieses CLP nur von anderen PGM'en aufrufen.

mom
19-01-07, 08:25
Alles klar. Danke. Ich werde das Ganze überdenken. Fortsetzung folgt ...

mom
19-01-07, 12:40
Hoppla, was ist denn das?

Wenn ich das C-Progrämmchen so aufrufe, aus dem Prompt:

Programm aufrufen (CALL)

Auswahl eingeben und Eingabetaste drücken.

Programm . . . . . . . . . . . . > SHDX Name
Bibliothek . . . . . . . . . . > DXXSAMPLES Name, *LIBL, *CURLIB
Parameter . . . . . . . . . . . > DEGOEHR1

> '/home/TECCMD/NetPriceMasterData.dad'

+ für weitere Werte > '/home/TECCMD/NetPriceMasterData.xml'

Dann geht's siehe hier:

Connecting to database DEGOEHR1
errCode=-85:0
msgtext'DXXQ047E Parserfehler in Zeile 1 Spalte 1: Invalid document struct
ure
':0
Die Eingabetaste drücken, um die Terminalsitzung zu beenden.

Aber nicht über's CL. Naja der Parser ist schonmal angesprungen, mehr wollte ich im Moment nicht.

Fortsetzung folgt...

mom
22-01-07, 10:49
Hallo,
nun habe ich den XML-Extender einigermaßen starten können, bekomme aber nun einen Parserfehler: DXXQ047E 'Invalid document structure'.

Meine *.dad-Datei und die *.xml-Datei habe ich mit Websphere Dev Studio Client bearbeitet/erstellt und dann ins IFS in home/TECCMD exportiert.

Beim Extender Aufruf (stored procedure im C-Progrämmchen) achte ich darauf, das die CCSID des Jobs und der Dateien gleich ist. z.B. 37. Trotzdem komme ich nicht weiter. :(

Ich habe auch hier klick (http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp) nachgeschaut und nichts gefunden, ehrlich.:rolleyes:

mom
22-01-07, 13:31
"Probieren geht über studieren." [Zitat unbek.]

In meinem Fall sollte die Job-CCSID 273 lauten, die der Dateien 819, warum auch immer. Auf jeden Fall jetzt geht's. :)

Fuerchau
22-01-07, 13:41
819 entspricht ANSI (besser wäre ggf. 1252, Windows).
Der Job auf 273 ist nur dann erforderlich, wenn im Programm Konstanten verwendet werden.
037 für USA müsste genauso gehen.