-
XML Extender for iSeries
Hallo,
ich möchte Daten aus einer XML-Datei in eine phys.Datei einlesen. Da wir noch das V5R3 haben, kann ich die neuen RPG-Operationen XML-SAX und XML-INTO noch nicht nutzen. Ich habe mich deshalb mit dem "XML Extender for iSeries" angelegt, mit der Hoffnung, die Angelegenheit schnell über die Bühne zu bringen um mich dann wichtigeren Dingen zu widmen. Stand der Dinge, nach ca. 2 Wochen: ich habe eine .dad-Datei und eine .xml-Datei im IFS. Die Datenbank auf der iSeries ist enabled. Was mir noch fehlt, ist irgendwie die Verbindung vom Extender zum IFS.
Ich verwende das Beispielprogramm der IBM shdx.c aus der dxxsamples-Bibliothek, die beim Installieren des Extenders erzeugt wird. Kennt sich jemand damit aus, bzw. hat das schon mal ausprobiert?
Hier die Fehlermeldung des Pgm's:
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: /qdls/pc-daten/D.xml ****** DATENENDE ******
-
Ich denke mal, das Problem ist das QDLS.
QDLS unterstützt keine CCSID's und der fopen() wird sicherlich mit CCSID durchgeführt (ASCII->EBCDIC).
Probiere es mal mit einem anderen IFS (/Home/MyDir).
-
OK,
dann eben so:
CALL PGM(DXXSAMPLES/SHRED)
PARM
(DEGOEHR1 '/home/teccmd/NPMD.dad' '/home/teccmd/NPMD.xml')
Wobei die CCSID des Jobs = 37 ist, die der Dateien auch.
Ergebnis:
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/NPMD.xml
******DATENENDE
-
Hier wäre dann noch der genaue Fehlercode ERRNO wichtig.
Ggf. gibts im Joblog noch Hinweise.
Wie sieht die Berechtigung der Datei aus (WRKLNK, Auswahl 9) ?
-
Guten Morgen und herzlichen Dank für die Mühe.
Also einen Fehlercode gibt es nicht wirklich, da der fopen() beim Scheitern im Pgm. abgefangen wird.
So sieht's im Pgm. aus:
testfile = fopen( xmlfile.name, "r" );
if ( testfile != NULL ) {
fclose( testfile );
}
else
{
fprintf(stderr, "fopen() error./n");
fprintf(stderr, "Error accessing file: %s /n", xmlfile.name);
rc = -1;
goto exit;
};
Der JOBLOG sagt auch nichts genaues.
Für die Dateien habe ich die volle Berechtigung und die Dateien gehören mir.
Freundliche Grüße
Alex
-
Dies zeigt mir, dass du in C nicht so firm bist.
"errno" ist eine extern deklarierte Variable, die einen Fehlercode zum letzten aufgetretenen Fehler enthält.
Es gibt auch eine Routine, die den Text zu diesem Fehler liefert (must du mal im C-Handbuch suchen).
-
Ja, "C" ist nicht mein Hauptdialekt, eher RPG.
Wie gesagt, dies ist ein IBM Beispielpgm. das ich verwende,
fertig kompiliert und lauffähig.
Wo könnte ich denn die ERRNO finden ? Im JOBLOG sehe ich nicht viel.
-
OK:
Füge am Anfang des C-Programms folgendes ein:
Ändere die Zeile:
Code:
fprintf(stderr, "Error accessing file: %s %d/n", xmlfile.name, errno);
Die Bedeutung des Fehlers findest du dann in
QSYSINC/H Member ERRNO
-
Gut, gut.
Das ist das Ergebnis:
#define ENOENT 3025 /* no such file or library
Das gibt mir zu denken. Sind doch beide da, Datei und Bibliothek.
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/NPMD.xml 3025
****** DATENENDE ******
-
Ggf. wird casesensitive gesucht.
Prüfe mal den Namen genau ab.
Ich hatte auch schon mal den Fall, dass im Verzeichnis/Namen am Ende noch Leerzeichen enthalten waren.
-
Die Namen/Pfadangaben stimmen überein.
Irgendwie stehe ich momentan auf'm Schlauch.
****************
Mit Objektverbindungen arbeiten
Verzeichnis . . . : /home/TECCMD
Auswahl eingeben und Eingabetaste drücken.
2=Editieren 3=Kopieren 4=Entfernen 5=Anzeigen 7=Umbenennen
8=Attribute anzeigen 11=Aktuelles Verzeichnis ändern ...
Aus-
wahl Objektverbindung Art Attribut Text
dad.dtd STMF
test.txt STMF
NPMD.dad STMF
NPMD.xml STMF
**************************
Programm aufrufen (CALL)
Auswahl eingeben und Eingabetaste drücken.
Programm . . . . . . . . . . . . > SHRED Name
Bibliothek . . . . . . . . . . > DXXSAMPLES Name, *LIBL, *CURLIB
Parameter . . . . . . . . . . . > DEGOEHR1
> '/home/TECCMD/NPMD.dad'
+ für weitere Werte > '/home/TECCMD/NPMD.xml'
-
Nur so zum Test:
Mach vorher mal einen CD in "/Home/TECCMD" und ruf das Programm ohne Pfadangaben auf.
Ist TECCMD nun groß oder kleingeschrieben ?
Schau mal ins C-Handbuch nach "fopen" und ggf. weiteren Optionen "r....".
Similar Threads
-
By vige1000 in forum NEWSboard Linux
Antworten: 4
Letzter Beitrag: 21-12-06, 11:56
-
By Weki in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 11-09-06, 13:31
-
By kuempi von stein in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-07-06, 08:50
-
By Jenne in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 29-03-06, 09:49
-
By DEVJO in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 18-04-05, 09:38
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks