Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: alexB am 14.11.05 - 10:16:51

Titel: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: alexB am 14.11.05 - 10:16:51
Ich habe hier eine Datenbank die schon etwas älter ist.
Einer meiner Vorgänger hat anscheinend irgendwann mal Profildokumente angelegt.
Jetzt möchte ich sämtliche Profildokumente in dieser Datenbank löschen, ohne deren Maskennamen zu kennen.
Geht das bzw. kann man das in das untere Script einbauen?


Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Dim NDC As notesDocumentCollection
Set NDC = db.GetProfileDocCollection( "WeißIchNicht" )
Call NDC.RemoveAll (true)

Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: Lossa am 14.11.05 - 10:19:06
Hallo,

ABÄR!!!!!

Bist du sicher das die Datenbank danach noch so funktioniert wie sie es bisher läuft?

Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: Glombi am 14.11.05 - 10:25:45
Wenn Du den Namen des Profil nicht kennst, geht es so nicht. "WeißIchNicht" wird ja kaum der Name sein.

D.h. Du musst es anders machen,. Unbd zwar eine Collection über alle Dokumente der Datenbank erstellen und dann über alle Dokumente der Collection iterieren. Mit

notesDocument.IsProfile

abfragen, ob es ein Profil ist. Falls true, löschen.

Vorher aber das Nachfolgedokument setzen.

Andreas
Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: alexB am 14.11.05 - 10:31:06
@Glombi
Danke für die schnelle Antwort.
Das mit der DocCollection über alle Docs einer Datenbank hört sich interessant an, das werde ich mal testen.

Ein fertiges Tool/Script gibt es da nicht zufällig?
Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: Johnson am 14.11.05 - 10:38:40
Hallo zusammen,

Nimm dein Script und ändere die Zeile ...

Set NDC = db.GetProfileDocCollection( "WeißIchNicht" )

... in ...

Set NDC = db.GetProfileDocCollection( )

Dann bekommst du alle Profildokumente der Datenbank.

Und jetzt hab ich da noch ´ne Frage:
Ich versuche seit geraumer Zeit die Brackpointprofile aus der Datenbank zu löschen.
Hat das jemand mal geschafft?
Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: mrtachles am 14.11.05 - 10:50:34
jo, allerdings nur mit nem 5er client.
Ein IBM  call ergab, dass die profile ansonsten unter R6 nicht per Programmierung sondern im Debugger via "Clear all Breakpoints" ; ( gelöscht werden müssten...
Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: Johnson am 14.11.05 - 10:57:55
UFFF!

Das sind doch personliche Profile, oder? Das Problem ist dabei, die sind z.T. von Usern, die nicht mehr hier sind. Das ist ja ein ziehmlich ... ungünstiger Workaround von IBM.
Titel: Re: Profildokumente löschen ohne den Maskennamen zu kennen
Beitrag von: alexB am 14.11.05 - 11:25:15
Vielen Dank!
Das funktioniert einwandfrei. Nochmal komplett:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = session.CurrentDatabase
Dim NDC As notesDocumentCollection
Set NDC = db.GetProfileDocCollection( )
Print "Anzahl gelöschter Dokumente: ", NDC.count
Call NDC.RemoveAll (True)