In Domino5 geht das nur mit Java (etwa Java Agent)
ich soll jetzt Daten aus einem Fremdsystem in eine bestehende Datenbank integrieren. Über das andere System weiß ich so gut wie nichts.
Für diesen Fall ist xml eine sehr gute Lösung. Eine der unbestrittenen Stärken von xml ist quasi gesprochen die Entkoppelung der Systemintegration von den Systemen selbst. D.h. wenn Du die Daten als xml bekommst, brauchst Du über das andere System nix zu wissen, sondern einfach nur Mechanismen schaffen, um die Daten aus dem xml auszulesen. Dafür gibt es standardisierte Mechanismen.*
Es ist relativ einfach.
Die Daten bekomme ich im XML-Format (je eine Datei.xml und eine Datei.dtd);
XML ist kein Format, sondern ein Meta-Format. XML ist nämlich ein Standard zur Definition von Formaten.
Das Format selber wird in der dtd bestimmt.
Sicher hat jemand sowas schon gemacht?
Ja. Ich.
Gibt es konkret auch Erfahrungen, solche Dateien automatisch zu verarbeiten?
Ich dachte da an einenScriptagenten, welcher die Dateien einlesen sollte und daraus dann Notes-Dokumente macht. Es geht dabei erstmal nur um reinen Text der dann in die entsprechenden Textfelder der zu generierenden Notes-Dokumente geschrieben werden soll.
Da ich so überhaupt keinen Plan habe: Könnt Ihr mir da vielleicht auf die Sprünge helfen? (Codebeispiel wäre natürlich super!?)
XML Parsing geht erst unter 6 mit LotusScript. Mit 5 nur Java. Es sei denn du schreibst deinen eigenen xml-Parser mit LotusScript.
Du mußt erstmal das xml mit dem xml4j parsen (Paket ist bei Domino dabei, xml4j.jar). Dafür solltest du hier einige wertvolle Informationen finden (inklusive source code):
http://www.ibm.com/Search?v=11&lang=en&cc=zz&q=XML4JDu solltest validierend parsen. Dh. der parser muss noch überprüfen, ob das xml der in der dtd definierten Format-Constraints entspricht.
Les dir ein paar von den Artikeln durch. Dort wird das beschrieben. Die ersten sahen ganz ok aus. Da ist auch source code.
Der Parser macht eigentlich die schwierige Arbeit für dich. Es gibt 2 verschiedene xml-Parser mit dem xml4j package in Domino5. Der DOM Parser ist für Anfänger meisst einfacher. Für den SAX Parser musst du ein bischen rekursiv denken. Wenn du wirklich sehr viele Datensätze verarbeitest, könntest du aber mit dem DOM Parser ein Arbeitsspeicherproblem bekommen (das du mit SAX nicht hast).
Für einen überblicksartigen Einstieg in xml empfehle ich:
http://www.w3schools.com/Wenn du im Domino Designer einen Java Agenten erstellst findest du in der Referenz links eine gewisse Api-Dok zum Thema und zwar genau dann, wenn du unter der Auswahl in der Selectbox links das mit der vielsagende Auswahl "org Java", nicht "Core Java" oder "Notes Java" triffst. Iris hat aber hier an den Beispielen gespart. Deshalb:
http://www.ibm.com/Search?v=11&lang=en&cc=zz&q=XML4JWenn du die Daten mit xml geparst hast, kannst du damit Notes-Dokumente erzeugen. Das geht so ähnlich wie mit LotusScript.
Document doc = db.createDocument();
doc.replaceItemValue("form", myForm);
...etc...
doc.save (true, false);
Ich würde beim parsen die einzelnen Datensätze erstmal in Objekten einer JavaBean artigen Klasse speichern, diese in eine java.util.ArrayList zwischenspeichern und dann die in die ArrayList geparkten Objekte auslesen und damit Notes Dokumente erzeugen.
Gruß Axel
* Bei Lotus Notes leider ein bischen weniger , weil der dort selbst in Domino6 verwendete uralt Parser (xml4j) nicht dem JAXP Standard entspricht.