Das Notes Forum
Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Harald Wendt am 22.09.11 - 11:54:09
-
Öffne ich die Datenbank unter Notes funktioniert der Agent einwandfrei, öffne die Datenbank im Browser und löse dort diese Aktion aus, die mir einen Feldwert im ausgewählten Dokument ändern soll, wird leider nichts geändert.
Der Agent wird über eine Schaltfläche in einer Ansicht auf ausgewählte Dokumente ausgelöst.
Leider tut er nicht das, was ich erwarte. Er ändert mir den Feldwert nicht.
Wenn ich das Dokument (im Browser) öffne und dann den Agenten auslöse, dann bekomme ich mein gewünschtes Ergebnis.
Nun, ich bin in Javascript nicht so bewandert, aber was ist denn an dem Agent falsch, habe ich etwas übersehen?
.
.
Ich habe in dem Agenten folgenden Code hinterlegt.
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
DocumentCollection dc = agentContext.getUnprocessedDocuments();
Document doc = dc.getFirstDocument();
while (doc != null) {
doc.replaceItemValue("Deleted","1");
doc.save(true, false);
doc.putInFolder("(Trash)");
agentContext.updateProcessedDoc(doc);
doc = dc.getNextDocument(doc);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
-
Ein Javaagent wird bei dir durch den Client ausgeführt, das funktioniert so im Browser nicht, im Browser gehen auch kein LotusScript! Kann ja der Browser auch gar nicht kennen ;) Java im Browser geht nur als Applet.
Deine Web-Aktion muss logisch gesehen anders laufen als wie es in Notes geschieht, d.h. dein Code muss im Backend ausgeführt werden. Das geht entweder über ein form.submit() und einem WebQuerySave-Agent oder über einen speziell zusammengebastelten Agentenaufruf.