Domino 9 und frühere Versionen > Entwicklung
Löschen mit ENTF unterbinden
iukhdh:
Also so langsam zweifel ich wirklich an mir. Ich habe den Code nun so abgeändert, weil ich ja auf die Sache mit dem "x" verzichten kann und im Backend die markierten Dokumente lösche:
Dim session As New NotesSession
Dim db As Notesdatabase
Dim collMarked As NotesDocumentCollection
Dim docToChange As NotesDocument
Dim docTemp As NotesDocument
Set db=session.CurrentDatabase
Set collMarked = db.UnprocessedDocuments
Set docToChange = collMarked.GetFirstDocument
While Not (docToChange Is Nothing)
Set docTemp = collMarked.GetNextDocument (docToChange)
Call docToChange.Remove( True)
Set docToChange = docTemp
Wend
Ich markiere in meiner Ansicht die zu löschenden Dokumente - klicke auf den Aktionsknopf mit dem obigen Agenten - Die Dokumente werden gelöscht. Juchhei.
Aber :
Das funktioniert ein, zwei mal, dann plötzlich nicht mehr. Was mir aufgefallen ist: Ich habe ein Dokument in der DB einfach mit STRG-C und STRG-V mehrmals kopiert um das Löschen zu testen. Nachdem ich den Löschagenten habe laufen lassen, wollte ich mit STRG wieder das letzte, übrige Dokument kopieren, doch dann kam eine Meldung, dass dieses schon gelöscht wäre. Wenn ich aus der Ansicht raus und wieder rein gehe, dann klappts wieder. Wenn die Fehlermeldung kommt, kann ich noch kurz erkennen dass im Hintergrund eine Meldung aufgeht, in der angemeckert wird, dass xy Dokumente in die Zwischenablage kopiert werden müssen.
Ich hab mir gedacht, vielleicht muss man einfach die Ansicht aktualisieren, aber daran scheint es nicht zu liegen.
Ich bin so langsam am Ende ... kann das denn sooo schwer sein mit dem Script?
:-[
Fedaykin:
Hi
Hilft Dir zwar nicht gross weiter, aber konnte in der Test-DB die ich gemacht habe keinen Fehler feststellen. Klappt vorzüglich. Sogar die etwas waghalsigen Aktionen mit gelöschten Dokumente einfügen aus Zwischenablage. Verwende übrigens (7.02) also vielleicht sollte mal jemand mit alter Version versuchen ob Dein Problem reproduzierbar ist.
Gruss
Remo
iukhdh:
Tja, ich hab nun nochmal ein wenig rumprobiert. Was mir aufgefallen ist, dass die Dokumente nach dem Löschen mal automatisch aus der Ansicht verschwanden, dann mal wieder drinblieben und erst nach F9 verschwanden. Das habe ich nun mit einem Viewrefresh in den Griff bekommen.
Was mich aber immer noch stört ist die Tatsache, dass nach dem Löschen der Dokumente das Kopieren eines vorhandenen Dokuments in der gleichen Ansicht mit der Bemerkung "Das Dokument wurde gelöscht" quittiert wird. Erst wenn ich aus der Ansicht rausgehe und wieder reingehe funktioniert das wieder.
Nun gut, es kommt wahrscheinlich nicht oft vor, dass jemand nach dem Löschen dann noch ein Dokument kopiert, aber irgendwie sagt mir mein Laienhafter Scriptverstand, dass da wohl irgendwie noch was fehlt. Muss nach dem Code noch irgendwie ein abschliessender Befehl kommen, oder was soll diese Reaktion?
Ich habs jetzt halt mal mit einem Viewrebuild behoben, bin mir aber nicht sicher ob das die "richtige" elegante Lösung ist.
Was meinen die Profis?
koehlerbv:
Deinem Code fehlt da nichts mehr. Ansichtsindexinformationen werden gecached. Und dann kommst Du mit einem Dokument, dass ja eine UNID wie eines der gerade gelöschten Dokumente hat ... Da ist das Notes beleidigt und denkst, Du willst es verklapsen.
Bernhard
PS: In der Praxis wird sowas ja eher seltener vorkommen ;D
iukhdh:
Bist du sicher dass ein kopiertes Dokument die gleiche UNID hat?
Wenn es sich um die ID handelt, die man in den Dokumenteigenschaften beim Propellerhütchen ablesen kann, dann ist die aber bei jedem Dokument eine andere, auch bei den kopierten. Und das o.g. Verhalten kommt auch beim Löschen von nicht kopierten Dokumenten. Mit dem Viewrebuild ist es aber unterbunden.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln