Hallo,
folgendes kann ich nicht verstehen, suche Erklärbär:
In einer Mailin DB läuft ein Agent nach eingang neuer Mail.
Er erstellt nur eine Textdatei aus dem Body und fügt dem Dokument das Feld
"processed" hinzu, damit es aus der Ansicht verschwindet.
Die Mails kommen von nicht-Notes Systemen. Vor dem Agent sind ö und ü lesbar,
nacher sind sie durch Fragezeichen ersetzt, aber nur wenn der Agent nach neuer
Mail läuft. Lasse ich den selben Agenten von Hand laufen, bleiben die Umlaute erhalten. Es ist doch 2 mal der gleiche Agent, doch ich kann die selbe Mail immer
wieder in die Datenbank kopieren und erhalte immer 2 verschiedene Eregebnisse.
Oueue abarbeiten/Local ruft ProcessDocuments manuell auf:
Sub ProcessDocuments
Dim session As New NotesSession
Dim db As NotesDatabase
Dim v As notesview
Dim search As String
Dim d As Notesdocument
Dim i As Notesitem
Dim dateTime As New NotesDateTime("12/01/94")
Dim rtitem As Variant
Dim content As Variant, contents As String
On Error Goto fehler
Set db = session.CurrentDatabase
Set v = db.GetView("Queue")
If session.currentagent.servername = "CN=XYZNT01/O=FIRMA" Then
Path = "/EDINOTES/IN/"
Else
Path = "W:/EDINOTES/IN/"
End If
Fname = "F" & Format(Now,"yyyymmddhhmmss")
File = path & fname
x=0
Set d = v.GetFirstDocument
While Not (d Is Nothing)
If d.HasEmbedded Then
If d.HasItem("Body") Then
Set rtitem = d.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
If rtitem.EmbeddedObjects <> "" Then
Forall o In rtitem.EmbeddedObjects
If ( o.Type = EMBED_ATTACHMENT ) Then
x=x+1
Call o.ExtractFile( file & "_" & Cstr(x) & ".TXT" )
RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT") End If
End Forall
Else
contents = Rtitem.Text
x=x+1
FN=1
Open file & "_" & Cstr(x) & ".TXT" For Output As FN
Print # FN,contents
Close FN
RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT")
End If
End If
Else
' no body field - no data
End If
Else
If d.hasitem("Body") Then
Set rtitem = d.GetFirstItem( "Body" )
contents = Rtitem.Text
x=x+1
FN=1
Open file & "_" & Cstr(x) & ".TXT" For Output As FN
Print # FN,contents
Close FN
RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT")
End If
End If
Set i = D.ReplaceItemValue( "Processed", Format(Now(), "General Date") )
Call d.Save( True, False )
Call v.refresh
Set d = v.GetFirstDocument
Wend
Ende:
Exit Sub
Fehler:
If logopened Then
Call aLog ( "Fehler: " & Str(Err) & ": " & Error$)
cLog.Close
Else
Print "CpyToServer in editrans.nsf hat Fehler " & Str(Err) & " in Zeile " & Erl() & ":" & Error$
End If
Resume Ende
End Sub
Wenn das Ding über eingang Mail gestartet wird, kommt zuerst:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim a As NotesAgent
Set db = s.CurrentDatabase
Set a = db.GetAgent("CopyToServer")
If a.RunOnServer = 0 Then
Print "Queue processed on server " & db.Server
Else
Print "Error processing queue on server " & db.Server
End If
End Sub
"Copy to Server" nimmt nur alle Dokumente in einem bestimmten Ordner und ruft
wieder "ProcessDocuments" auf.
Hierbei wird die Mail in irgend einer Form umgewandelt und Umlaute werden zu ?.
Ich komme hier einfach nicht weiter. Bin für jeden Tip dankbar!
Grüsse auf Hessen