[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    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
    Sep 2004
    Beiträge
    360
    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

  4. #4
    Registriert seit
    Sep 2004
    Beiträge
    360
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    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.
    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

  6. #6
    Registriert seit
    Sep 2004
    Beiträge
    360
    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.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dazu müsste es mal ein Dokument geben, dass die Zusammenhänge mal darstellt.
    Bei der Beschreibung der XSR-Routinen fehlt der Hinweis wozu diese denn eigentlich gut sind.
    https://www.ibm.com/support/knowledg...rbafzprocs.htm
    Die Beispiele sind ja nur Syntax-Beispiele.
    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

  8. #8
    Registriert seit
    Sep 2004
    Beiträge
    360
    Prinzipiell funktioniert es so:
    - Mit XSR_Register und Complete wird die XSD als Prozedur definiert
    - In der XSD gibt es einen Bezug zu einer phyischen Tabelle auf der AS/400
    - Mit XDBDECOMPXML wird der Inhalt der XML Datei in die physische Datei geschrieben
    - Mit SQL oder RPG Read kann dann der Inhalt einfach ausgelesen werden
    So viel zur Theorie.

    Wenn ich zu jeder XSD Datei diesen Umstand betreiben muss, dann muss ich etwas anderes suchen um einfach XML Dateien zu parsen und mittels RPG auszulesen.
    Aber ich bin mir halt nicht sicher. Daher wäre es super, wenn jenamd dies schon in der Praxis hat.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da bietet sich regulär XML-Into aus RPGLE an.
    Funktioniert absolut perfekt und deckt die meisten Anforderungen ab.
    Beispiele gibts hier einige.

    http://newsolutions.de/it/suche/?cx=...-into&sa=Suche
    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

  10. #10
    Registriert seit
    Sep 2004
    Beiträge
    360
    Danke. Lt. Birgitta wäre es wohl eleganter die neuen BIF per SQL zu nutzen. Die wären mächtiger. Aber ich versuche es mit dem XML-INTO.
    Schönen Abend.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Über Eleganz lässt sich da streiten.
    Elegant wäre, XML per JAVA zu verarbeiten, da hierarchische Strukturen mit XML in Objekten besser dargestellt wird.
    Die Umsetzung in relationale Strukturen stellt mitunter einen Krampf dar, da die XML z.B. mit Parent/Child-Id's ausgestattet sein müssten, um relationale Beziehungen darstellen zu können.

    XML-INTO bietet zumindest den Ansatz mittels geschachtelter qualified DS eine Analogie zu schaffen und ich komme ohne XSD und Hilfstabellen aus.
    Ich definiere einfach die Baumstruktur, mache meine XML-INTO und verarbeite die Daten.
    "Eleganter" und vor allem schneller gehts nicht.
    Gut, ein Problem gibt es dann, wenn die DS dann größer 16MB wird. Aber auch das lässt sich durchaus mit geschickter Pfad-Angabe lösen.

    XML in SQL liefert immer relationale Strukturen mit z.T. koplexen SQL-Ausdrücken.

    Klar sieht ein SUV auf einem Radweg schick aus, aber das Fahrrad wäre da eleganter.
    Jedoch wäre der Sportwagen (Java) hier die effektivste Lösung da native.
    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

  12. #12
    Registriert seit
    Sep 2004
    Beiträge
    360
    Danke. Hättest du zufällig ein Beispiel Progrämmchen mit passender XML Datei dazu?
    Das wäre perfekt.

Tags for this Thread

Berechtigungen

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