Domino 9 und frühere Versionen > ND7: Entwicklung
XML-Datei aus Mail einlesen
Michael Gerdes:
Moin Axel.
Ist doch kein Thema. Bis dahin werde ich mir mit dem temporär lokal wegspeichern helfen.
Läuft schon ganz gut... (bis jetzt)
Die elegantere Lösung kann ich dann immer noch in einer höheren Version implementieren.
Greetz
Michael
Michael Gerdes:
Hallo.
Ich möchte nochmal kurz zu diesem Thema Stellung beziehen.
Ich habe mich also jetzt zunächst dazu entschieden, die XML-Files temporär auf dem Server abzulegen, sie dann zu verarbeiten und anschließend wieder zu löschen. Das klappt sehr gut. Solange der dafür erstellte Agent auf einem Windows-Server läuft.
Wir haben unter anderem Linux im Einsatz.
Das merkwürdige ist, wenn der Agent auf einem Linux-Server läuft und die Dateien temporär im Dateisystem von Linux ablegt, dass das jeweilige XML-File nicht eingelesen werden kann.
Das File wird immer mit 0 Bytes gehändelt, dabei steht da eine ganze Menge drin.
Jemand eine Ahnung woran das liegen könnte?
Greetz
flaite:
--- Zitat von: Michael Gerdes am 20.02.07 - 17:01:25 ---
Das File wird immer mit 0 Bytes gehändelt, dabei steht da eine ganze Menge drin.[/b]
--- Ende Zitat ---
Vielleicht kannst du mal die entscheidende Stelle im Source Code posten. Das hab ich allerdings noch nie gehört. FileNotFound Exceptions kenne ich aber zu genüge.
Michael Gerdes:
Hi.
Danke für die umgehende Antwort.
Hier der dafür verantwortliche Script-Code:
Zunächst einmal werden XML-Dateien aus einer E-Mail gelöst...
...
'Datei in die vorgegebene Freigabe auf einem Fileserver kopieren und eine laufende Nummer anhängen
filename = Strleft(o.source, ".") & "_" & attachcounter & "." & fileextension 'Dateinamen des Attachments einlesen
Call o.ExtractFile(freigabeFileServer & filename)
...
anschließend wird die Datei wieder in einen Notesstream eingelesen und vom domParser verarbeitet...
...
'erstes XML-File einlesen
xml_in_filename = Dir$( freigabeFileServer, 0)
Do While xml_in_filename <> ""
If xmlcontinue = True Then
Else
Goto Errhandle
End If
xml_in_filepath = freigabeFileServer & xml_in_filename
Set xml_in=session.CreateStream
If Not xml_in.Open( xml_in_filepath) Then
Print "Cannot open " & xml_in_filepath,, "XML file error"
Exit Sub
End If
If xml_in.Bytes = 0 Then
Print xml_in_filepath & " is empty",, "XML file error"
Exit Sub
End If
'XML-File mit dem domParser verarbeiten (Daten in eine Baumstruktur bringen)
Set domParser=session.CreateDOMParser(xml_in)
domParser.Process
...
Das eingelesene XML-File enthält 0 Bytes :-( (ermittelt zumindest das Script).
Sieht man sich jedoch die Datei auf dem Server direkt an, so enthält sie 65.832 Bytes (XML-Code).
Kann das an der Codierung liegen (UTF-8)?
Habe auch schon Unicode ausprobiert --> Kein Resultat.
Hast Du eine Idee?
Greetz
Michael
m3:
Die Designer-Hilfe ist Dein Freund! ;)
--- Zitat ---To create a NotesStream object, use the CreateStream method in NotesSession.
When a stream is created, property values are:
Bytes is 0.
...
--- Ende Zitat ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln