PDA

View Full Version : lib SYSPROC - XML



Seiten : [1] 2

itec01
02-01-20, 14:07
Hallo Zusammen und als erstes mal ein Frohes Neues Jahr an Alle.
Ich möchte meine Schemas per XSR registrieren, wie:

Call SYSPROC/XSR_Register('xxxxxxx', 'UMSATZ_XSR', NULL,
Get_XML_File('/home/XMLSchema/UmsatzXSD.xsd'), NULL);

Leider gibt es die Prozeduren bei uns nicht. Die LIB SYSPROC ist ziehmlich leer.

Wir haben V7R2M0 drauf.

Fehlt hier ein PTF?

Danke.

Gruß Klaus

Fuerchau
02-01-20, 15:47
Was gibts denn tatsächlich für einen Fehlercode?
DasThema wurde hier auch schon mal behandelt:
http://newsolutions.de/forum-systemi-as400-i5-iseries/threads/18625-SQL-und-XML-Fehler-bei-Create-Procedure

itec01
02-01-20, 16:08
Die Prozedur XSR_register wird nicht gefunden.
Code: -5016, SQL State: 42833 Qualifizierter Objektname XSR_REGISTER nicht gültig.

Ich denke, dass irgendetwas fehlt. Bei mit in der SYSPROC gibt es 2 Prozeduren.

Fuerchau
02-01-20, 16:24
Suche mal in den Lizenzprogrammen nach "XML Extender".

B.Hauser
02-01-20, 16:25
Eigentlich ist der CALL-Befehl korrekt.
Allerdings handelt es sich bei dem 1. Parameter um die Bibliothek in der das XSR gespeichert werden soll.
Die Bibliothek sollte (natürlich) vorhanden sein und in Großbuchstaben angegeben werden.

Wenn Du mit den CL-Befehlen WRKOBJ oder WRKOBJPDM in die Bibliothek schaust, siehst DU lediglich 2 Einträge, jedoch nicht die Prozeduren!
Du musst Dir die SYSPROC (bzw. deren Inhalt) mit dem iSeries Navigator oder mit ACS - Schemas anschauen.

Evtl. arbeitest Du auch mit SQL-Naming. In diesem Fall ist der / als Trennzeichen zwischen Schema und Objekt nicht zulässig, sondern nur der Punkt

Birgitta

Fuerchau
02-01-20, 16:55
Da muss ich Birgitta Recht geben, schau mal die Meldung genau an:
https://www.ibm.com/support/pages/error-sql5016-object-name-not-valid-naming

Versuche es mal mit dem Punkt.
Ansonsten => Lizenzprogramm.

itec01
02-01-20, 17:10
Birgitta,
vielen Dank. Ich war komplett auf dem falschen Weg unterwegs.
Ich dachte, dass im 1. Parameter nicht die LIB sondern der Systemname stehen muss. Mit richtigem Commit hat es dann auch funktioniert.

Danke nochmals.
Klaus

itec01
25-03-20, 10:55
Hallo,
ich habe nun folgendes Problem die gespeicherte Prozedur abzuschließen.
Ich habe folgendes gemacht:
- session auf commit *All umgestellt
- Call SYSPROC.XSR_Remove('XXXXX', 'EID_XSR')
- Call SYSPROC/XSR_Register('XXXXX', 'EID_XSR', NULL, Get_XML_File('/temp/Kaz/EID_xml.xsd'), NULL)
Das Schemata ist nun sichtbar mit Status "UNVOLLSTÄNDIG"
- Call SYSPROC/XSR_Complete('XXXXX, 'EID_XSR', NULL, 1)
Nun kommt "Fehler von Auslöserprogramm oder externer Routine erkannt.".
Im Joblog steht nun:
XML-Schemaannotationen enthalten keine Zuordnungen zu einer Spalte einer
Tabelle.
Es hat schon einmal funktioniert, d.h. der Status ging dann auf AKTIV. Aber nachdem ich es gelöscht habe funktioniert es nicht.
Kann es an der XSD Datei liegen.
mit Call SYSPROC/XSR_Complete('XXXXX, 'EID_XSR', NULL, 0) funktioniert es, aber damit ist die Dekomposition inaktiviert.

Danke und Bleibt gesund.
Klaus

Fuerchau
25-03-20, 11:13
Ggf. ist im XML ein Knoten/Attribut im XSD nicht korrekt oder gar nicht dokumentiert:
"XML-Schemaannotationen enthalten keine Zuordnungen zu einer Spalte einer
Tabelle."
Ggf. kannst du das XML ja mal extern prüfen:
z.B. https://www.107er.net/hitech/2016/04/xml-validieren-mit-notepad/

PS:
Commit *CHG sollte i.d.R. genügen.
(https://www.107er.net/hitech/2016/04/xml-validieren-mit-notepad/)

itec01
25-03-20, 13:41
Danke Dir, ja, es liegt an der XSD.
Ich bin mir nicht sicher aber ich glaube, dass ich auf dem falschen Weg bin. In der Beispiel XSD von Birgitta ist die klare Zuordnung zu einer Tabelle auf der AS/400. In meiner XSD natürlich nicht. Ich dachte dass ich eine x-beliebige XSD Datei nehmen kann und mit der dazugehörigen XML Datei sollte es auslesbar sein. Wenn ich mir die XSD Datei von Birgitta anschaue, dann sind hier klare Zurodnungen zu einer Tabelle auf der AS/400 drin. Definiert wird das mit "annotation".
Verstehe ich es richtig, dass ich mir eine eigene XSD Datei und die entsprechende Tabelle auf der AS/400 bauen muss, damit ich überhaupt die XML Daten importieren kann?
Danke.