Autor Thema: Pipeline mit DXLImport und Parser. funktioniert leider nicht.  (Gelesen 1386 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Einen Pipeline für einen DXLExporter mit DXLExporter, Parser, Stream aufzubauen funktioniert wunderbar.
Auch mit dem Roundtrip DxlExporter, Parser, DxlImporter gibts keine Probleme.
Ebenfalls mit DXLTransformer.

Was nicht funktioniert ist Stream -> Parser-> DXLImporter
Sobald ich einen Parser dazwischenhänge, meldet Notes eine DXLImport failed Exception (leider nicht sehr aussagekräftig).
Kapieren tue ich das nicht. Gemäss Doku sollte man das nach meinem Verständnis dürfen.

Es gibt den Workaround den Stream erst in einen Parser zu jagen und danach erst in den DXLImporter. Das befriedigt mich zwar im Zweifel ausreichend, aber vielleicht geht es besser?

Wenn also jemand eine Idee hat, bitte melden.


Gruß Axel
Code
%REM
dxl-import the incomming xml in the notesdatabase to update documents. 

%END REM
	Function importDxl (filePath As String) As String
		'ErrorHandling
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
		Const constrErrorLocation = "(agProcessMailIn) - ReturningTranslation.importDxl"	
		On Error Goto ErrorHandler
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		Dim dxlImporter As NotesDXLImporter
		Dim nstInput As NotesStream
		Dim strRet As String
		Dim parser As NotesSAXParser 
		
		strRet = ""
		
		'open Stream from file
		Set nstInput = session.CreateStream
		If Not nstInput.Open(filePath) Then
			importDxl =  "Cannot open " + filePath
			Exit Function
		End If
		If (nstInput.Bytes=0) Then
			importDxl =  filePath + " is empty or did not exist!"
			Exit Function
		End If
		Set parser = session.CreateSAXParser	
		Set dxlImporter = session.CreateDXLImporter()
		dxlImporter.DocumentImportOption = DXLIMPORTOPTION_UPDATE_ELSE_CREATE

		Call parser.setInput(nstInput)
		Call parser.setOutput(dxlImporter)
		Call dxlImporter.setOutput(Me.dbCurr)
		On Event SAX_StartElement From Parser Call SAXStartElement
		
                Call parser.process
		Call nstInput.Close
		strRet = ""
Ende:
		Exit Function
'--------------------------------------- Error handling -------------------------------------------------
ErrorHandler:
		Call objPublicErrorHandler.handleError ( Err, Error, Erl, constrErrorLocation, getMsgText(12))
		strRet = "Error importing dxl file"	
		Resume Ende		
	End Function

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz