N'abend zusammen!
Hab's jetzt grundsätzlich hinbekommen.
Wenn ich als Auslöser 'Wenn Dokumente eingefügt werden' wähle, funktioniert alles prima, als Auslöser 'Nach Eingang neuer Mail' tut sich nichts, obwohl der Agent gem. Protokoll losläuft.
Woran kann das liegen?
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtitem As Variant
Dim Text As String
Dim fileNum As Integer
Dim fundstelle As String
Dim iban As String
Dim feldwert As NotesItem
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
If doc.HasEmbedded Then
Set rtitem = doc.GetFirstItem( "Body" )
ForAll o In rtitem.EmbeddedObjects
Sleep 1
If o.Type = EMBED_ATTACHMENT Then
'Datei temporär ablegen'
file = getTimeStamp(Now) & o.Source
Call o.ExtractFile( "\temp\" & file )
fileNum% = FreeFile()
Open "\temp\" & file For Input As fileNum%
Do Until EOF(1)
'Hier erfolgt die weitere Verarbeitung, bis das Ende der Datei erreicht ist.
Line Input #1, text$
fundstelle$ = InStr(text$, "<DbtrAcct><Id><IBAN>")
While fundstelle$ > 0
iban$ = iban$ & "," & Mid(text$, (fundstelle$ + 20), 22)
text$ = Mid(text$, (fundstelle$ + 42))
fundstelle$ = InStr(text$, "<DbtrAcct><Id><IBAN>")
Wend
Loop
Close fileNum%
'temporäre Datei löschen
Kill ( "\temp\" & file )
End If
End ForAll
'Variable iban das Feld übertragen
Set feldwert = doc.ReplaceItemValue( "vorg_ktonr", iban$ )
'Speichern
Call doc.Save( False, True )
End If
End Sub
Function getTimeStamp(dt As Variant) As Long
Dim dtEpoch As New NotesDateTime("1/1/1970 00:00:00")
Dim dtTemp As New NotesDateTime(Now)
dtTemp.LSLocalTime = dt
getTimeStamp = dtTemp.TimeDifference(dtEpoch)
End Function
Viele Grüße
Thomas