Domino 9 und frühere Versionen > Entwicklung
Löschen einer Dokumentenstruktur
tuxie:
Hallo,
ich habe eine Frage, ich habe eíne Datenbank mit einer Dokomentenstruktur
Hauptdokument
Antwortdokument
Rückantwortdokument
Wie kann ich am besten, diese Struktur löschen gibt es da eine Funktion, kann man das mit Formeln machen oder nur mit LN Script.
Und gibt es eine möglichkeit das hertkömmliche Löschen zu Sperren.
TSchau Ingo
koehlerbv:
Zu Frage 1: Das müsstest Du etwas genauer erklären. Willst Du ausgehend von einem Haupt-Dokumente alle Responses löschen ? Oder von einem bestimmten Dokument aus alle Responses ? Oder wie ?
Zu Frage 2: Entweder, Du entziehst Deinen Usern das Löschrecht, oder Du klinkst Dich in das DatabaseScript/QueryDocumentDelete ein.
Bernhard
tuxie:
Hallo,
also ich möchte das Hauptdokument mit allen Antwortdokumenten löschen.
Das löschen soll quasie nur über die Löschfunktion die ich versuche zu implementieren machbar sein. So das nicht das Hauptdokument ohne die Antwortdokumente gelöscht werden.
Tschau Ingo
koehlerbv:
Dann ist QueryDocumentDelete die richtige Stelle. Das ganze ist selbstverständlich nur mit LS zu realisieren und muss rekursiv verlaufen:
- Ist es ein Dokument mit Responses (das braucht ja kein Hautpdokument sein - Responses können wiederum Responses haben)
- Wenn nein - keine Aktion erforderlich
- Wenn ja, bilde Collection aller Responses
- Doc für Doc in der Collection untersuchen: Hat dieses wiederum Responses ?
- Wenn ja: Wiederum Collection aller Responses bilden und weiter wie oben beschrieben
- Wenn nein: Dokument löschen.
HTH,
Bernhard
Axel:
Hi,
ich hab mal so was gebaut.
Im PostDocumentDelete - Event des Datenbank-Scriptes steht folgender Code:
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim i As Integer
Set collection = Source.Documents
If collection.Count = 0 Then
Exit Sub
Else
For i = 1 To collection.Count
Set doc = collection.GetNthDocument(i)
Call DeleteResponseDocs(doc)
Call doc.Remove(True)
Next 'For i = 1 To collection.Count
End If 'If collection.Count = 0 Then
Unter dem (Options) -Abschnitt ist eingetragen (da die Routine DeleteResponseDocs in der Bibliothek Tools enthalten ist):
Use "Tools"
Die Routine selbst sieht so aus:
Sub DeleteResponseDocs (doc As NotesDocument)
Dim responses As NotesDocumentCollection
Dim tmpdoc As NotesDocument
Dim dummy As NotesDocument
Set responses = doc.Responses
Set dummy = responses.GetFirstDocument
While Not (dummy Is Nothing)
Set tmpdoc = responses.GetNextDocument(dummy)
Call DeleteResponseDocs(dummy)
Call dummy.Remove(True)
Set dummy = tmpDoc
Wend 'While Not (dummy Is Nothing)
End Sub
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln