Autor Thema: Selected Documents: Markierung aufheben  (Gelesen 6649 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Selected Documents: Markierung aufheben
« am: 21.05.04 - 19:48:35 »
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)")

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

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?
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Selected Documents: Markierung aufheben
« Antwort #1 am: 21.05.04 - 20:18:31 »
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.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:Selected Documents: Markierung aufheben
« Antwort #2 am: 21.05.04 - 20:33:57 »
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
« Letzte Änderung: 21.05.04 - 20:34:13 von Glombi »

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Selected Documents: Markierung aufheben
« Antwort #3 am: 21.05.04 - 20:38:00 »
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  ;)
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Glombi

  • Gast
Re:Selected Documents: Markierung aufheben
« Antwort #4 am: 21.05.04 - 20:39:59 »
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  

Glombi

  • Gast
Re:Selected Documents: Markierung aufheben
« Antwort #5 am: 21.05.04 - 20:40:43 »
View Actions Leave Documents Selected After Execution

Problem
After executing a view action, documents that were selected prior to running the view action are still selected - even when one or more documents no longer appear in the view.  This can have adverse effects in some cases because a user may not realize that documents in other views may be selected when they execute the same action, a second action or an agent which acts on currently selected documents.

One example where this could have an adverse effect:

An action uses LotusScript code to act on selected documents using the UnprocessedDocuments property of the NotesDatabase class.  If the action modifies documents such that they no longer appear in the view, then a user would not realize that the documents were still selected after running the action.  If the same view action is executed again (or another that also uses the UnprocessedDocuments property), then documents in other views could be acted upon without the user realizing it.




This issue has been reported to Lotus Quality Engineering.

The following workaround can be used to ensure that selected documents are deselected when the action finishes execution:

1. Place the view action's Simple Action, Formula or LotusScript code within an agent which acts on Selected Documents.

2. Have the view action call the agent in Step 1 using the formula: @Command([ToolsRunMacro]).  

NOTE: The workaround fails if you use the Simple Action "Run Agent" to run the agent.   The workaround does not work in cases where the Formula or LotusScript is designed to open a document in Edit mode.   For example:  In LotusScript the use of either the EditDocument or ComposeDocument methods of the NotesUIWorkspace class would cause the workaround to fail.

Supporting Information:



Related Documents:

LotusScript Agent Running on Selected Documents Does Not Deselect When Finished
Document #:  181093  

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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Selected Documents: Markierung aufheben
« Antwort #6 am: 21.05.04 - 20:55:10 »
Danke, Andreas.
Dies bestätigt mir einiges.

Mein hier geposteter Agent deselektiert wohl deshalb weil
 - Agent aus Button aufgerufen wird und der Code nicht in einem Button ist
 - ich hier keine Frontend-Klassen verwende
 - ich hier keine Dokumente lösche
(oder zumindest aufgrund einer Kombination dieser 3 Punkte)

Eine Pauschalisierung lässt sich wohl leider nicht so einfach finden.

Wirklich sicher ist wohl wirklich nur der Workaround mit folgendem Button-Code:
@Command([ToolsRunMacro]; "(RemoveItems)");
@Command([ToolsRunMacro]; "(DeselectAllDocs)")

Wobei hier der 2. Agent nichts anderes macht als @Command([EditDeselectAll])

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Selected Documents: Markierung aufheben
« Antwort #7 am: 22.05.04 - 00:46:38 »
Zwei Anmerkungen:
1) Ein Agent, der auf selektierte Doks in eine View wirkt, hebt nach Ausführung diese Selektion auf. Das ist so, und das ist auch gut so.
Gilt für R4 bis R6 und sollte daher auch in R7 nicht anders sein - andernfalls hätte Iris Mist gebaut.

2) Finger weg bei halbwegs professioneller Programmierung von simple agents - das gehört auch in die Agents-Doku. Simple Agents taugen nix. Wer damit noch nicht hereingefallen ist, darf hier auch nicht mitspielen. Begründungen sind lieferbar, aber es ist schlicht schade um die Zeit hierfür.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz