Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: bikerboy am 24.03.09 - 11:05:13

Titel: DXL-Import
Beitrag von: bikerboy am 24.03.09 - 11:05:13
Hallo ich möchte mal wieder was mit DXL Importieren und falle wie gewohnt auf die Nase..... daraufhin habe ich mir mal meine alten Postings zu dem Thema durch gelesen und bin auf das hier gestossen.

Code
Set exporter = session.CreateDXLExporter
	Set parser = session.CreateDOMParser	
	Set importer = session.CreateDXLImporter
	Call exporter.SetInput(nc)
	Call exporter.SetOutput(parser)
	Call parser.SetOutput(importer)
	Call importer.SetOutput(dbUmzug)

	importer.ReplicaRequiredForReplaceOrUpdate = False
	importer.DocumentImportOption = DXLIMPORTOPTION_IGNORE
	importer.DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE

       On Event PostDOMParse From parser Call PostDOMParseAdd
	' die Funktion PostDomParseAdd wird aufgerufen, wenn das DXL vom Dom Parser voll geparsed 
	' und als DOM-Modell dargestellt ist. In der Funktion können Nodes verändert werden. 


       Call Exporter.Process

Naja jedenfalls wollte ich nun die Routine "PostDOMParseAdd" erstellen und der Compiler meckert aber das ich die Falsche Anzahl an Argumenten hätte.

Könnt ihr mir weiter helfen.

Ich hätte einen String in dem das komplette DXL-Document enthalten ist. Aber ich kann es nicht importieren.
Titel: Re: DXL-Import
Beitrag von: s_Old am 24.03.09 - 11:13:21
Und deine Funktion PostDOMParseAdd nimmt auch ein Agrument entgegen (NotesDOMParser)?
Titel: Re: DXL-Import
Beitrag von: bikerboy am 24.03.09 - 11:20:59
Der codeschnipssel kommt aus einem alten posting

ich habe keine Ahnung wie die Routine aussehen muss, aber sie wird doch auch ohne argumente aufgerufen
Titel: Re: DXL-Import
Beitrag von: s_Old am 24.03.09 - 11:35:27
In deiner Function/Sub muss der Rumpf in etwa so aussehen:

Code
PostDOMParseAdd (Source As NotesDOMParser)

Weitere Infos zu dem On Event findest du hier: http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=/com.ibm.help.domino.designer85.doc/DOC/LSAZ_ON_EVENT_STATEMENT.html (http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=/com.ibm.help.domino.designer85.doc/DOC/LSAZ_ON_EVENT_STATEMENT.html)
Das wird u.a. auch in der objektorientierten LotusScript Programmierung angewandt, um z.B. in einer Klasse ein Querysave abzufangen.
Code
On Event Querysave From Source Call MeinQuerysave
...
Private Sub MeinQuerysave(Source As NotesUIDocument, Continue As Variant)
Titel: Re: DXL-Import
Beitrag von: bikerboy am 24.03.09 - 12:00:46
Hmmm mal was anderes,

Ich habe folgenden String

Zitat

<!DOCTYPE scriptlibrary SYSTEM 'xmlschemas/domino_7_0_3.dtd'>
<scriptlibrary name='lslTest' xmlns='http://www.lotus.com/dxl' version='7.0'
 maintenanceversion='3.0' replicaid='C1257583003BADCB' hide='v3 v4strict'>
<noteinfo>
<created><datetime>20090323T152108,41+01</datetime></created>
<modified><datetime>20090324T115151,29+01</datetime></modified>
<revised><datetime>20090323T160601,40+01</datetime></revised>
<lastaccessed><datetime>20090324T115151,24+01</datetime></lastaccessed>
<addedtofile><datetime>20090324T115151,24+01</datetime></addedtofile></noteinfo>
<updatedby><name>CN=Domain Administrator/O=endradev</name></updatedby>
<wassignedby><name>CN=Domain Administrator/O=endradev</name></wassignedby><code
 event='options'>%INCLUDE "C:\Programme\lotus\notes\lslTest.lss" </code>
</scriptlibrary>

Code
Set importer = session.CreateDXLImporter
Call importer.Import(strInput)

aber bei dem Import gibt er mir die Fehlermeldung

Zitat
DXLImporter ouput object is invalid , uninitialized, or not explicity declared and strongly typed
Titel: Re: DXL-Import
Beitrag von: bikerboy am 24.03.09 - 14:50:47
So habe die Routine nun endlich aufgerufen bekommen, aber ich weiss nicht was ich da sehen soll.

Könnt ihr mir helfen.

Ich habe auch mal versucht, dass was der Exporter ausgespuckt hat gleich wieder über den Importer zu importieren, aber da spuckt er auch einen Fehler aus. Wie kann das sein ?
Titel: Re: DXL-Import
Beitrag von: pram am 24.03.09 - 19:57:43
du musst bei session.CreateDXLImporter() zwei Parameter angeben, den Input-Stream UND(!) die DB in die er das reinimportieren soll
dann musst du ggf. noch die importer.documentImportOptions/designImportOptions setzen und dann soweit ich jetzt auswendig weiß, "process" aufrufen.

Gruß
Roland
Titel: Re: DXL-Import
Beitrag von: flaite am 24.03.09 - 20:43:56
Kannst du den Link auf das ursprüngliche Posting posten. Dann könnte ich dir vermutlich helfen.
Titel: Re: DXL-Import
Beitrag von: bikerboy am 25.03.09 - 10:43:20
http://atnotes.de/index.php/topic,42186.0.html (http://atnotes.de/index.php/topic,42186.0.html)
Titel: Re: DXL-Import
Beitrag von: flaite am 25.03.09 - 14:40:46
Lad dir von openntf viewnify runter und schau dir den source code an.