Datei ist vom Typ NotesEmbeddedObject.
Lokal funktioniert es wunderbar, jedoch automatisiert (bei Maileingang) vom Server nicht
Anbei den ganzen Code.
Option Public
Option Declare
Sub Initialize
' Deklaration & Initialisierung
Dim session As New NotesSession 'Sitzung deklarieren
Dim db As NotesDatabase 'Datenbank deklarieren
Dim document As NotesDocument 'Dokument deklarieren
Dim importdocument As NotesDocument 'Importdokuemnt deklarieren
Set db = session.CurrentDatabase 'Datenbank definieren
Dim view As NotesView 'Ansicht deklarieren
Set view = db.Getview("Maileingang") 'Ansicht öffnen
Dim viewentry As NotesViewEntry
Dim viewcollection As NotesViewEntryCollection 'Ansichtssammlung deklarieren
Set viewcollection = view.Allentries 'Alle Dokumente der Ansicht zur Sammlung hinzufügen
Set viewentry = viewcollection.Getfirstentry() 'Auswählen des ersten Eintrages in der Ansicht
On Error GoTo Fehler
Set document = viewentry.Document 'Auswählen des ersten Dokumentes
Dim rtitem As notesrichtextitem
Dim strZeile As variant
Dim intnum As integer
Dim impfile As String
Dim datei As NotesEmbeddedObject
Dim temp, pfad As String
' Bearbeitung und Ausgabe
'MsgBox (viewcollection.count) 'Anzahl der Dokumente in der Ansichtssammlung als Prompt ausgeben
' Schleifenanfang Jeden Anhang importieren und anschließend Mail löschen, bzw. verschieben
Do While Not viewentry Is Nothing 'Schleifenbedingung
If Not document.Hasembedded Then GoTo looop
'document.Test = "Test" 'Testdaten schreiben
Dim anhang As Variant 'Anhang als Variant deklarieren
Set rtitem = document.Getfirstitem("Body") 'Richtextitem als Body bestimmen
ForAll i In document.Items 'Alle Items im body auslesen
If i.type=Attachment Then 'Ausführen, wenn Item = Anhang (Datei)
Set anhang = document.Getattachment(i.values(0))'Anhang als Variant setzen
Set datei = document.Getattachment(anhang.name) 'Anhang als Objekt setzen
'MessageBox anhang.source 'Dateinamen vom Anhang ausgeben
If Left(anhang.source, 10) = ("Infobau_Au") Then'Die ersten 10 Buchstaben von Links sind zur Erkennung einer Ausschreibung gedacht
If Right(anhang.source, 3) = ("csv") Then 'Die letzten 3 Buchstaben deuten auf eine CSV Datei hin
'MsgBox("Anhang ist eine Ausschreibung")
temp = Environ("Temp") 'Temporären Ordner bestimmen
pfad = temp & "\" & anhang.source 'Dateipfad bestimmen
Call datei.ExtractFile ( pfad ) 'Datei lokal speichern
impfile = pfad 'Dateipfad angeben für den Import
intNum = FreeFile()
Open pfad For Input As intnum 'Datei öffnen
Do While Not EOF(intNum)
Set importdocument = db.CreateDocument
importdocument.form="Projekt"
Line Input #intNum, strZeile
If FullTrim (StrToken(strZeile, ";",1)) = "ObjNr" GoTo jump
importdocument.IBAUNUMMER = FullTrim (StrToken(strZeile, ";",1))
importdocument.OBJEKT= FullTrim(StrToken(strZeile, ";",2))
importdocument.SUBMISSIONSDATUM = FullTrim (StrToken(strZeile, ";",3))
importdocument.SPARTEN = FullTrim (StrToken(strZeile, ";",4))
importdocument.BAUPLZ = FullTrim (StrToken(strZeile, ";",6))
importdocument.BAUORT = FullTrim (StrToken(strZeile, ";",7))
importdocument.AUSSCHREIBER = FullTrim (StrToken(strZeile, ";",9))
importdocument.STRASSE = FullTrim (StrToken(strZeile, ";",10))
importdocument.PLZ= FullTrim (StrToken(strZeile, ";",11))
importdocument.ORT = FullTrim (StrToken(strZeile, ";",12))
importdocument.TEL = FullTrim (StrToken(strZeile, ";",14))
importdocument.FAX = FullTrim (StrToken(strZeile, ";",15))
importdocument.AUSSCHREIBUNGSTEXT = FullTrim (StrToken(strZeile, ";",16))
importdocument.LVANFORDERUNG = FullTrim (StrToken(strZeile, ";",20))
importdocument.BAUBEGINN = FullTrim (StrToken(strZeile, ";",23))
importdocument.BAUENDE = FullTrim (StrToken(strZeile, ";",24))
importdocument.STATUS = "Unberührt"
Call importdocument.save(True,True)
jump:
Loop
End if
elseIf Left(anhang.source, 10) = ("Infobau_Su") Then 'Die ersten 10 Buchstaben von Links sind zur Erkennung eines Submissionsergebnisses gedacht
If Right(anhang.source, 3) = ("csv") Then 'Die letzten 3 Buchstaben deuten auf eine CSV Datei hin
'MsgBox("Anhang ist ein Submissionsergebnis")
Set datei = document.Getattachment(anhang.name)
temp = Environ("Temp") 'Temporären Ordner bestimmen
pfad = temp & "\" & anhang.source 'Dateipfad bestimmen
Call datei.ExtractFile ( pfad ) 'Datei lokal speichern
impfile = pfad 'Dateipfad angeben für den Import
intNum = FreeFile()
Open pfad For Input As intnum 'Datei öffnen
Do While Not EOF(intNum)
Set importdocument = db.CreateDocument
importdocument.form="Submissionsergebnis"
Line Input #intNum, strZeile
If FullTrim (StrToken(strZeile, ";",1)) = "ObjNr" GoTo jump2
importdocument.IBAUNUMMER = FullTrim (StrToken(strZeile, ";",1))
importdocument.SDATUM= FullTrim(StrToken(strZeile, ";",2))
importdocument.SAUSSCHREIBER= FullTrim (StrToken(strZeile, ";",3))
importdocument.SOBJEKT = FullTrim (StrToken(strZeile, ";",4))
importdocument.SBAUPLZ = FullTrim (StrToken(strZeile, ";",5))
importdocument.SBAUORT = FullTrim (StrToken(strZeile, ";",6))
importdocument.SPLATZ = FullTrim (StrToken(strZeile, ";",10))
importdocument.SSUMME = FullTrim (StrToken(strZeile, ";",11))
importdocument.SPROZENT = FullTrim (StrToken(strZeile, ";",12))
importdocument.BIETER = FullTrim (StrToken(strZeile, ";",15))
importdocument.BSTRASSE = FullTrim (StrToken(strZeile, ";",16))
importdocument.BPLZ = FullTrim (StrToken(strZeile, ";",17))
importdocument.BORT = FullTrim (StrToken(strZeile, ";",18))
importdocument.BTEL = FullTrim (StrToken(strZeile, ";",19))
importdocument.BFAX = FullTrim (StrToken(strZeile, ";",20))
importdocument.BMAIL = FullTrim (StrToken(strZeile, ";",21))
importdocument.SBINDEFRIST = FullTrim (StrToken(strZeile, ";",25))
importdocument.SNACHLASS = FullTrim (StrToken(strZeile, ";",26))
importdocument.SBEMERKUNG = FullTrim (StrToken(strZeile, ";",27))
document.SBAUENDE = FullTrim (StrToken(strZeile, ";",30))
Call importdocument.save(True,True)
jump2:
Loop
End if
Else
'MsgBox(anhang.source & " ist nicht für den Import geeignet")'Ausführen, wenn Dateiname unbekannt
End If
End If 'Schleifenende
End ForAll 'Schleifenende
document.importiert = "1"
Call document.Save(True,true) 'Dokument speichern
Set viewentry = viewcollection.Getnextentry(viewentry) 'Nächsten Eintrag in der Ansicht auswählen
Set document = viewentry.Document 'Auswählen des nächsten Dokumentes
looop:
loop
' Schleifenende
' Fehlerbehandlung
Fehler: 'Ausführen, wenn Fehler
Resume Fehlerbehandlung 'Fortfahren bei Fehler
Fehlerbehandlung:
End Sub