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
| %REM |
| dxl-import the incomming xml in the notesdatabase to update documents. |
| |
| %END |
| Function importDxl (filePath As String) As String |
| |
| |
| 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 = "" |
| |
| |
| 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 |
| |
| ErrorHandler: |
| Call objPublicErrorHandler.handleError ( Err, Error, Erl, constrErrorLocation, getMsgText(12)) |
| strRet = "Error importing dxl file" |
| Resume Ende |
| End Function |