Domino 9 und frühere Versionen > ND8: Entwicklung
Probleme @DbLookUp im Agent
Jürgen Schomann:
Wie soll das gehen?
Der Agent soll für alle ausgewählten Dokumente laufen. Die Funktion @UpdateFormulaContext ist aber nur möglich wenn als Ziel für den Agenten 'Keines' angegeben ist und der Nutzer direkt mit dem Dokument arbeitet.
it898ur:
Hallo,
diese Einschränkung der Funktion hatte ich nicht bedacht. Ich kenne diesen Effekt jedoch auch aus vergangenen Zeiten - wenn ein Formelagent auf viele Dokumente läuft und dabei Felder setzt und mit Lookups Daten liest, gab es immer mal wieder "Sprünge" in den Werten, weil zwischenzeitlich die Ansichten zu langsam waren.
Inzwischen haben wir die betroffenen Codeteile bei uns alle auf Script umgestellt und arbeiten verstärkt mit Listen, die die geänderten Dokumente vermerken, um die Anzahl der Ansichtszugriffe - vor allem bei ständigen Änderungen niedrig zu halten.
Dies ist zwar ein einmalig etwas größerer Aufwand, dies wird jedoch mit Stabilität und Geschwindigkeit belohnt - bei Fremdanwendungen sollte sich um so was natürlich der Hersteller kümmern.
Gruß
André
Werner Götz:
Ich würde mal behaupten, dass beim Formel Agenten das Dokument erst NACH dem Abschluss des Agenten gespeichert wird und somit vorher noch die alte Anzahl geliefert wird.
-Werner
koehlerbv:
Nein.
Vor der Anwendung auf die ausgewählten (oder auch alle!) Dokumente ermittelt die Formula-Engine, was der Agent zu tun hat. Dazu gehört das @dbLookup, das damit immer den initialen Zustand hat. Anschliessend werden die "gesammelten Erkenntnisse" auf die betroffenen Dokumente zur Anwendung gebracht. Keine Anweisung des Agents mit einem @dbLookup bezieht sich zudem auf eine Anweisung, die die Änderung der Dokumente betrifft.
Bernhard
Jürgen Schomann:
Dass die Formela-Engine vorher das DbLookUp durchführt kann auch nicht sein. Bei mehreren Versuchen wurde manchmal doch der aktuelle Wert ermittelt. Außerdem könnten die Angaben für das DbLookUp ja auch erst dynamisch anhand des aktuellen Dokuments ermittelt werden. Z. B. welche Ansicht oder welches Feld/welche Spalte zurückgegeben werden sollen. Dann kann im Vorfeld ja auch nichts ermittelt werden. Ich glaube, dass es eher ein Zeitproblem ist.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln