In einer Ansicht Dokumente nach einem String im Subject-Feld durchsuchen

  • gepostet für avestruz


    avestruz: bitte schau dir in den FAQ an, wie man eine Frage postet. In die 'News' jedenfalls gehört das nicht...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    Du setzt das Item nur beim ersten Dokument (vor der While-Schleife)! D.h. es wird immer nur auf dieses Item geprüft.


    Warum machst Du nicht ein Search und dann verschiebst Du die Collection in den Folder?, ist viel performanter.


    Gruß
    Dirk


    Code
    While Not(doc Is Nothing)
    	Set item = doc.GetFirstItem("Subject")
    	If Instr(1, item.text, "??") > 1 Then
    		Call doc.PutInFolder("Ticket Knowledge verify")
    		Call doc.Removefromfolder("Ticket Knowledge")
    		Call doc.Save( True, True )                        'Save changes to document
    	End If
    	Set doc=view.GetNextDocument(doc)
    Wend

    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

  • Das Problem ist, dass du das nächste Dokument holst, nachdem du das aktuelle verschoben hast. Diese Referenz kann aber nicht aufgelöst werden, da es das Objekt ja gar nicht mehr gibt. Nehmen wir an, so sieht die View aus:
    * Dokument_A
    * Dokument_B
    * Dokument_C


    Dokument_A erfüllt das Kriterium und wird verschoben, damit wird Dokument_B das gerade aktuell Dokument und mit GetNextDocument triffst du dann Dokument_C.


    Stell das GetNextDocument vor das Verschieben des aktuellen Dokument, dann sollte das tun...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    stellt sich die Frage, ob "Ticket Knowledge" eine Ansicht oder ein Ordner ist?


    Gruß
    Dirk

    • Offizieller Beitrag

    stimmt :wuet: ... wie war dass mit den Bäumen und dem Wald?


    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

  • So komme ich aber in eine endlosschleife rein wenn das Kriterium nicht erfüllt ist.


    While Not(doc Is Nothing)

    If Instr(1, item.text, "??") > 1 Then
    Call doc.PutInFolder("Ticket Knowledge verify")
    Set doc=view.GetNextDocument(doc)
    Call doc.Removefromfolder("Ticket Knowledge")
    Call doc.Save( True, True ) 'Save changes to document
    End If

    Wend


    Dann geht er auf WEND und bleibt bei dem Dokument anstatt zum nächsten zu wechseln. :-? Hast du noch eine Idee...Habt ihr noch eine Idee? habe gerade erst mit Entwicklung angefangen

  • Versuch das mal:

  • Das müsste aber so lauten, denn mit deiner version verhinderst du die Endlosschleife nicht.


    Dim remove_doc As NotesDocument
    While Not(doc Is Nothing)

    Set remove_doc = doc
    Set doc=view.GetNextDocument(doc)
    If Instr(1, item.text, "??") > 1 Then
    Call remove_doc.PutInFolder("Ticket Knowledge verify")
    Call remove_doc.Removefromfolder("Ticket Knowledge")
    Call remove_doc.Save( True, True ) 'Save changes to document
    End If

    Wend