Domino 9 und frühere Versionen > Entwicklung

Löschen mit ENTF unterbinden

<< < (3/6) > >>

iukhdh:
Na da kann ich ja lange nach "selected" suchen ... auf unprocessed muss man auch erst mal kommen  :P

Aber wenn ich das recht verstehe, dann packe ich meinen Code in einen Agenten, bei dem ich von vornherein "markierte Dokumente" auswähle, und diesen Agenten rufe ich über meine Aktion auf.

Innerhalb des Codes nach markierten Dokumenten abzufragen scheint dann nicht zu gehen, oder?

Kommt mir ein wenig "hinderschervier" vor, wie man hier sagt!

 ;)

koehlerbv:
Du kannst das auch in eine Ansichtsaktion packen. A-Bär: Im Gegensatz zu einem wie von Dir beschriebenen Agenten bleiben nach Ablauf des Codes dann die Markierungen erhalten, was bei schussligen Usern (und das könnte uns auch passieren!) die Markierungen gesetzt ... Ich setze bei sowas i.d.R. einen Agent ein, den ich aus einer Ansichtsaktion starte.

HTH,
Bernhard

iukhdh:
Hallo Leute,

ich habe Bernhards Vorschlag wie folgt abgeändert und in eine Aktions Agenten gepackt

Dim session As New NotesSession
   Dim db As Notesdatabase
   Dim collMarked As NotesDocumentCollection
   Dim docToChange As NotesDocument
   
   Set db=session.CurrentDatabase
   Set collMarked = db.UnprocessedDocuments
   
   Set docToChange = collMarked.GetFirstDocument
   
   While Not (docToChange Is Nothing)
      docToChange.Maske = "x"
      Call docToChange.Save (False,True)
      Call docToChange.Remove( True )
      Set docToChange = collMarked.GetNextDocument (docToChange)
   Wend

Wenn ich den Agenten ausführe, wird das Dokument zwar gelöscht, aber es kommt folgende Meldung: Function requires a valid ADT argument.

Das sagt mir nun ja mal garnix, kann mir bitte jemand sagen was Notes mir da sagen will?

Vielen Dank

koehlerbv:
ADT error besagt: Du hast Notes gerade das benötigte Dokument unter'm Arsch weggezogen:
GetNextDocument (docToChange)
docChange ist ja gerade von uns gegangen ...

Du musst vor dem Löschen bereits das NextDocument holen.

Bernhard

Axel:
Das Ganze müsste so in etwa aussehen (ungetestet):

Dim session As New NotesSession
Dim db As Notesdatabase
Dim collMarked As NotesDocumentCollection
Dim docToChange As NotesDocument
Dim docTemp As NotesDoicument
   
Set db=session.CurrentDatabase
Set collMarked = db.UnprocessedDocuments
   
Set docToChange = collMarked.GetFirstDocument
   
While Not (docToChange Is Nothing)
  Set docTemp = collMarked.GetNextDocument (docToChange)
  docToChange.Maske = "x"
  Call docToChange.Save (False,True)
  Call docToChange.Remove( True )
  Set docToChange = docTemp
Wend


Axel

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln