Domino 9 und frühere Versionen > ND6: Entwicklung
Probleme mit Java Agent in Notes
sschroeder:
Hallo!
Ich bin das erste mal im Forum und arbeite auch erst seit kurzem mit Notes. Mein Aufgabe ist es eine Datenbank webfähig zu machen. Dazu schreibe ich Agenten von LotusScript in Java um und Domino Server 5 und Domino Designer 6 sind im Einsatz. Ich habe einen einfachen Java-Agenten geschrieben, der lediglich in dem aktuell aufgerufenen Dokument einen Wert in ein Feld eintragen soll. Sowie abspeichern und im aktuellen Dokument die Änderung auch anzeigen soll. Der Agent wird ausgeführt über eine Schaltfläche mit der Formel:
@Command([ToolsRunMacro]; "(Test)")
Das Problem ist, wenn ich die Datenbank im InternetExplorer aufrufe und auf die Schaltfläche klicke funktioiert der Agent einwandfrei, aber wenn ich die Datenbank in Notes öffne zeigt er die Änderung im Feld nicht an. Er wird aber gestartet!
Code des Agenten:
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session s = getSession();
AgentContext agentContext = s.getAgentContext();
Document docA= agentContext.getDocumentContext();
// aktuell bearbeitetes Dokument holen
docA.save();
//aktuelle Änderungen des Benutzers speichern
String jahr = "2004";
// Variable die Text zum Ändern des Feldes enthält
docA.replaceItemValue("Nummer", jahr);
// bei Dokument in Feld Nummer Variable Jahr einfügen
docA.save();
// Zur Fehlerüberprüfung Ausgaben in der Java-Konsole
System.out.println("Inhalt Variable: "+jahr);
System.out.println("Inhalt Feld Nummer des Dokumentes: "
+docA.getItemValueString("Nummer"));
} catch(Exception e) {
e.printStackTrace();
}
}
}
Wenn ich mir den Inhalt des Feldes "Nummer" in der Java Konsole zum Schluß des Agenten ausgeben lasse (einfach nur zur Fehlerüberprüfung), zeigt er seltsamerweise korrekt den Wert an den ich mit der Variable dort rein eingefügt habe! Das heißt der Agent wird korrekt ausgeführt und der eingefügte Text befindet sich auch in dem Feld, doch ich bekomme es nicht angezeigt!
Ich habe mittlerweile alles versucht und komme nicht mehr weiter, ich hoffe mir kann jemand helfen. Übrigens ein refresh des aktuellen Dokumentes würde glaube ich auch nicht helfen, denn wenn ich den Agenten ausführe und drücke danach selbst F9 zum aktualisieren, funktioniert es auch nicht!
Danke schon im voraus!
qojote:
Hi
Schau dir mal in der Hilfe in script die Frontend und Backend Klassen an.
Mit dem Java Agent schreibst du den Wert ins backend also nicht sichtbar im Frontend.
Bei den Java Klassen gibt es nur Methoden fürs Backend.
Gibt es Gründe das du das in Java machen mußt?
In Lotus script kannst du das frontend refreshen.
Gruß
Qojote
sschroeder:
Danke dir erstmal für dein Interesse.
Ich soll halt die bestandene Datenbank, die mit Agenten in LotusScript geschriebenist, webfähig machen. Da man LotusScript Agenten im InternetExplorer nicht aufrufen kann bzw. sie von dort aus nicht funktionieren soll ich nun die LotusScript Agenten in Java umschreiben.
Ich weiß das man mit Java nur die Backendklassen bearbeiten kann (nur LotusScript fällt ja wegen dem oben genannten raus) aber ich komme ja durch den Aufruf agentContext.getDocumentContext auch an das aktuelle bearbeitete Dokument dran (also im Frontend). Und das komisch ist ja, finde ich, das der Agent im Web richtig funktioniert und das Ergebnis auch anzeigt (das heißt ja es geht eigentlich, oder?) nur im Notes Client nicht richtig.
Oder gibt es andere Möglichkeiten wie ich eine Notes Datenbank webfähig mache?
animate:
--- Zitat von: sschroeder am 02.07.04 - 09:14:23 ---Da man LotusScript Agenten im InternetExplorer nicht aufrufen kann bzw. sie von dort aus nicht funktionieren
--- Ende Zitat ---
wer sagt denn sowas? Das ist eine Ente.
Agents können nicht vom Browser ausgeführt werden, aber aufrufen kannst du sie.
sschroeder:
@Thomas Völk
Also heißt das, ich brauche nicht alle Agenten in Java umschreiben, sondern kann die bestehenden LotusScript-Agenten auch im Web nutzen?? Wie geht das, oder was muß ich dazu tun? Damit würde mir eine Menge Arbeit erspart bleiben! Ich muß einen Java bzw. dann einen LotusScript Agenten über eine Schaltfläche aufrufen können. Der Agent ändert den Inhalt eines Feldes des aktuellen Dokumentes und das ganze muß bei dem Aufruf der Datenbank in einem InternetExplorer funktionieren.
Wenn ich den schon vorhandenen Agenten der in LotusScript geschrieben wurde, wie oben beschrieben aufrufe, also die Datenbank über den InternetExplorer öffne und über einen Klick auf die Schaltfläche den Agenten anstoße zeigt er mir jedesmal: "Die Seite kann nicht angezeigt werden".
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln