Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Glombi am 15.10.14 - 18:14:13

Titel: Anzahl der zum Löschen markierten Dokumente ermitteln
Beitrag von: Glombi am 15.10.14 - 18:14:13
Ist es möglich herauszufinden, wie viele Dokumente in einer Datenbank aktuell zum Löschen markiert sind?

Hintergrund der Frage: Ich möchte, dass ein Anwender maximal 1 Dokument löschen kann, wenn er F9 drückt.
Im QueryDocumentDelete Event der Datenbank kann ich nur abfragen, wie viele Dokumente aktuell im Auswahlrand markiert sind, wenn man <Entf> klickt.
Dabei zählen aber nicht die bereits vorher zur Löschung markierten Dokumente. Auf diese Weise kann man also von Dokument zu Dokument hüpfen und bspw. alle Dokumente einzeln löschen.

In der Statusbar sagt Notes einem ja, wie viele Dokumente man zum Löschen markiert hat. Nur finde ich dazu keine Property in einer Scriptklasse. Da gilt sogar für Dokumente, die ein anderer gelöscht hat.

Danke für jeden Hinweis.
Andreas
Titel: Re: Anzahl der zum Löschen markierten Dokumente ermitteln
Beitrag von: Tode am 16.10.14 - 11:20:54
Also im "PostDocumentDelete"- Event der Datenbank hast Du den Count in Source.Documents.

Problem: Das Event hat kein "Continue = False". Wenn man irgendwie die "Source.Documents" Property manipulieren könnte, dann könnte es vielleicht gehen...
Titel: Re: Anzahl der zum Löschen markierten Dokumente ermitteln
Beitrag von: Peter Klett am 20.10.14 - 10:53:17
PostDocumentDelete ist sicherlich zu spät. Nach dem Tod das Sterben zu verhindern erscheint mir recht schwierig.

Du könntest aber im QueryDocumentDelete ein Continue = False eintragen, dann kann kein Dokument zum Löschen markiert werden.

Das Löschen selbst erledigst Du dann über einen Agenten, dort hast Du alles in der Hand, Anzahl der zu löschenden Dokumente, den Inhalt der Dokumente vor dem Löschen usw.
Titel: Re: Anzahl der zum Löschen markierten Dokumente ermitteln
Beitrag von: Tode am 20.10.14 - 11:02:09
@Peter: Laut DOKU ist PostdocumentDelete zu spät, aber die Doku ist hier falsch. Denn: PostDocumentDelete wird mitnichten erst ausgeführt, wenn die Dokumente schon gelöscht wurden, sondern in diesem Event besteht noch voller Zugriff auf die Dokumente. Man könnte diese z.B. in eine andere Datenbank kopieren, und hätte alle Items noch... Aber nichtsdestotrotz ist natürlich der Ansatz der falsche, da zu spät. Im Endeffekt würde ich es auch wie IBM in der resrcX.ntf machen: Löschen per QueryDocumentDelete verbieten und nur über einen Button zulassen... Also so wie Du es auch vorschlägst.
Titel: Re: Anzahl der zum Löschen markierten Dokumente ermitteln
Beitrag von: Glombi am 20.10.14 - 13:25:58
So werde ich es wohl machen müssen.

Ich hatte es auch mit einer $Trash Ansicht versucht, die nur gelöscht Dokumente anzeigt. Witzigerweise kann man aber nur dann auf Dokumente dort zugreifen, wenn der Debugger an ist....das war jedenfalls bei meinem Test so.

Mit dem QueryDocumentDelete lasse ich also nur das löschen/ausschneiden zu, falls nur ein Dokument markiert wurde. Andernfalls Continue = false.
Wenn dann also jemand nacheinander hunderttausend Dokument markiert und mit <Entf> löscht, soll er das halt mühsam machen.

Danke für Euren Input!
Andreas