Hallo zusammen,
ich habe ein kleines Problem bei dem ihr mir bestimmt helfen könnt.
Es geht um folgendes:
Ich habe mit Java einen Taschenrechner gebaut, und will jetzt per Button das Ergebnis in ein Feld des geöffnete NotesDocument schreiben.
Ich starte den Java Agenten mit einem LS-Notes Agenten, da ich dachte, das ich so besser die Rückgabe kontrollieren und weiter verarbeiten kann.
Hier der Auszug aus meinem Java Agent:
public class JavaAgent extends AgentBase {
private Calculator calc = null;
public void NotesMain() {
//Aufruf des Rechners
calc = new Calculator(this);
while(calc != null) {
try {
//einfachmal ein wenig schlafen, so lange Eingabemaske offen
Thread.sleep(1000 * 10);
System.out.println("snoozing...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void callBack(double callBackResult) {
try {
NotesThread.sinitThread();
Session session = this.getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Agent ag = agentContext.getCurrentAgent();
Document doc = db.getDocumentByID(ag.getParameterDocID());
// Ausgaben der DOC ID
System.out.println("Doc in JEE:" + doc.getNoteID());
//schreib in das Feld Test den Wert aus CallBackresult
doc.replaceItemValue("test", ""+callBackResult);
//Mal schauen was drin steht
System.out.println("Doc test:" + doc.getItemValueString("test"));
doc.save();
//Rechnerfesnter schließen
calc.window.dispose();
calc = null;
NotesThread.stermThread();
} catch (NotesException e) {
e.printStackTrace();
}
}
Hier der LS-Agent:
Set uiDoc = ws.currentDocument
Set db = session.CurrentDatabase
Set doc = db.Createdocument()
Call doc.save(True, true)
Set agent = db.GetAgent( "(Calculator)")
'Java agenten aufrufen und Doc übergeben
Call agent.run(doc.NoteID)
'Hier erwarte ich eigentlich die Rückgabe aus dem Testfeld, das ich in Java schreibe
MsgBox "Ich bin das Ergebnis:" + CStr(Doc.test(0))
Was mach ich den falsch? vermutlich recht viel :-) Aber ich denke mir doch wenn ich mir das neu erstellte Dokument hole, in Java ein Wert in ein Testfeld schreibe, was ja auch funktioniert und es mir vorne auslesen will, das der Wert dann da sein sollte. Ich bekomme aber eine leere Messagebox. Kann ich das überhaupt so machen?
Vielen lieben Dank,
seal