Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Lysienne am 26.04.18 - 21:20:53

Titel: verhindern das Hauptdokumente mit Antwortdokumenten gelöscht werden
Beitrag von: Lysienne am 26.04.18 - 21:20:53
Hallo
ich habe eine einfache Inventardatenbank
der PC ist als Hauptdokument angelegt
die Peripherie (Monitor, Drucker usw.) als Antwortdokument

Wie kann ich verhindern, dass ich das Hauptdokument löschen kann obwohl dieses noch ein Antwortdokument hat.
Am besten mit einer Meldung wie zB: Der PC hat noch Peripherie zugeordnet und kann nicht gelöscht werden.
Titel: Re: verhindern das Hauptdokumente mit Antwortdokumenten gelöscht werden
Beitrag von: WildVirus am 26.04.18 - 22:05:36
Ist doch einfach - vergib eine Inventarnummer und vererb die an die Antwortdokumente

Vor dem Löschen -Stichwort QueryDocumentDelete- Abfrage, wieviele Dokumente es mit der Referenz gibt.
Titel: Re: verhindern das Hauptdokumente mit Antwortdokumenten gelöscht werden
Beitrag von: Tode am 27.04.18 - 06:38:21
Noch einfacher: wenn es sich wirklich um Antwortdokumente handelt, kannst Du prüfen, ob NotesDocument.Responses.Count = 0 ist, und wenn nicht, dann Continue = False. Achtung: in seltenen Fällen ist NotesDocument.Responses = Nothing, das solltest Du vor dem Count checken.
Titel: Re: verhindern das Hauptdokumente mit Antwortdokumenten gelöscht werden
Beitrag von: Lysienne am 28.04.18 - 12:47:19
Herzlichen Dank

für eure Vorschläge. Bin zwar nicht der Script Guru. Aber ich denk das krieg ich hin.
Titel: Re: verhindern das Hauptdokumente mit Antwortdokumenten gelöscht werden
Beitrag von: Lysienne am 30.04.18 - 14:52:53
Danke Tode für den Hinweis auf NotesDocument.Responses.
Hier der Code im Querydocumentdelete.
Falls mal jemand das selbe Problem hat.


Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
   
   
   'Get a handle on the current document
   Dim ns As New NotesSession
   Dim nDocCurrent As NotesDocument
   Dim ndcCollection As NotesDocumentCollection
   Set ndcCollection = Source.Documents
   Set nDocCurrent = ndcCollection.GetFirstDocument
   
   'See if the current document has Any responses associated With it
   'if so do not allow the deletion
   
   Dim ResponseCollection As NotesDocumentCollection
   Set ResponseCollection = nDocCurrent .Responses
   numDocs& = ResponseCollection.Count '# of response documents
   If numDocs& > 0 Then
      MessageBox "Kann nicht gelöscht werden da Peripherie zugeordnet ist!",64,"Löschen abgebrochen"
      Continue = False
   End If
End Sub