Agent für Export

  • Hallo Leute,


    ich habe einen Agent laufen, der eine View in eine txt-File exportiert.
    Im Moment läuft er ohne Probleme nur wollte ich jetzt erreichen, dass nicht mehr alle Dokumente in der View exportiert werden sondern nur noch die Dokumente, die geändert wurden oder neu sind.
    Ich hab das mit der Laufzieleinstellung im Agentmenü versucht, hat aber leider nicht funktioniert.


    Habt ihr ne Idee wie es klappen könnte?


    Dank euch


    Der Agentscript sieht im Moment so aus:

    • Offizieller Beitrag

    wenn Du einstellst, dass der Agent alle geänderten Dokumente verarbeiten soll, dann musst Du Dir mit NotesDatabase.UnprocessedDocuments eine NotesDocumentCollection holen.


    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

    • Offizieller Beitrag

    naja Du müsstest 2 Dinge ändern.


    1. in den Eigenschaften des Agenten alle Dokumente, die seit dem letzten Lauf geändert wurden


    2. im Script die besorgung der Dokumente (siehe oben)



    als Alternative könntest Du auch nur das Script ändern und abfragen, wann der Agent zu letzt lief und dann nur die Dokumente bearbeiten, bei denen das Änderungsdatum neuer ist.


    Gruß
    Dirk

  • Hey Leute,


    sorry das ich bis jetzt noch nicht geantwortet hab. Hab mich jetzt nochmal an die Funktion gesetzt und hab den Script angepasst.
    Mit der Notes Collection habe ich bisher noch nicht gearbeitet. Könnte der folgende Script funktionieren oder seht ihr direkt einen Fehler? Hab das Agent Laufziel auf "alle neuen und geänderten Dokumente" gesetzt.


    Vielen Dank


    Chris


    • Offizieller Beitrag

    warum Call session.UpdateProcessedDoc( doc )? mach doch ein Call collection.UpdateAll nach der While-Schleife ... ist performanter.


    Fehler? Teste das Script, bau eine Fehlerbehandlung ein und nutze ggf. den Debugger.


    Gruß
    Dirk

  • Hey bekomme an der makierten Stelle die Meldung "Variant enthält keinen Container"


    Habt ihr ne Idee wo das hängen könnte?


    Dank euch



    • Offizieller Beitrag

    das Objekt doc ist nicht Nothing?
    Das doc ist auch in der Ansicht?


    Gruß
    Dirk

  • Wenn er an die Stelle kommt, kann doc nicht Nothing sein (hab den Code mal in entsprechende Tags verpackt).
    Das Problem ist eher, dass txt vom Typ String ist. Mit einem Variant sollte es 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

    oder mit einem &
    txt = txt & doc.ColumnValues(colCnt)


    Gruß
    Dirk

  • Vllt. tut ein "doc.ColumnValues(colCnt)(0)" und sollte das immer noch nicht tun, dann ein Cstr() drum. Dann muss txt aber wieder ein String sein.

    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

  • Natürlich ist an deiner grundstruktur etwas falsch:


    Ein NotesDocument hat niemals eine Eigenschaft ColumnValues, außer dein Dokument enthält ein Feld namens ColumnValues.


    ColumnValues ist eine Eigenschaft eines NotesViewEntry.


    Also entweder gehst du die NotesViewEntries durch oder aber du greifst über die Feldnamen auf die Inhalte zu

  • Ist das so? Sagt IBM aber anders.

    Zitat


    An array of values, each element of which corresponds to a column value in the document's parent view.


    Code
    Dim db As New NotesDatabase( server$, dbfile$ )
    Set view = db.GetView( "Products" )
    Set doc = view.GetFirstDocument   
    While Not ( doc Is Nothing )         
     currentProduct = doc.ColumnValues( 0 )
    Wend


    (gekürzt aus dem Beispiel übernommen)

    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

  • Hallo also mein Dokument enthält kein Feld mit dem Namen ColumnValues.


    Mein Grundproblem ist, dass ich mit dem Export nur Dokumente in eine txt-file exportieren möchte, die seit dem letzten Lauf des Agent erstellt oder geändert wurden. Der Agent läuft einmal am Tag.
    Bist jetzt ist der agent ohne Probleme gelaufen, nur er hat halt alle Dokumente exportiert.


    Und mir fehlt jetzt der ansatz, wie ich ihn ändern kann.
    Die lösung mit UnprocessedDocuments sollte ja gehen oder gibt es noch eine bessere lösung?


    dank euch schon mal