Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: manuel am 11.11.02 - 12:25:00
-
Hallo !
Ich will aus einem Java-Applet heraus ein neues Dokument mit einer bestimmten Maske im Notes erstellen. Es gibt in Java den Befehl applet.getAppletContext().showDocument(), dem eine URL übergeben werden muss. Also erstelle ich mir diese im vorhinein mit folgender Zeile
String url_str = dbNotes.getURL().substring(0, dbNotes.getURL().indexOf('?')) + "/MReservation?OpenForm";
Die schaut dann umgesetzt so aus
notes:///__C1256C6A004B0EC6.nsf/MReservation?OpenForm
Also nach notes:// kommt der Server, in meinem Fall ist es Lokal, also kommt danach gleich wieder ein /. Anschließend die Datenbank und der Befehl (?OpenForm) zum öffnen der Maske MReservation.
In der Praxis funktioniert das dann auch einigermaßen gut, aber eben nur einigermaßen. Beim öffnen der Maske erscheint gleich zu Beginn eine Fehlermeldung "Eintrag im Index nicht gefunden." Wenn ich diese Maske nun schließe erscheint erneut eine Fehlermeldung "Ausgewählter Befehl kann nicht ausgeführt werden."
Und dann stürzt Notes komplett ab "Fehler in Anwendung .... Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden ..."
Hat nun jemand von euch eine Idee, wie ich durch solch einen URL Befehl (oder auch auf eine andere Weise) aus einem Java-Applet heraus ein neues Dokument einer bestimmten Maske erstelle? Wenn ich ?OpenForm verwende, muss vorher ein Dokument erstellt werden?
Schönen Gruß
Manuel
-
Hallo, weil ich faul bin schick ich dir einen kompletten Agenten.
Der liest bei mir html-Seiten von einer URL (pdoc) und packt sie in ein Notesdocument (ndoc).
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
Database db = agentContext.getCurrentDatabase();
Agent agent = agentContext.getCurrentAgent();
Document pdoc = db.getDocumentByID(agent.getParameterDocID());
Document ndoc = db.createDocument();
// (Fügen Sie Ihren Code hier ein)
URL url=null;
try {
url = new URL(pdoc.getItemValueString("url"));
}
catch (Error e) {e.printStackTrace();
}
// Create the Connection
URLConnection connection = url.openConnection ();
// Setup the connection parameters and request properties
connection.setDoOutput (false);
// Get the URL contents
String contentLine; String contents = "";
BufferedReader reader = new BufferedReader (new InputStreamReader
(connection.getInputStream()));
while (null != (contentLine = reader.readLine ())) {contents += contentLine;
}
//System.out.println(contents) ;
ndoc.replaceItemValue ("form", "DISK");
ndoc.replaceItemValue ("disknr", pdoc.getItemValueString("disknr"));
ndoc.replaceItemValue ("url", pdoc.getItemValueString("url"));
ndoc.replaceItemValue ("disktext", contents);
ndoc.save(true,false);
} catch(Exception e) {e.printStackTrace();
}
}
}
Gruß aus Berlin
-
Hallo tower
Danke für den Code, nur das ganze spielt sich im Backend ab. Ich bräuchte nun eine Möglichkeit, wie ich ein neu erstelltes Dokument (wie zB ndoc) ins Frontend von Notes (also nicht Web) öffne.
Schönen Gruß
Manuel