Autor Thema: Pipeline mit DXLImport und Parser. funktioniert leider nicht.  (Gelesen 1426 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