Domino 9 und frühere Versionen > ND6: Entwicklung
Java-Agent aus LS starten – DocumentContext geht verloren
TMC:
Hast Recht, Thomas, daran wird es wohl liegen, zumindest kennt die LotusScript-NotesDocument-Klasse keine Property "getNoteID()".
Ich hatte diesen Fehler 1:1 zitiert, aber völlig übersehen, danke für den Hinweis.
Das würde dann auch sinnigerweise diese Array-Fehlermeldung erklären in genau der Zeile (wegen der Klammern).
haeppchen:
Danke erstmal für eure Hilfe,
ich habe den Agenten jetzt ans laufen bekommen (lag wirklich an dem fehlerhaften Methoden-Namen).
Jetzt hat sich leider ein neues (und hoffentlich auch letztes) Problem aufgetan:
- ich starte den Java-Agenten wie erwähnt aus Lotus Script
- bevor ich den Agenten starte, initialisiere ich das aktuelle Dokument und speichere es
(eine Art Zwischenspeichern, um auf RichText-Felder zugreifen zu können) wie folgt:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Call uidoc.Save
...einige Berechnungen auf/mit RT-Feldern
- danach erst starte ich den Java-Agenten ( mit Call agent.run(doc.NoteID) )
- der Agent stellt ebenfalls einige Berechnungen an und schreibt diese Ergebnisse in
verschiedene Text-Felder des Dokumentes
- wenn ich noch im Java-Agenten nach dem Füllen der Text-Felder den Befehl doc.Save() aufrufe,
erhalte ich einen Replikations-Konflikt, weil ich das aktuelle Dokument bereits in Lotus Script
initialiert und gespeichert habe
- lasse ich im Java-Agent den Befehl doc.Save() weg, läuft der Agent ohne Probleme, aber
nach Schließen (und vorherigem Speichern mit Call uidoc.Save) und Neu-Öffnen des Dokumentes
sind die Felder, die der Agent gefüllt haben sollte, leer!!
Warum werden die Änderungen, die der Java-Agent im Dokument vornimmt, nicht gespeichert, obwohl ich vor dem Schließen des Dokuments in Lotus Script nochmal speichere (mit Call uidoc.Save)?
Ich hoffe, ich habe mein Problem deutlich genug ausgedrückt und ihr könnt mir helfen
Gruß, Simon
koehlerbv:
Simon, ich weiss nun nicht genau, was Du da treibst, aber Du hast auf jeden Fall ein Verständnisproblem mit Back- und FrontEnd.
Beispiel:
- Du hast ein NotesUIDocument.
- Daran änderst Du etwas und speicherst das via FrontEnd.
- Wenn Du gleichzeitig (und vor allem :VORHER !) ein Backend-Dokument instantiiert hast, bekommt as davon absolut gar nichts mit.
Wenn wir helfen sollen: Löse bitte für uns argumentativ Dein Backend-/FrontEnd-Handling auf.
Bernhard
PS: Warum ist Dein betreffender Agent eigentlich in Java geschrieben ?
haeppchen:
Hallo Bernhard,
der Unterschied zwischen Back- und Frontend ist mir sehr wohl geläufig.
Das Problem ist, dass ich mit Java, also auch mit dem Java-Agenten nur Backend-Operationen in Notes ausführen kann.
Ich speichere zunächst das Dokument via Frontend, weil ich den Inhalt einiger RichText-Items überprüfen muss (die mir durch mein Zwischen-Speichern dann zur Verfügung stehen).
Anschließend mache ich ein paar Abfragen und gebe Fehlermeldungen, wenn die RichText-Felder bspw. leer sind.
Ist dies nicht der Fall (keine Fehlermeldung), dann lasse ich den Java-Agenten ausführen.
Der kann ja wie gesagt nur Backend-Operationen.
Wie soll ich also das aktuelle Dokument in Java anders initialisieren als ich es bisher tue??
P.S.: Ich nutze Java u.a. deshalb, weil ich einige Strings des Dokumentes mit einem Tokenizer durchlaufen muss, so was gibts ja in Notes leider nicht.
max.power:
Hi Simon!
--- Zitat von: haeppchen am 14.03.05 - 00:31:23 ---- bevor ich den Agenten starte, initialisiere ich das aktuelle Dokument und speichere es
(eine Art Zwischenspeichern, um auf RichText-Felder zugreifen zu können) wie folgt:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.CurrentDocument
Call uidoc.Save
...einige Berechnungen auf/mit RT-Feldern
- danach erst starte ich den Java-Agenten ( mit Call agent.run(doc.NoteID) )
--- Ende Zitat ---
Diese Berechnungen auf/mit RT-Feldern im uidoc, also bevor du den Java-Agent startest, verändern doch das Dokument, oder? Somit müsste vor dem Aufruf des Agents nochmals ein uidoc.Save her....
Oder machst du das eh?
LG,
Max
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln