Autor Thema: Soft deletions - Vorgehensweise (längeres Posting)  (Gelesen 3239 mal)

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Hi,

Ich poste mal hier weil es Entwicklung betrifft, auch wenn es u.U. Tipps enthält.

ich habe in meiner Passwort-Datenbank(Link) Soft Deletions eingebaut (jetzt im nachhinein stelle ich fest: evtl. wäre ein simples Löschflag besser gewesen).

Ein User hat mich darauf aufmerksam gemacht, dass er in R5 Dokumente nicht dauerhaft löschen kann, in ND6 schon.

Ich habe auch die "Lösung" gefunden.

Im DB-Script "Querydocumentdelete" ist ein Script, welches das Löschen aus Views abfängt mit einer speziellen Meldung. Dabei wird geprüft, ob der User das Dok anhand Feldinhalte löschen darf oder nicht. Wenn ja, wird das Dok gelöscht (via Call doc.Remove( True )).

Was ich festgestellt habe: In ND6 wird in Views mit der Eigenschaft "Shared, contains deleted documents" das Querydocumentdelete-Event nicht ausgeführt bei <Entf>, in R5 schon.  Genau das schlug bei mir in R5 auf einen Fehler, weil ich Felder abfrage im Querydocdelete, aber die NotesDocument-Klasse keinen Handle zu einem Dok bekommt (logisch!).
Weiter muss man in R5, um ein Dok permanent zu löschen, @HardDelete einsetzen (was nur in einem Agent läuft), in ND6 reicht eben ein @Command([EditClear]).

Den Agenten, der @HardDelete enthält, darf man aber nicht per Script aufrufen (bla bla... falscher Trigger... [ist mir auch klar warum das so ist]).
Somit muss man einiges an Workarounds einbauen:

1.) Eben einen Agenten der @HardDelete enthält (auf selected documents)
2.) Einen Button, der den Agenten auslöst (mit vorherigem @Prompt, sonst wird ohne Abfrage gelöscht)
3.) Im  Querydocumentdelete muss man z.B. via uiws.Currentview.viewalias abfragen, welche View gerade gewählt ist.

Nun meine eigentlichen Fragen:
a) Ist das wirklich so in R5 bei SoftDeletions wenn man Doks aus einer View dauerhaft löschen möchte, oder habe ich da was übersehen?
b) Gibt es eine NotesView-Property, die mir zurückgibt, von welchem Typ eine View ist (also "normale View" oder eben "Shared, contains deleted documents")? Denn jetzt habe ich hartcodiert die View drin, welche diese Eigenschaft hat. Ich würde das in dem Script aber gerne allgemeine formulieren.

Grüße,
Michael

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Soft deletions - Vorgehensweise (längeres Posting)
« Antwort #1 am: 18.09.04 - 12:44:00 »
Zumindest auf Frage 2 eine Antwort:
$Flags enthält bei diesem View-Type den Buchstaben "l" (kleines "L").

Zitat
#define DESIGN_FLAG_DELETED_DOCS      'l' /*  VIEW: Indicates that a view is a deleted documents view */

HTH,
Bernhard

Offline -Michael-

  • Aktives Mitglied
  • ***
  • Beiträge: 153
  • Geschlecht: Männlich
    • Software Guide
Re: Soft deletions - Vorgehensweise (längeres Posting)
« Antwort #2 am: 28.09.04 - 22:55:33 »
Danke Bernhard für diese Info  :)
(und sorry für das späte Feedback)

Ciao,
Michael

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz