Autor Thema: Agent starten aus Querysave  (Gelesen 7059 mal)

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Agent starten aus Querysave
« am: 14.07.05 - 18:44:13 »
Hallo!
Hab eine Frage...
wie kann ich ein Agent aus einem Querysave oder Button starten?
@Function?

Vielen Dank vorab für die Hilfe!

MFG

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #1 am: 14.07.05 - 18:50:30 »
@Command ([ToolsRunMacro]; "agentname")

LS: Siehe entsprechende und nicht zu übersehende Klasse (beim @Command sucht man ja auch nicht "Macro", da dies ein R3-Relikt ist  ;))

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #2 am: 14.07.05 - 19:12:10 »
hab noch eine frage...
wenn ich eine Form hab wo man einen Produktnamen eingeben kann und einen Button...
Der Button soll nach Eingabe des Produktnamens ein Agent auslösen der alle Dokumente mit diesem Produktnamen so abändert das beispielsweise das Feld Angebot von nein auf ja gewechselt wird...

Agent:
If(Produktname=eingabename;Field Angebot:="Ja";@Nothing)

aber wie geb ich den eingabenamen an die Agent?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #3 am: 14.07.05 - 19:18:46 »
Vor dem Stellen der nächsten Frage bedankt man sich erstmal für die Beantwortung der letzten Frage - oder bemängelt die Lösung.

Vor solchen Phänomenen stehe ich nicht nur hier im Forum immer nur kopfschüttelnd  >:(

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #4 am: 14.07.05 - 19:27:52 »
Hallo Bernhard!
Vielen Dank für deine erste Antwort!
hatte  es vergessen und das war selbstverständlich sehr unhöflich von mir!
Ich hoffe du bist nicht nachtragend   :'(

Würde mich aber sehr freuen wenn du mir nocheinmal helfen würdest!
 :)
mein ziel ist es in einer Form die Produktgruppe einzugeben und alle Produkte dieser Produktgruppe sollen geändert werden.
In der Form Produkt ist ein Field "Rabatt" und "Produktgruppe"

Ich wollte den Agent wie folgt gestalten:
@If(Field produktgruppe=wert;Field Rabatt="ja";@Nothing);

das problem ist das wenn das Feld Rabatt mit ja markiert ist das sich dann automatisch das Feld Preis um 10% verringern soll.

Preis:
@If(Rabatt="ja";Preis-10%;@Nothing);
-> Preis-10% nur zur verdeutlichung!

Wie erreiche ich es das sich das feld nach ändern aktualisiert?
computed for display würde sich doch erst nach F9 ändern oder??
Hilft es wenn ich in den Agent ein @command([ViewRefreshFields]) baue?

Vielen Dank vorab

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #5 am: 14.07.05 - 19:44:54 »
Nein, ich bin wirklich nicht nachtragend  :)

Dein Problem würde ich aber never ever mit @functions lösen - dies ist eindeutig ein Fall, den man mit LS lösen sollte. Ehrlich gesagt, fällt mir hierzu auch keine Lösung mit @functions ein ...

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #6 am: 14.07.05 - 19:48:50 »
hmm...
ist es denn möglich wenn ich mit @SetEnvironment( variableName ; value ) den wert in eine variable schreibe und im agent diesen wert dann auslese mit $variableName.
dann könnte ich ja zumindest das Feld "Rabatt" ändern oder?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #7 am: 14.07.05 - 19:56:40 »
Ich würde mal sagen: Die notes.ini müllt man nicht grundlos zu.
Wie willst Du dann die betroffenenen Dokumente selektieren (okay, geht sich, aber ...).

Warum nicht gleicht sauber lösen mit LS ?

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #8 am: 14.07.05 - 20:07:27 »
hmm.. hab von LS leider keine Ahnung und hab damit auch noch nie gearbeitet....
Würde es aus diesem Grunde gerne mit @Functions lösen.
Wäre sehr erfreut wenn du mir dabei helfen würdest!   :D

Wenn ich in den Agent die Anweisung zum ändern des Feldes Rabatt schreibe
(Field xxx:="Ja")... kann ich dann nicht mit @command([ViewRefreshFields]) die form refreshen so dass sie dann die computed- Fields neu berechnen???

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #9 am: 14.07.05 - 20:12:24 »
Nochmal meine Frage: Wie selektierst Du die zu ändernden Dokumente ?

@Command ([ViewRefreshFields]) ginge natürlich, aber Du musst ja auch noch verhindern, dass diese Änderung nicht bei jeder Änderung (des übergeordneten Dokuments) passiert - sonst ist der Preis fix bei wenigen Cent  ;D

Weitere Frage: Da man mit @functions sehr viel sehr elegant machen kann, bei anderen (extrem wichtigen) Dingen aber damit schlicht scheitert - warum lernst Du kein LS, wenn Du Notes programmieren willst ? Ohne LS kommst Du nicht sehr weit ...

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #10 am: 14.07.05 - 20:21:33 »
Hab ein Feld "Preis" das den normalen Preis beinhaltet und ein Feld "Aktueller_Preis". Wenn nun das Feld "Rabatt"="Ja" ist, dann soll das Feld "Aktueller_Preis" von dem ursprünglichen Preis 10% abziehen, andernfalls den Wert ohne weitere mathematische Operationen übernehmen.

Wenn ich dieses Realisieren möchte muss ich doch lediglich ein @SetEnvironment( variableName ; value ) in der Form erstellen in der ich die Produktgruppe angebe, dann den Agent starten worin ich den Produktgruppennamen mithilfe von $variableName lokalisieren kann und dann die gegebenen Felder "Rabatt" ändern...
wenn ich darauffolgend den @command([ViewRefreshFields]) schreibe, dann müsste das Dokument doch problemlos aktualisiert werden und die Änderung direkt in einer View erkennbar sein oder?

Vielen Vielen Dank für deine Hilfe!
Freu mich schon auf deine Antwort!!

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Agent starten aus Querysave
« Antwort #11 am: 14.07.05 - 20:37:25 »
Weitere Frage: Da man mit @functions sehr viel sehr elegant machen kann, bei anderen (extrem wichtigen) Dingen aber damit schlicht scheitert - warum lernst Du kein LS, wenn Du Notes programmieren willst ? Ohne LS kommst Du nicht sehr weit ...

Dem kann ich nur zustimmen.
Gerade wenn es darum geht, schnell mal andere Dokumente anhand eines Schlüssels entsprechend zu ändern und dabei noch Werte vom aktuellen Dokument übertragen, sollte man m.E. unbedingt auf LotusScript zurückgreifen.
Matthias

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


Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #12 am: 14.07.05 - 21:25:25 »
Ja ich möchte auch LS sehr gern lernen und werde mich in naher Zukunft darum bemühen!
Möchte das Problem jedoch trotzdem lösen.

Ich habe noch folgendes Problem:
wenn ich die Werte ändere werden diese Änderungen in den übrigen Forms die die werte vverarbeiten und ggf. über @Dblookup beziehen erst nach einem einmaligen öffnen sichtbar?
wie kann man das umgehen?

freu mich über Hilfe!!!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #13 am: 14.07.05 - 23:16:36 »
Ich frage nochmals:  Wie selektierst Du die zu ändernden Dokumente ?

Wenn Du die zu ändernden Dokumente im Zugriff hast (hättest), kannst Du die zu ändernden Werte (auch ohne @Command ([ViewRefreshFields]) im Backend ändern. Jedes erneute öffnen ist dann nicht erforderlich. Insofern verstehe ich Deine Frage nicht.

Ja ich möchte auch LS sehr gern lernen und werde mich in naher Zukunft darum bemühen!
Möchte das Problem jedoch trotzdem lösen.

Dann mach es, und probiere nicht, mit einem unfrisierten Golf II auf der Nordschleife Eindruck zu schinden  ;D Ohne @function geht in Notes gar nix, mit @functions alleine geht nur ein Bruchteil.

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #14 am: 15.07.05 - 16:17:11 »
Hallo zusammen!
 :D

Vielen Dank an alle die mir Tipps gegeben haben...
Hab es geschafft   ;D

Hab noch eine Verständnisfrage:
Wenn ich jetzt einen Agent programmiert hab und den auch erfolgreich getestet hab und alles funktioniert und ich ihn nun in den Properties auf "Schedule" und dann auf mehrmals am Tag -> 5 Minuten stelle...
Wenn ich nun aus einer Form heraus den Agent manuell starte... klappt das und wie ist das dann mit den 5 Minuten?
Startet er dann immernoch immer nach 5 Minuten oder verstellen sie die Properties???

Meine zweite frage ist: Wie kann ich es erreichen das er jede minute läuft??

vielen Dank im voraus!

Lieben Gruß

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #15 am: 15.07.05 - 16:24:51 »
Fragen:
Wie hast Du es jetzt gelöst ?
Warum läuft der Agent auch scheduled ? Mir fehlt jetzt vielleicht das Verständnis, aber das beisst sich irgendwie.
Warum läuft der Agent alle 5 Minuten ? Was sagen Deine Admins dazu ? Die werden begeistert sein ...

Den Agent jede Minute laufen zu lassen, ist schlicht unmöglich (selbst, wenn man es einstellen könnte): Der AgentManager sucht sich sowieso einen Zeitpunkt zum Agentstart aus, zu dem der Server gerade genug Luft für so eine Aktion hat.

Bernhard

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #16 am: 15.07.05 - 16:45:22 »
hmm..

ist vielleicht jetzt ein bisschen unpassend aber das hat jetzt mit meinem letzten Problem nichts zu tun.
Hab mir eine kleine Datenbank (Test) zusammengestellt.

Wenn man jetzt zum beispiel ein Busunternehmen hat (kleine Datenbank) mit Busabfahrtdokumenten.
wie setzt man es denn beispielsweise um das wenn man beispielsweise Abfahrtsdokumente hat (Abfahrtszeit (datum , uhrzeit))
...
sobald das Datum und die Uhrzeit erreicht sind soll der Status von "Noch nicht abgefahren" auf "Abgefahren wechseln"

hatte mir das mit einem Agent programmiert...
nun wollte ich es bestmöglich erreichen das der Zustand so genau wie möglich zu jedem Zeitpunkt ist...
.. deshalb Agent -> "scheduled" > 5 Min.

wenn ich jetzt aber innerhalb einer 5 minutenphase den aktuellsten Zustand ermitteln möchte wollte ich es ermöglichen den Agent manuell ausführen zu lassen.

Ist das möglich?
Wenn ja - aber wenn ich ihn jetzt manuell auslöse.. zählt der ab dem zeitpunkt dann wieder neu 5 minuten ab oder wie?

Ganz liebe Grüße

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Agent starten aus Querysave
« Antwort #17 am: 15.07.05 - 16:57:55 »
Punkt 1: Notes ist KEIN RealTime Werkzeug, also echte Aktualität ist nicht erreichbar.

Punkt 2: wenn Du den Agenten von Hand startest, kommt es darauf an, wie Du ihn auslösest, ob die 5Min Sequenz neu angestossen wird oder nicht.
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

Offline Notes-Domino

  • Frischling
  • *
  • Beiträge: 29
Re: Agent starten aus Querysave
« Antwort #18 am: 15.07.05 - 17:00:48 »
hallo!

vielen Dank für die Antwort!

wollte ihn aus einer Form mithilfe eines buttons und dem Befehl:
@Command ([ToolsRunMacro]; "agentname")
starten?

würd das klappen und wie verhält er sich dann?
Die Properties bleiben doch unverändert und er läuft auch trotz manueller aufrufe immer automatisch weiter oder?

Liebe Grüße

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent starten aus Querysave
« Antwort #19 am: 15.07.05 - 17:05:54 »
Das ganze ist gar keine gute Idee. Vor allem: Warum soll "noch nicht abgefahren" oder "bereits abgefahren" denn hart im Dokument gespeichert werden ?? Das hat doch dort überhaupt nix zu suchen und kann jederzeit on-the-fly berechnet werden.

Die eigentliche Frage mag ich aus diesem Grunde gar nicht beantworten, weil sie das eigentliche Problem nicht lösen würde.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz