Hallo zusammen,
ich versuche einen bestehenden Java Agenten im Domino Designer für eine neue Datenbank anzupassen. Habe schon viel mit Agenten in Lotus Script gearbeitet und bin ziemlich fit in Java - aber die Verknüpfung von Lotus und Java ist für mich was neues.
Probleme, die ich habe:
- Wie kann man einen Java Agent debuggen (meine Recherchen ergaben nichts nützliches)?
- Wo landen die System.out.println-Anweisungen (würde fürs Erste auch helfen beim debuggen)?
- Ich habe eine Zeile JoptionPane.showMessageDialog()... eingebaut, aber die kommt auch nicht an...
Um erst mal zu verstehen, wie das bei Java Agenten abläuft, habe ich ein HelloWorld-Beispiel versucht. Wenn ich diesen kompilieren will bekomme ich folgenden Fehler:
error: package lotus.notes does not exist
Habe der PATH-Variablen bereits folgendes hinzugefügt:
C:\Program Files (x86)\IBM\Lotus\Notes\jvm\lib\ext\Notes.jar;
import lotus.notes.*;
public class JavaAgent extends lotus.notes.AgentBase
{
public void NotesMain()
{
try
{
Session s = this.getSession();
AgentContext ctx = s.getAgentContext();
Name n = s.createName(ctx.getEffectiveUserName());
String st = n.getCommon();
System.out.println("Hello " + st + "!");
}
catch (Exception e)
{ e.printStackTrace(); }
}
}
Aufruf:
javac JavaAgent. java
Noch eine Frage zur korrekten Initialisierung einer Datenbank.
Der Aufruf
Session session = getSession();
String server = session.getCurrentDatabase().getServer();
Database sourceDatabaseAD = session.getDatabase(server, "\\Version4\\datenbankname.nsf");
DocumentCollection selectedDocuments = sourceDatabaseAD.getAllDocuments();
Führt in Zeile 4 zu Fehler:
NotesException: Database CN=xxx/O=ee/C=de!!\Version4\datenbankname.nsf has not been opened yet
Wo kommen die !! im Namen her?
Erstmal: Server!!Datenbank ist die normale Schreibweise, wenn man beide zusammen speichert / verwendet. Das ist Standard Notes.
Aber wie kommst Du auf die Idee, den Pfad als "\\Version4\\datenbankname.nsf" anzugeben? Das ist NICHT Formelsprache, und das erste Zeichen muss eigentlich NIE ein Backslash sein:
Database sourceDatabaseAD = session.getDatabase(server, "Version4\datenbankname.nsf");
sollte wunderbar funktionieren.