Profildokument gezielt löschen

  • Hallo,


    wir haben eine Datenbank welche mit Profildokumenten arbeitet. Wenn dann zum Beispiel ein Mitarbeiter ausscheidet oder die DB nicht mehr nutzt, lösche ich das Profildokument wie folgt:


    Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    Set db = session.CurrentDatabase
    Set doc = db.GetProfileDocument("Mitarbeiter_Profil", "cn=vorname nachname/ou=x1/o=xy/c=de")
    Call doc.Remove( True )


    End Sub


    Bei "Vorname Nachname" trage ich dann den Mitarbeiternamen ein und führe den Agenten aus. Klappt soweit, aber umständlich.


    Ich würde das gerne über einen Button lösen (aus einer Ansicht heraus). Und zwar gibt es noch ein weiteres Mitarbeiterdokument (welches kein Profildokument ist) und in diesem Dokument ist ein Feld welchen den vollständigen Namen enthält.
    Feld "user_v" --> cn=max mustermann/ou=x1/o=xy/c=de


    Jetzt hätte ich gerne einen Button, den ich anklicke... welcher mir dann das Feld mit dem vollständigen Namen ausliest und das entsprechende Profildokument löscht.
    Leider sind meine Script-Kenntnisse nicht sehr gut.


    So habe ich es versucht, klappt aber nicht: (Debugger zeigt auch nichts an)



    Sub Click(Source As Button)
    Dim ws As New NotesUIWorkspace
    Dim session As New NotesSession
    Dim uidoc As NotesUIDocument
    Dim doc As NotesDocument
    Dim pdoc As NotesDocument
    Set uidoc = ws.CurrentDocument
    Set doc = uidoc.Document
    user = doc.GetItemValue("user_v")(0)
    Set db = session.CurrentDatabase
    Set pdoc = db.GetProfileDocument("Mitarbeiter_Profil", user)
    Call pdoc.Remove( True )


    End Sub



    Kann mir jemand sagen, wo der Fehler liegt?
    Vielen Dank.

  • Zunächst einmal: spezifiziere bitte, was der Debugger nicht anzeigt.
    Weiters: wo ist der Button? In der Maske des Mitarbeiterdokumentes oder in der View?

    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

  • Zum Debugger: er öffnet sich überhaupt nicht, so als würde der Agent (Script) überhaupt nicht ausgeführt werden... Bei anderen Agenten funktioniert der Debugger problemlos.
    Wenn ich den Button aber drücke, zuckt kurz die Ansicht... also irgendwas macht er schon.


    Der Button befindet sich in der Ansicht. Hatte ihn testweise auch mal im Mitarbeiterdokument selbst eingebaut, funktionierte aber auch nicht.

  • Wenn der Button in der Ansicht ist kann ws.CurrentDocument nicht funktionieren, weil dafür das Dokument geöffnet sein muss.


    Also so muss der Button auf jeden Fall ins Dokument.
    Und dort kannst du dann auch den Debugger verwenden und dir anschauen was er tut

  • Wann hast du den Debugger eingeschalten ? Bevor du das Dokument geöffnet hast oder erst als du im Dokument warst ?
    Richtig wäre ersteres. bei Ansichten solltest du übrigens die Datenbank nach aktivieren schliessen

  • ja, bevor ich das Dokument geöffnet habe.
    Bei anderen Buttons die ebenfalls Scripte ausführen funktioniert der Debugger ja problemlos. (in der selben Datenbank / Ansicht)


    Schade, dass mir niemand sagen kann, ob das Script überhaupt von der Syntax her richtig ist und der Fehler vielleicht woanders liegt.

  • Wenn du den Debugger startest, das Dokument öffnest und der Debugger nicht einmal die Query- und PostOpen-Events abfährt, dann liegen die Probleme eh auf ganz anderer Seite, als im Script.
    Sobald du diese Probleme eruiert und gelöst hast, wirst du auch mit deinem Button weiterkommen.


    Das Script an sich sieht auf dem ersten Blick syntaktisch richtig aus. Das Inhaltliche kannst du eben nur mit dem Debugger verifizieren.


    Hast du sicherheitshalber mal den gesamten Code der DB durchkompilieren lassen?
    Hast du sicherheitshalber mal ein Dokument mit der angepassten Maske zum Bearbeiten geöffnet und neu abgespeichert? Wenn ja: wie? Einfach nur Strg+O, Strg+S reicht manchmal nicht aus. Lieber einen Feldinhalt ändern, speichern, Änderung rückgängig machen, erneut abspeichern, schließen. Danach das Dokument mit eingeschaltetem Debugger öffnen.

    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