Agent in LS soll nur ein bestimmtes Doc in einer View bearbeiten

  • Hallo ich habe da ein kleines Problem.


    Ich habe eine View mit einer Schaltfläche -Schicht wieder öffnen


    Wenn die Schaltfläche angeklickt wird läuft folgender Agent:
    +++++++++++++++++++++++++++++++++++++++
    Dim x As Variant
    Dim y As String
    Dim z As String
    Dim session As New notessession

    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument

    Set db = session.CurrentDatabase
    Set view = db.GetView("Schi1")
    Set doc = view.GetFirstDocument


    x = doc.GetItemValue("cAutor") 'hier brauche ich den namen aus der ansicht
    y=session.CommonUsername ' ist der Kurzname
    z= x(0)
    If z<> y Then
    Messagebox ( "Sie sind nicht der Schichtersteller und haben somit keine Rechte diese Schicht zu editieren! ")
    continue = False

    Else
    doc.ReplaceItemValue "Eintrag_schliessen",0
    Exit Sub
    End If
    +++++++++++++++++++++++++++++++++++++++++


    Der macht im Prinzip nur einen Vergleich mit dem in Notes angemeldeten User und dem Ersteller des Schichtdokuments.


    Da aber in der View drei Hauptdoks und ein paar Antwortdoks liegen funktioniert der Agent nich wie gewünscht.


    Ich möchte das der Agent nur das ausgewählte Doc bearbeitet,
    leider weis ich jetzt nicht weiter.


    Der Fehler liegt hier: Set doc = view.GetFirstDocument


    Ich stehe aber zur Zeit auf der Leitung und weis nicht was ich machen soll.


    Hoffentlich weiß jemand von euch Rat.


    Gruss Bernd

    • Offizieller Beitrag

    [size=x-small][color=CC0000]bitte Themenpräfix beachten[/color][/size]


    soll den das erste Dokument in der Ansicht bearbeitet werden?


    Ansonsten kannst Du das Dokument auch mit view.Getdocumentbykey, view.GetAllDocumentsByKey holen.


    Beschreibe mal noch, nach welchen Gesichtspunkten das Dokument in der Ansicht gewählt werden soll.


    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 Taurec,


    danke für die Antwort - es funktioniert einwandfrei.


    Hier meine Lösung:



    Dim session As New notessession

    Dim db As NotesDatabase
    Dim view As NotesView
    Dim collection As NotesDocumentCollection
    Dim doc As NotesDocument

    Set db = session.CurrentDatabase
    Set collection = db.UnprocessedDocuments
    Set doc = collection.GetFirstDocument()

    While Not(doc Is Nothing)
    Set item = doc.GetFirstItem( "cAutor" )
    If item.Contains( session.CommonUsername ) Then
    doc.Eintrag_schliessen = "0"
    Call doc.Save( False, True )
    Else
    Messagebox ( "Sie sind nicht der Schichtersteller und haben somit keine Rechte diese Schicht zu editieren! ")
    End If
    Set doc = collection.GetNextDocument(doc)
    Wend



    Gruss Bernd