Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Jürgen Schomann am 25.10.14 - 16:22:07
-
Wenn das Thema hier auch schon behandelt wurde, habe ich trotzdem noch eine Frage.
In unseren Datenbanken existieren Breakpoint-Profildokumente von anderen Nutzern.
Über einen Agenten mit NotesDatabase.GetProfileDocCollection() lassen sich diese zwar lesen aber nicht über
NotesDocument.RemovePermanently(True) löschen. Auch nicht die eigenen Breakpoint-Profildokumente.
Nur wenn man den Script-Debugger aktiviert, den Script startet bei dem man Breakpoints gesetzt hat und dann die Aktion 'Alle Breakpoints löschen' aufruft.
Was kann man aber tun wenn man nicht mehr weiß über welchen Script dies Breakpoints gesetzt wurden und wenn sie außerem von fremden Nutzern gesetzt wurden.
Eigenartig ist auch, dass die Breakpoint-Profildokumente anderer Nutzer nur 2 Felder, $Name und $UpdatedBy, enthalten oder werden die anderen Felder nicht angezeigt?
Gibt es irgendeine Möglichkeit solche Dokumente zu löschen?
-
Hallo,
also bei mir funktioniert das löschen der Profile einwandfrei.
Dim sess As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
' On Error Goto errorhandler
Set session = New NotesSession
Set db = session.currentdatabase()
Set notesColl = db.GetProfileDocCollection( )
Set doc = notescoll.GetFirstDocument ()
While Not doc Is Nothing
Print doc.NameOfProfile & " " & doc.Key
s = doc.UniversalID
Set doc = notesColl.GetNextDocument ( doc )
Set docA = db.GetDocumentByUNID(s)
Call docA.Remove(True)
Wend
-
Vielen Dank für deine Antwort.
Ich verwende die gleiche Schleife wie bei dir nur mit dem Unterschied, dass ich das zu löschende Dokument nicht mit NotesDatabase.GetDocumentByUNID, sondern die Angaben NotesDocument.NameOfProfile und NotesDocument.Key vorher hole und danach mit NotesDatabase.GetProfileDocument und diesen Angaben dann das Dokument hole und lösche. Dies klappt auch bei allen Profildokumenten nur bei Breakpoint-Profilen nicht.
Die Ursache liegt darin, dass beim Holen des Profildokuments nicht das Breakpoint-Profil geholt wird sondern ein neues Profildokument angelegt wird mit exakt den gleichen Eigenschaften NotesDocument.NameOfProfile und NotesDocument.Key
Das Feld $Name ist aber unterschiedlich z. B. für Nutzer Max Mustermann/Test
Original-Breakpoint-Profil $profile_012breakpoints_cn=max mustermann/o=test
und in dem anderen Dokument $profile_012breakpoints__n=max mustermann/o=test
Dadurch lösche ich immer das gerade neue Dokument statt das Breakpoint-Profil.
Ich habe es jetzt analog wie du geändert, dann geht es auch richtig.