Domino 9 und frühere Versionen > Entwicklung

Selected Documents: Markierung aufheben

(1/2) > >>

TMC:
Hi,

im Rahmen meiner Agent-Doku wollte ich folgendes dokumentieren:


--- Zitat ---Um ausgewählte Dokumente einer View mit einem Scriptagenten abzuarbeiten (um in den einzelnen Dokumenten z.B. Items zu löschen), kann man einen Agenten verwenden mit Trigger: „Agent menu selection (R5: Manually From Actions Menu)“ und Target: „Selected documents“.
Allerdings wird nach dem Abarbeiten der Dokumente die Selektion nicht aufgehoben. (...)Man kann mit 2 Agenten arbeiten, die man über eine Aktionsschaltfläche aufruft:
- @Command([ToolsRunMacro]; "(RemoveItems)");
- @Command([ToolsRunMacro]; "(DeselectAllDocs)")

--- Ende Zitat ---

Nun musste ich aber erfreulichrweise feststellen, dass die Selektion nach dem Lauf des Agenten aufgehoben wird.
Testszenario:
 - Client R5.0.11 und R6.5
 - Agent wird über Button aufgerufen via @Command([ToolsRunMacro];"...")
 - Der Agent ist ein Script-Agent und macht folgendes:

--- Code: ---Sub Initialize
   '**********************************************************************   
   'Purpose: Deletes all specified items in the selected documents
   '**********************************************************************   
   On Error Goto ERRORHANDLER
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim item As NotesItem
   Dim vDeleteItems As Variant
   Set db = session.CurrentDatabase
   Set collection = db.UnprocessedDocuments
   Set doc = collection.GetFirstDocument
   
   '-----> Items you want to remove
   Redim vDeleteItems(20)
   vDeleteItems(1) = "Feld1"
   vDeleteItems(2) = "Feld2"
   vDeleteItems(3) = "Itemname3"
   vDeleteItems(4) = "Itemname4"
   '........and so on.........
   '<-----
   
   While Not(doc Is Nothing)
      Forall i In vDeleteItems
         While (doc.HasItem(i))
            Set item = doc.GetFirstItem(i)
            Call item.Remove
            Call doc.Save(True, True)
         Wend
      End Forall      
      Set doc = collection.GetNextDocument(doc)
   Wend
   
EXIT_SCRIPT:
   Exit Sub
   
ERRORHANDLER:
   Msgbox "Error: " & Err & " - " & Error$ & Chr(10) & Chr(10)_
   & "Procedure: Agent '(RemoveItems)'"& Chr(10) & Chr(10)_
   & "Line: " & Erl & Chr(10), _
   48, "An error occured"
   Resume EXIT_SCRIPT
   
End Sub
--- Ende Code ---

Ich war aber immer der Meinung, dass Doks in der View nicht deselektiert werden nach einem Scriptagenten.

Die Forumsrecherche führte mich u.a. auch auf folgenden Thread, der mir das ganze eigentlich bestätigt:
http://www.atnotes.de/index.php?board=7;action=display;threadid=5469

Gab es da mal einen 'Bugfix' / Verbesserung bei R5 ?

Weiß da jemand von Euch näheres hierzu?

Semeaphoros:
Scheinbar gibt es Unterschiede, ob man den Agenten über "Simple Actions" oder mit ToolsRunMacro aus @Formel aufruft. Weiter habe ich letzte Woche mal unter 6.5.0 Probleme genau damit gehabt, dass die Selection nicht aufgehoben wurde, bin da aber noch nicht auf einen definitiven Befund gekommen.

Glombi:
Nach dem Agentlauf - egal ob Script oder Formelsprache - sind die Dokumente nicht mehr selektiert.
Anders sieht es aus, wenn der Scriptcode in einer Aktion ist. Dann bleibt die Markierung erhalten.
Das sind meine Erfahrungen.

Andreas

TMC:
Danke schonmal für die Bestätigung Jens.
Sehr seltsam das ganze.

Vielleicht sollte ich mal 'Miss Agent' Julie eine Mail schreiben diesbezüglich ob sie da näheres weiss (auch wenn dabei vielleicht nur ein Donuts-Rezept zurückkommt aufgrund ihrer aktuellen Betätigungen im Konditoreiumfeld :))
Vorher würde ich aber nochmal im LDD-Forum recherchieren und das Problem auch mal dort posten.

Aber erst mal warte ich noch ab, vielleicht haben andere AtNotes-User das Problem schon mal im Detail evaluiert  ;)

Glombi:
Hier noch was aus der KBASE:
Problem
A LotusScript agent designed to run on selected documents in a view does not deselect the documents when it finishes.




This issue occurs in cases where the agent uses either the ComposeDocument or EditDocument method (of the NotesUIWorkspace class).  This issue has been reported to Lotus Quality Engineering.

There is no workaround beyond deselecting the documents manually.  It is recommended to use Edit, Deselect All.

Supporting Information:

Note: When using View Actions, documents are also left selected, but this is a separate issue.  See the related document titled: "View Actions Leave Documents Selected After Execution"  (#178402 ) for additional information on this topic.

Related Documents:

View Actions Leave Documents Selected After Execution
Document #:  178402  

Highlighted Document Not Recognized in LotusScript Shared Action Calling a Script Library
Document #:  178707  

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln