Das Notes Forum

HCL Notes / Domino / Diverses => Entwicklung => Thema gestartet von: Obrac am 09.06.25 - 09:59:32

Titel: Java-Agent über LS starten
Beitrag von: Obrac am 09.06.25 - 09:59:32
Hallo zusammen,

ich arbeite gerade an der Einbindung von iText-Bibliotheken, um PDFs im Backend erstellen zu können. Das funktioniert erst einmal ganz gut. Was mir aber Sorgen macht, ist der Auslöser, um die Java-Agenten im Frontend zu starten. Ich möchte über einen Button (Dokument und Ansicht) den Java-Agenten starten. Der Buttoncode ist simpel und bei LS-Agenten funktionabel:

Code
Sub Click(Source As Button)
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim agent As NotesAgent
	
    ' Aktuelle Datenbank oder eine andere Datenbank auf dem Server referenzieren
	Set db = session.CurrentDatabase ' Falls der Agent in einer anderen DB ist: Set db = session.GetDatabase("ServerName", "Datenbank.nsf")
	
    ' Agent mit Namen aufrufen
	Set agent = db.GetAgent("agiText") ' Name des Agenten anpassen
	
    ' Agent auf dem Server starten
	Dim result As Integer
	result = agent.RunOnServer()
	
End Sub

Der Agent agiText ist als zeitgesteuert (nie) konfiguriert. Er soll eine Textdatei in einen Ordner legen. Wenn ich ihn über das Menü Aktionen ausführen, macht er, was er soll. Hier der Vollständigkeit halber der das Java des Agenten:

Code
import java.io.FileWriter;
import java.io.PrintWriter;
import lotus.domino.AgentBase;

public class JavaAgent extends AgentBase {
  public void NotesMain() {
    try {
      String filePath = "C:\\Temp\\test.txt";
      FileWriter fw = new FileWriter(filePath);
      PrintWriter pw = new PrintWriter(fw);

      pw.println("Java-Agent wurde erfolgreich ausgeführt!");
      pw.close();
      fw.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Wenn ich nun also den Agenten über den Button in der Ansicht starten will, passiert gar nichts. Der Buttoncode läuft bis zum Ende ohne Fehlermeldung durch, der Agent wird aber nicht ausgeführt. Noch interessant: Im Reiter "Sicherheit" des Agenten kann ich nichts auswählen. Das Optionsfeld ist nicht anklickbar. Könnte hier das Problem liegen?
Titel: Antw:Java-Agent über LS starten
Beitrag von: Werner Götz am 10.06.25 - 07:00:29
Der Agent soll ja am Server laufen, das ist also anders als beim Aufruf über das Menü Aktionen.
Steht was im Server-Log?

Am Server gibt es auch ein Verzeichnis c:\temp?

-Werner
Titel: Antw:Java-Agent über LS starten
Beitrag von: Obrac am 10.06.25 - 08:46:19
Du hast absolut recht und mich auf die Lösung gebracht. Das "RunOnServer()" ist das Problem. Dadurch findet er den Pfad nicht. Bei einem "Run()" funktioniert es. Manchmal sieht man den Wald vor lauter Bäumen nicht. Danke für den Hinweis.