Automatisches Speichern einer Datei

  • Hallo Forum Gemeinde,


    ich verwende ein Script für einen Agenten der eine Datei automatisch im Dateisystem unserer i5 ablegt.
    Jetzt habe ich das Problem, dass das Script es nicht kapiert dass es eine Email die es schon ins Archiv verschoben hat nicht mehr benutzen soll sióndern nur Mails die direkt in der Inbox sind.
    Falls jemand eine Idee aht daas das Script nur auf die Inbox läuft wäre ich sehr dankbar!!!


    Hier das Script:


    Sub Initialize
    Dim ses As New notessession
    Dim db As notesdatabase
    Dim doc As notesdocument
    Dim dc As notesdocumentcollection
    Dim subj,itm As Variant
    Dim eo As notesembeddedobject
    Dim Betreff, GesAnhang,AblageIn,ExtrPfad As String

    Betreff="ks" 'Textteil der Im Betreff vorkommen muss
    AblageIn="Archiv" 'Ordner in dem die Mail abgelegt werden soll
    GesAnhang="" 'Textteil der im Dateinamen des Anhangs enthalten sein muss
    ExtrPfad="/Domino/xxx/Data/xxx/xxx/xxx/" 'Pfad in dem der Anhang gelöst werden soll

    Set db = ses.currentdatabase
    Set dc = db.unprocesseddocuments
    Set doc = dc.getfirstdocument

    Do While Not(doc Is Nothing)
    subj=doc.getitemvalue("Subject")
    If Instr(subj(0), Betreff) Then
    If doc.hasembedded Then
    Set itm=doc.getfirstitem("Body")
    If itm.type=RICHTEXT Then
    Forall Anhang In itm.embeddedobjects
    If Anhang.type = EMBED_ATTACHMENT Then
    If Not Instr(1,Anhang.name,GesAnhang,1)=0 Then
    Set eo = doc.getattachment(Anhang.name)
    If eo Is Nothing Then Exit Do
    Call eo.extractfile(ExtrPfad & Anhang.name)
    Call doc.removefromfolder("($Inbox)")
    Call doc.removefromfolder("($Trash)")
    Call doc.removefromfolder("($All)")
    End If
    End If
    End Forall
    End If
    End If
    End If
    Set doc = dc.getnextdocument(doc)
    Loop
    End Sub

    • Offizieller Beitrag

    bitte Code in [ code][/code]-Tags packen, lässt sich viel besser lesen und Einrückungen bleiben erhalten.


    Anstelle von Set dc = db.unprocesseddocuments würde ich über den view gehen.

    Code
    dim view as NotesViewset view = db.GetView("($Inbox)")set doc = view.GetFirstDocumentWhile Not doc is Nothing   ...   Set doc = view.GetNextDocument(doc)Wend


    Solltest Du das Dokument dabei aus dem Ordner Eingang entfernen oder löschen, dann musst Du noch miot einem Temp-Dok arbeiten.

    Code
    dim view as NotesView
    dim doc_temp as NotesDocument
    set view = db.GetView("($Inbox)")
    set doc = view.GetFirstDocument
    While Not doc is Nothing
       set doc_temp = view.GetNextDocument(doc)
       ...
       Set doc = doc_temp
    Wend


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo,


    hab grad versucht das ganze mit zu integrieren. Jetzt scheint aber ein fehler drin zu sein. Könnt nochmal jemand HELFEN!!!?



    Ich kann das Script leider nicht speichern irgendwo ist der Wurm drin!?

    • Offizieller Beitrag

    was steht den unten in der Error-Leiste im Designer?
    Mach mal die Zeile auf und schau ob noch andere Fehler drin stehen.


    Gruß
    Dirk

    • Offizieller Beitrag

    na ja Du machst ein Exit Do und hast keine Do Schleife.
    Der Ausschnitt müsste in etwa so aussehen:

    Code
    Set eo = doc.getattachment(Anhang.name)
    If eo Is Nothing Then
       Call eo.extractfile(ExtrPfad & Anhang.name)
       Call doc.putinfolder(AblageIn)
       Call doc.removefromfolder("($Inbox)")
    End if


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein