Autor Thema: Doppelklick auf Dokument in Ansicht soll Agenten starten  (Gelesen 3645 mal)

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Hallo Forum,

da bin ich mal wieder mit einem kleinen Problem:

Wenn ich in einer Ansicht auf ein Dokument doppelklicke, dann öffne ich es normalerweise ja.

Kann ich dies umändern, sodass in dieser Ansicht das Dokument nicht geöffnet wird, sondern durch den Doppelklick ein Agent gestartet wird?

Mein derzeitiger Gedanke ist, dies mit Queryopendokument zu realisieren, und dann das öffnen des Dokumentes gleich wieder abzubrechen, aber gibt es vielleicht eine andere Möglichkeit?


Danke im voraus.

Thomas


PS:
Ist es bei Euch auch so heiss?
« Letzte Änderung: 31.07.08 - 12:17:40 von iukhdh »
Thomas von der IuK

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #1 am: 31.07.08 - 12:20:48 »
Hilf Dir das als Idee?


Nein, wegen 27,5 Grad Zimmertemperatur sitze ich im Kühlschrank...
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #2 am: 31.07.08 - 12:21:32 »
Mir ist kein anderer Weg bekannt.

Warum packst du den Code nicht einfach in die Maske? Was soll denn das werden, vielleicht gibt's ja noch einen anderen Weg.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #3 am: 31.07.08 - 12:21:44 »
Wenn Du das im Dokument machst, wirst Du es im Frontend nie wieder öffnen können.

Alternative: NotesUIView.QueryOpenDocument.

Bernhard

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #4 am: 31.07.08 - 12:32:22 »
Ich habe je Quartal ca 100 Dokumente, die ich per Import in meine DB bekomme. Diesen Dokumenten muss ich danach noch ein Berechtigungsfeld füllen. Dabei gibt es aber keine Regelmäßigkeit, die ich schon beim Import berücksichtigen könnte, ich muss also jedes Dokument anschauen und dann entscheiden wer dafür die Berechtigung bekommt.

Das mache ich derzeit über einen Aktionsbutton, wo ich dann aus einer Liste den entsprechenden, richtigen Eintrag auswähle.

Ist halt immer eine Klickorgie. Dokument anklicken, Button anklicken, Auswahl treffen, OK klicken.

Einen Klick könnte man sparen, wenn es so klappen würde wie oben dargestellt.
Thomas von der IuK

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #5 am: 31.07.08 - 12:41:00 »
Woran machst Du das fest der die Berechtigung bekommt.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #6 am: 31.07.08 - 12:57:05 »
Vorrangig sind es Wertgrenzen und natürlich die (immer mal wieder) wechselnden Abteilungsleiter. Du willst sicherlich auf einen Automatismus hinaus, den ich aber an dieser Stelle aus leidvoller Erfahrung garnicht haben möchte.
Die 100 Dokumente sollen auf jeden Fall manuell in der View angeschaut und dann entschieden werden wer es bekommt. Klingt vielleicht blöd, aber auf einen Automatismus an dieser Stelle verlässt man sich doch zu schnell, und grad z.B. diese laufenden Wechsel der Abteilungsleiter (und die fehlende Aktualisierung der Liste) bekommen wir so doch besser in den Griff.

Ich hab inzwischen mal folgenden Code ausprobiert im queryopendocument:

Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim agent As NotesAgent
   Set db = s.CurrentDatabase
   Set agent = db.GetAgent("Innere Verrechnung versenden")
   agent.Run
   Continue=False
   Source.View.Refresh
End Sub


Müsste denn da das Continue = False  nicht den Sprung ins Dokument unterbinden?
Der Agent wird aufgerufen, aber danach lande ich noch im Dokument und muss dieses schliessen.
Thomas von der IuK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #7 am: 31.07.08 - 13:17:51 »
Die 100 Dokumente sollen auf jeden Fall manuell in der View angeschaut und dann entschieden werden wer es bekommt.

Wenn die Dokumente eh manuell angeschaut werden müssen, warum dann nicht makieren (anstatt öffnen)? Im anschluß startest du den Agent über eine Ansichtenaktion und der nimmt sich dann alle markierten Dokumente vor.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #8 am: 31.07.08 - 13:29:26 »
Ich schliesse mich Axel an.

Das was wichtig ist, kannst Du Dir ja in der View mit Anzeigen lassen.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #9 am: 31.07.08 - 17:35:07 »
Sorry,

ich glaub wir reden aneinander vorbei.
So mache ich es doch derzeit. Markieren, Ansichtsbutton drücken, damit Agent laufen lassen.

Ich stelle es mir aber so vor, dass ich nur einen Doppelklick auf das Dokument tätige, damit NICHT das Dokument öffne sondern den Agenten laufen lasse. 

Geht doch viel schneller als wenn ich immer unten  und dann oben klicke.

Vielleicht verstehe ich das Queryopendokument falsch, aber ich gehe davon aus, dass dann was VOR dem Öffnen des angeklickten Dokuments abläuft, in meinem Fall der Agent. Danach will ich das ganze abbrechen, also das Dokumen eben NICHT öffnen. Siehe Code etwas weiter oben.

Aber das Continue = False scheint da nicht zu greifen.

In das Queryopen vom Dokument kann ich den Code ja nicht reinschreiben, sonst wird das Dokument ja nie geöffnet.


Ergänzung:
Nachdem ich mal Notes und Designer neu gestartet habe, kommt nun bei der Zeile agent.run folgende Fehlermeldung:

Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht unterstützten Auslöser und Suchtyp.

Verstehe ich das Recht, dass ich also im Queryopendocument dieses Agent.run nicht verwenden kann?

Ich habe davor mal als Test meinen Code aus dem Aktionbutton ins Queryopendocument reinkopiert (Formelsprache) das  hat einwandfrei funktioniert. Da konnte ich meinen Agenten problemlos ausführen, nur hab ich da halt nicht die Möglichkeit mit continue =  False abzubrechen. Daher bin ich auf Skript umgestiegen, aber da scheint es wohl auch Probleme zu geben (Fehlermeldung)

Nur zur Ergänzung, ich weiss nicht obs wichtig ist .. Der Agent ruft zwei weitere Agenten auf. Wie gesagt, mit Formelsprache klappt das Problemlos.
« Letzte Änderung: 31.07.08 - 18:10:06 von iukhdh »
Thomas von der IuK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #10 am: 31.07.08 - 19:29:21 »
Geht doch viel schneller als wenn ich immer unten  und dann oben klicke.

Das wage ich aber ganz stark zu bezweifeln.

Also mal ganz ehrlich, ob ich auf jedes Dokument doppeltklicke oder davor den Haken setze kommt für mich auf's gleiche raus. Und bei erstere Methode führst du den Agent x-mal aus, sonst ein einziges Mal.

Wenn du die Ansicht geschickt gestaltest, dann kannst du sogar Dokumente in einem Rutsch markieren.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #11 am: 31.07.08 - 22:07:31 »
 ???

Sorry Axel,

aber irgendwie reden wir wirklich aneinander vorbei, oder steh ich auf der Leitung ...?

ich hab 100 Dokumente in einer Ansicht, eines anders als das andere. Ich markiere das erste, fahre mit meiner Maus nach oben zum Aktionbutton, klicke dorthin und führe dann meinen Agenten aus. Dann das zweite,dritte usw, usw.

Da fahre ich zigmal mit meiner Maus von der Mitte des Bildschirms nach oben und wieder zurück.

Wenn ich auf das Dokument in der Ansicht doppelklicke und dann gleich der Agent startet, warum soll das nicht schneller sein? Kapiere ich nicht.

Aber letztendlich ist das ja auch nicht meine Frage.

Was mich beschäftigt ist derzeit (also jetzt grad nicht, jetzt bin ich ja zuhause bei meinem Eis) einfach nur:

Wie starte ich den Agenten mit einem Doppelklick auf ein beliebiges Dokument in meiner Ansicht OHNE dass das Dokument dann noch geöffnet wird und ich das wieder schliessen muss.

Mit Formelsprache klappt das eigentlich ganz gut, der Agent läuft ab, aber es wird das Dokument noch geöffnet was ich nicht will. Gibt es eine Alternative zu continue = false in Formelsprache?

Wenn nein, woran kann es liegen dass der obige Code im Script nicht läuft? Fehlermeldung siehe oben. Der Agent "Innere Verrechnung versenden" ist in Formelsprache geschrieben und ruft zwei weitere Formelsprachenagenten auf. Ist das ein Problem?

Bis morgen, vielleicht findet sich ja noch eine Lösung

 ;)

Ciao

Thomas (Eis-schlabbernd)
Thomas von der IuK

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #12 am: 31.07.08 - 22:17:54 »
Jetzt hab ich doch kapiert was du meinst ... vielleicht lags an der Wärme ..

Du meinst, dass ich halt z.B. 20 Dokumente markiere, dann den Aktionbutton drücke und ich dann 20 mal hintereinander den Agenten laufen lasse.

Grundsätzlich keine schlechte Idee, nur wird mir halt derzeit durch diesen Agenten eine große Liste an Namen, mit weiteren Infos angezeigt, die mehr oder weniger den ganzen Bildschirm verdeckt. Ich befürchte da verliert man den Überblick, um welches Dokument es gerade geht.

Wahrscheinlich könnte man diesen Vorgang umgestalten dass man da zusätzliche Infos bekommt und immer weiß bei welchem Dokument man gerade ist, aber da will ich im Moment eigentlich eher nicht ran.

Thomas von der IuK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #13 am: 01.08.08 - 08:16:40 »
Jetzt hab ich doch kapiert was du meinst ... vielleicht lags an der Wärme ..

Du meinst, dass ich halt z.B. 20 Dokumente markiere, dann den Aktionbutton drücke und ich dann 20 mal hintereinander den Agenten laufen lasse.

So ganz hast du es immer noch nicht verstanden. Du markierst alle in Frage kommenden Dokumente in der Ansicht, klickst auf den Aktionsbutton und der Agent läuft genau einmal, und zwar greift er sich alle markierten Dokumenten. Stichwort UnprocessedDocuments. Dafür muss der Agent allerdings entsprechend programmiert sein. Aber das sollte nicht das Problem sein.

Grundsätzlich keine schlechte Idee, nur wird mir halt derzeit durch diesen Agenten eine große Liste an Namen, mit weiteren Infos angezeigt, die mehr oder weniger den ganzen Bildschirm verdeckt. Ich befürchte da verliert man den Überblick, um welches Dokument es gerade geht.

Genau hier liegt der Hund begraben, warum der Agent mit agent.Run nicht läuft. Agenten, die darüber gestartet werden dürfen keine Frontend-Befehle beinhalten.

Auszug aus der Designer-Hilfe:
Zitat
Usage
This method runs any agent regardless of source language (simple action, formula, LotusScript, Java).
You cannot run an agent recursively (cannot call it from itself).
The user cannot interact directly with a called agent. User output goes to the Domino log.
You cannot debug a called agent.
You cannot use the Notes UI classes in an agent called by this method.


Axel

 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #14 am: 01.08.08 - 08:39:30 »
Hallo Axel,

doch, hab ich schon kapiert, nur vielleicht schlecht formuliert. Mit dem Start eines Agenten halt alle markierten Dokumente hintereinander bearbeiten.

Hmmm,

und nun? Mit Script kann ich die Frontendagenten nicht laufen lassen, und mit Formelsprache kann ich das Continue=False  nicht ausführen.

Meine einfache Lösungsidee scheint also zum scheitern verurteilt zu sein.

Muss ich mir wenn ich mal mehr Zeit habe etwas anderes ausdenken.

 :-\
Thomas von der IuK

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #15 am: 01.08.08 - 08:45:22 »
Ich habe das Ganze mal auf die Schnelle getestet und es funktioniert ohne Probleme.
Code im QueryOpendocument der Ansicht:
Code
Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
	
	Dim collection As NotesDocumentCollection
	Dim doc As NotesDocument
	Dim agent As NotesAgent
	Dim session As New NotesSession
	Dim db As NotesDatabase
	
	Set db = session.CurrentDatabase
	Set collection = source.Documents
	Set doc = collection.GetFirstDocument
	
	Set agent = db.GetAgent("(Testagent)")
	If agent.Run(doc.NoteID) = 0 Then
		Messagebox "Agent ran",, "Success"
	Else
		Messagebox "Agent did not run",, "Failure"
	End If
	continue = False
End Sub

Die Messagebox habe ich nur zu Testzwecken eingefügt und kann auch weggelassen werden.

Der Agent sieht so aus:
Zitat
Sub Initialize
   Dim s As New NotesSession
   Dim agent As NotesAgent
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = s.CurrentDatabase
   Set agent = s.CurrentAgent
   
   Set doc = db.GetDocumentByID(agent.ParameterDocID)
   
   doc.Testfeld = "Bearbeitet"
   Call doc.Save(True, False)
   
End Sub

Als Ziel in den Agenten-Eigenschaften muss "Keines" eingetragen werden. Sonst wird untenstehende Fehlermeldung angezeigt.  

Ergänzung:
Nachdem ich mal Notes und Designer neu gestartet habe, kommt nun bei der Zeile agent.run folgende Fehlermeldung:

Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht unterstützten Auslöser und Suchtyp.

Zitat
...
continue = False
...

Diese Zeile verhindert das Öffnen des Dokuments (und das macht es auch!).

Da das ein, auf die Schnelle zusammengestrickter Code ohne irgendeine Fehlerbehandlung.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #16 am: 01.08.08 - 09:16:07 »
und nun? Mit Script kann ich die Frontendagenten nicht laufen lassen, und mit Formelsprache kann ich das Continue=False  nicht ausführen.

Dir bleibt nur der Weg über einen Agent mit Backend-Funktionen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline iukhdh

  • Senior Mitglied
  • ****
  • Beiträge: 498
  • Geschlecht: Männlich
  • To be or notes to be, this is the question
Re: Doppelklick auf Dokument in Ansicht soll Agenten starten
« Antwort #17 am: 01.08.08 - 09:51:13 »
Nun gut, dann werd ich das mal die nächsten Tage zurückstellen, denn die ganzen Frontendagenten in Formelsprache muss ich dann ja wohl mal genauer anschauen und umbauen. Und dann mache ich es gleich so wie von dir oben vorgeschlagen ohne die Klickorgie.

Danke.
Thomas von der IuK

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz