Domino 9 und frühere Versionen > Entwicklung
Anhang auf Sun Manschine lösen und auf einen Windows Server speichern
Glombi:
Aus der Hilfe
--- Zitat ---ForAll refVar In container
[ statements ]
End ForAll
Elements
refVar
A reference variable for the array, list, or collection element. In the body of the ForAll loop, you use refVar to refer to each element of the array, list, or collection named by container. refVar can't have a data type suffix character appended.
container
The array, list, or collection whose elements you wish to process.
--- Ende Zitat ---
D.h. in Deinem Fall ist o eine Obejektreferenz für ein NotesEmbeddedObject
Du hast aber noch viele Fehler in Deinem Code. Korrekt wäre
Forall o In rtitem.EmbeddedObjects
Set object = doc.GetAttachment(o.Name)
Call object.ExtractFile("D:\Data\FGCenter3" & Cstr(int_count) )
End Forall
Andreas
Tubeman:
Zu den Folgefehlern wäre ich erst noch gekommen *g*
Wenn die For All laufen würde!
Abgesehen der schon geschehenen Deklarationen.
Muss ich die Obejektreferenz für ein NotesEmbeddedObject irgendwie oder irgend wo deklarieren???
Entweder ich bekomme den Fehler "Type Mismatch" oder "Variant does not contains Object"
Hier mal der ganze unvollendete und Fehlergespickte Code:
--- Code: ---Sub initialize
Dim session As New NotesSession
Dim collection As NotesDocumentcollection
'################################
Dim doc As Notesdocument
Dim db As NotesDatabase
Dim view As NotesView
Dim object As NotesEmbeddedObject
Dim item As Variant
Dim match As String
'################################
Dim flg_gelesen As Integer
Dim rtitem As Variant
Dim objName As String
'################################
Set db = session.currentdatabase()
Set view = db.getview("(Default)")
Set collection = db.UnprocessedDocuments
Set doc = view.getfirstdocument()
Dim i As Integer
'##nur Ungelesene Email werden bearbeitet! ABFRAGE
While Not (doc Is Nothing)
'---Inhalt der Variablen ist der Betreff, welcher ausschlaggebend für die Abprüfung ist.
match = doc.subject(0)
'---Zielname der Adresse ist: "40150003 Leistungsanforderung"
If match Like "*40150003 Leistungsanforderung*" Then
' Prüfe die Mail auf einen Anhang. Wenn Anhang verfügbar dann lösen und Speichern
' Speichern muss auf einer anderen Maschine erfolgen!!!
Set item = doc.GetFirstItem( "Body" )
int_count = int_count + 1
If ( item.Type = RICHTEXT ) Then
Forall o In item.EmbeddedObjects 'prüft das Dokument ob es ein Eigebundenes Objekt beinhaltet!
'checkt das Feld Body nach einer Anhangsdatei
Set object = item.GetEmbeddedObject(object.Name )
' objName = object.Name
If ( object Is Nothing ) Then
'check das restliche Dokument nach einem Anhang
Set object = doc.GetAttachment(objName)
Call object.ExtractFile("D:\\Data\\FGCenter" & Cstr(int_count) )
End If
End Forall
End If
Else
Goto notTarget
End If
notTarget: 'Sprungstelle für beendigung der If Schleife wenn
'keine Email mit diesem Namen vorhanden
Set doc = view.getnextdocument(doc) 'das Nächste Dokument welches in der
' Ansicht vorhanden ist.
Wend
End Sub
--- Ende Code ---
Driri:
Glombi hat ja schon geschrieben, wie Du die Forall-Schleife aufbauen mußt.
--- Zitat ---Abgesehen der schon geschehenen Deklarationen.
Muss ich die Obejektreferenz für ein NotesEmbeddedObject irgendwie oder irgend wo deklarieren???
--- Ende Zitat ---
Was meinst Du damit ? Meinst Du die Variable in der Forall-Schleife ?
Die darf nicht deklariert werden, steht ebenfalls in der Designer-Hilfe beschrieben.
Tubeman:
??? ??? ??? ??? ???
Ich habe Notes neugestartet und siehe da!!! Meine Forall hat funktioniert!
KA. warum :o
Naja die Dateien hat er auch alle gespeichert und ich bin grade ganz arg glücklich!
Wunderbar brauche noch paar kleinigkeiten dann bin ich fertig! ;D *freu*
Danke für die zahlreichen Tipps
;) Den rest werde ich selber machen... Sonst lernt ichs ja nicht ;)
MFG Tubeman
Tubeman:
Hallo Hallo
Ich bin jetzt fertig mit dem Agenten.
Das Problem Von einem Sun Server etaws auf nen Windows Server zu speichern hat sich erledigt->
Mailin DB wurde auf einen Windows Server verschoben ::)
Den Code will ich aber keinem vorenthalten ;)
Nochmal Danke für die Tipps ;D
--- Code: ---Dim session As New NotesSession
'############################################
Dim doc As Notesdocument
Dim db As NotesDatabase
Dim view As NotesView
Dim object As NotesEmbeddedObject
Dim collection As NotesDocumentcollection
'############################################
Dim item As Variant
Dim match As String
Dim collcounter As Integer
Dim objName As String
Dim Dateiname As String
'############################################
Set db = session.currentdatabase()
Set view = db.getview("(Default)")
Set collection = db.UnprocessedDocuments
Set doc = view.getfirstdocument()
'############################################
While Not (doc Is Nothing)
match = doc.subject(0)
If match Like "*40150003 Leistungsanforderung*" Then
Set item = doc.GetFirstItem("Body")
If ( item.Type = RICHTEXT ) Then
Forall embobj In item.EmbeddedObjects
objName = embobj.Name
Set object = item.GetEmbeddedObject(objName)
If Not ( object.Name = "" Or object.Source = "" ) Then
Set object = doc.GetAttachment(objName)
int_count = int_count + 1
Dateiname = embobj.Source
Call object.ExtractFile( "D:\Data\FGCenter\" & Cstr(int_count)&" " & Cstr(Dateiname))
End If
End Forall
End If
Else
Goto notTarget
End If
'############################################
notTarget: '---------->Sprungstelle für beendigung der If Schleife wenn keine Email mit diesem Namen vorhanden
'############################################
Set doc = view.getnextdocument(doc) '---------->das Nächste Dokument welches in der Ansicht vorhanden ist.
Wend
End Sub
--- Ende Code ---
MFG Tubeman
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln