Autor Thema: Agent mit Formeln aus LS ausführen  (Gelesen 2673 mal)

Offline Joe

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
  • Ich liebe dieses Forum
Agent mit Formeln aus LS ausführen
« am: 17.12.03 - 11:17:11 »
Hallo Liebe Notes-Gemeinde,

ich habe mal wieder ein Brett vor dem Kopf. Ich möchte beim Verlassen eines Feldes einen Agenten ausführen. So weit, so gut. Im Exiting des Feldes führe ich ein call Agent.Run aus. Das Problem liegt wohl darin, dass der Agent Formelsprache enthält, denn die dann folgende Fehlermeldung ist:

Notes Error: @Funktion ist in diesem Kontext ungültig.

Der Agent soll mit @DBLookup's einen Wert aus dem NAB ziehen und in ein Feld einsetzen (FIELD:=xxxxxxx).
Warum geht das denn nicht? Der Agent alleine über das Menü aufgerufen läuft bestens. Irgendwas mache ich verkehrt oder habe ich nicht berücksichtigt. Bitte helft mir auf die Sprünge! ;-)
Joachim

1 App.-Server 8.0.2FP2
4 Mail-Server 8.0.2FP2
ca. 1500 Clients 8.0.2FP2

Glombi

  • Gast
Re:Agent mit Formeln aus LS ausführen
« Antwort #1 am: 17.12.03 - 11:21:54 »
@DbLookup geht nicht - aus der KBASE:

Published

Product Area:   Notes   Date:   25.04.2001
Product Release:   Notes Client 4.6x, Notes Client 4.5x   Document #:   155913
Category:   Workstation/Desktop\\Application Development\\Macro/Agent/LotusScript      

Error: "@Function is Not Valid in this Context" Calling One Agent from Another via LotusScript

Problem:

When you attempt to call one agent from another using LotusScript, the following error occurs:

"Notes Error:  @Function is not valid in this context."

Solution:

This error occurs when the "called agent" contains one of the following @functions:

 @Command (or an @PostedCommand)
 @DbLookup
 @DbColumn
 @DDEInitiate
 @DDETerminate
 @DDEExecute
 @DDEPoke
 @MailSend
 @Prompt
 @DialogBox
 @PickList

The use of these functions is reserved for the Notes workspace - where they receive either input or context from a user.  If you attempt to use these functions in the background, there is no opportunity for a user to provide the input the functions require.

Supporting Information:

Two Typical Scenarios.

1. From the Notes UI, you attempt to run a LotusScript agent (Agent1) that calls an another agent (Agent2), and Agent2 contains one or more of the functions listed above.  The NotesAgent class Run method runs the called agent (Agent2) in the background.  (In this case, the error displays in a dialog box.)

2. A scheduled agent calls another agent, and - in the called agent - the value of a field is populated using @Prompt or @PickList.  (In this case, the error displays in the field.)


Du könntest versuchen, im Exiting Event den Agenten mit
@Command([ToolsRunMacro];"Agentname")
aufzurufen.

Andreas
« Letzte Änderung: 17.12.03 - 11:23:37 von Glombi »

Offline Joe

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
  • Ich liebe dieses Forum
Re:Agent mit Formeln aus LS ausführen
« Antwort #2 am: 17.12.03 - 11:25:47 »
Sch........kleister!

Dann kann ich das automatische Füllen des Feldes wohl vergessen (sprich: einen Button mit dem Agenten neben das Feld legen und den User machen lassen)? Oder gibt's eine andere Lösung? So weit, dass ich den ganzen Agenten in LS machen könnte, gehen meine Kenntnisse leider nicht.
Joachim

1 App.-Server 8.0.2FP2
4 Mail-Server 8.0.2FP2
ca. 1500 Clients 8.0.2FP2

Glombi

  • Gast
Re:Agent mit Formeln aus LS ausführen
« Antwort #3 am: 17.12.03 - 11:28:32 »
Hast Du das mit
Zitat
Du könntest versuchen, im Exiting Event den Agenten mit
@Command([ToolsRunMacro];"Agentname")
aufzurufen.
schon versucht?

Offline Joe

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
  • Ich liebe dieses Forum
Re:Agent mit Formeln aus LS ausführen
« Antwort #4 am: 17.12.03 - 11:31:12 »
Hallo Glombi,

das wäre schön, aber im Exiting-Event ist meines Wissens nur LS zulässig, kein Formel.

Joe
Joachim

1 App.-Server 8.0.2FP2
4 Mail-Server 8.0.2FP2
ca. 1500 Clients 8.0.2FP2

Glombi

  • Gast
Re:Agent mit Formeln aus LS ausführen
« Antwort #5 am: 17.12.03 - 11:37:03 »
Stimmt! Na, dann bleibt Dir wohl nichts anderes übrig, als den Agenten in LS in programmieren.

Oder: Warum schreibst Du die @DbLookup-Formel nicht in das Feld aus Feldformel, anstatt einen Agenten auszuführen?
Im Exiting machst Du dann sowas wie
call uidoc.Refresh
und dann wird die Formel in dem anderen Feld ausgeführt.

Andreas

Offline Joe

  • Junior Mitglied
  • **
  • Beiträge: 95
  • Geschlecht: Männlich
  • Ich liebe dieses Forum
Re:Agent mit Formeln aus LS ausführen
« Antwort #6 am: 17.12.03 - 11:44:58 »
Suuuuuper Idee! Manchmal braucht man doch einen Kick von kompetenter Seite. Habe das so eingebaut und funzt prächtig! Vielen Dank!!!
Joachim

1 App.-Server 8.0.2FP2
4 Mail-Server 8.0.2FP2
ca. 1500 Clients 8.0.2FP2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz