Benutzen sie die linke oder die rechte Maustaste, um zur jeweils vorherigen bzw. nachfolgenden Änderung zu gelangen.
erste | letzte ![]() |
| Änderungen von: | |
| bis: | |
| Typ: | |
erste | letzte ![]() |
Mit diesem Job können komplexe Java-Programmierungen am Webdesk durchgeführt werden.
Da hierfür Webdesk-Pakete geladen werden müssen ist es empfehlenswert sich hierfür mit Workflow in Verbindung zu setzen.
Dieses Beispiel zeigt ein einen minimalen Job, der eine Log-Ausgabe erzeugt (sowohl im Job-Logger, als auch im Standard Out)
package at.workflow.webdesk.custom.jobs;
import java.util.Date;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import at.workflow.webdesk.po.jobs.customJavaJob.CustomJavaJob;
import at.workflow.webdesk.tools.WebdeskLoggerUtil;
public class TestSystemOut implements CustomJavaJob {
private static final Logger logger = WebdeskLoggerUtil.getJobLogger(TestSystemOut.class);
public void run() {
System.out.println("Some Output on the Console from this Custom Java Job at " + new Date());
logger.info("Some output in the log");
}
}
}
}
Zweck: Dieser Job liest aktuell aktive Benutzer-Sitzungen aus dem Sitzungs- bzw. Session-Service aus und schreibt zusammengefasste Metadaten in einen Cache. Ziel ist eine schnelle Verfügbarkeit von Informationen über angemeldete Benutzer für Monitoring und Dashboard-Funktionen.
Funktionsweise (Kurz):
Hinweis: Die dargestellten Bean-Namen und Methoden sind beispielhaft und müssen an Ihre Webdesk-API/Version angepasst werden. Vor dem produktiven Einsatz in Testumgebungen prüfen und anpassen.
package at.workflow.webdesk.custom.jobs;
import java.util.List;
import org.apache.logging.log4j.Logger;
import at.workflow.webdesk.po.jobs.customJavaJob.CustomJavaJob;
import at.workflow.webdesk.tools.WebdeskLoggerUtil;
/**
* Beispiel-Job: Liest aktive Benutzer-Sessions aus und schreibt eine kompakte
* Repräsentation in den Applikations-Cache.
*/
public class WriteActiveUserSessionsToCache implements CustomJavaJob {
private static final Logger logger = WebdeskLoggerUtil.getJobLogger(WriteActiveUserSessionsToCache.class);
public void run() {
logger.info("Start WriteActiveUserSessionsToCache");
try {
// Hinweis: Bean-Namen und Typen an Ihre Installation anpassen
// Beispiel: Object sessionService = SpringContext.getBean("PoSessionService");
Object sessionService = null; // TODO: app-spezifische Session-Bean holen
Object cacheService = null; // TODO: Cache-Bean holen (z. B. "CacheService")
// Pseudocode: aktive Sessions abfragen
// List sessions = ((PoSessionService)sessionService).findActiveSessions();
List sessions = null; // TODO: Ersetzen durch echte Abfrage
if (sessions == null || sessions.isEmpty()) {
logger.info("Keine aktiven Sessions gefunden");
} else {
for (Object s : sessions) {
// TODO: Session-Objekt in eine kompakte Struktur übersetzen
// Beispiel:
// String personId = ((Session)s).getPersonId();
// String userName = ((Session)s).getUserName();
// Date lastAccess = ((Session)s).getLastAccess();
// String clientIp = ((Session)s).getClientIp();
// Ergebnis-Objekt bauen und in Cache schreiben
// ((CacheService)cacheService).put("activeSession:" + personId, summaryObject);
}
logger.info("Gespeichert {} Sessions in Cache", sessions.size());
}
} catch (Throwable t) {
logger.error("Fehler beim Schreiben der aktiven Sessions in den Cache", t);
// Je nach Job-Framework: Fehler weiterwerfen oder behandeln
throw new RuntimeException(t);
}
logger.info("Ende WriteActiveUserSessionsToCache");
}
}
Weiteres Vorgehen:
| Mime Type | text/xml | ![]() | text/xml |
| Datei-name | ![]() | ||
| Größe (in Bytes) | 1074 | ![]() | 5185 |
|
Version 6 von Gabriel Gruber
am 09.11.25 12:48:34 Name: Job Java Job Variante: main - default Status: Veröffentlichung | ![]() |
Version 7 von Gabriel Gruber
am 09.11.25 13:02:23 Name: Job Java Job Variante: main - default Status: Veröffentlichung |