Die Bedienoberfläche für die Jobs zeigt alle Jobs mit Ihrem aktuellen Status, dem Jobnamen, der zugehörigen Jobdefinition, dem Worker, der den Job ausführt, bzw. ausgeführt hat und den aktuell möglichen Aktionen an. Unterhalb der Liste wird angezeigt, nach wie vielen Tagen Jobs entfernt werden. Jobs, die älter als die angezeigte Anzahl an Tagen sind, werden entfernt. Die Anzahl der Tage ist durch einen Eintrag in der Initialisierungsdatei (ec.ini) einstellbar (siehe de.eplan.eec.jobserver.cleanup.days).
Die Liste zeigt die Jobs standardmäßig chronologisch sortiert an, dabei sind die aktuellsten oben. Die Sortierung lässt sich durch anklicken der Spaltenüberschriften Job-Definition und Worker nach diesen Einträgen ändern.
Die Liste kann mit Hilfe von Aktionen manipuliert werden:
Aktion | Symbol | Bedeutung |
---|---|---|
Lösche Job | Entfernt einen Job aus der Liste. | |
Bearbeite als Nächstes | Schiebt den Job an die Stelle des ältesten Jobs, sodass dieser als Nächstes abgearbeitet wird. | |
Öffne Job-Fortschrittsfenster | Öffnet ein Popup-Fenster mit den Fortschrittsinformationen zum Job. | |
Öffne Job-Protokollfenster | Öffnet das Job-spezifische Protokoll. |
Die Jobs können nach ihrem Status ein- und ausgeblendet werden, indem die gleichnamigen Filter markiert werden.
Für die Jobs können die folgenden Zustände angezeigt werden:
Status | Symbol | Bedeutung |
---|---|---|
Queued | Der Job Server ist gestartet, der Job befindet sich in der Warteschlange. Sowie ein Slot des Job Servers frei wird, startet der nächste Job in der Warteschlange. | |
Running | Der Job Server verarbeitet einen anstehenden Job. | |
FinishedSuccessfully | Der Job wurde vom Job Server erfolgreich abgeschlossen. Die Dateien des Jobs wurden in das vereinbarte Verzeichnis kopiert. | |
FinishedInError | Während der Verarbeitung des Jobs hat der Job Server einen Fehler gemeldet. Die Bearbeitung wurde abgebrochen und die Dateien des Jobs in das vereinbarte Verzeichnis kopiert (siehe failedFolder). Es kann eine E-Mail an vorbestimmte Adressen versendet werden. Der Inhalt des Fehlerprotokolls kann als Text in die E-Mail eingefügt werden (siehe jobdefinition). | |
Cancelled | Während der Ausführung ist ein Job durch den Anwender abgebrochen worden. |
Zusätzlich zu diesen Zuständen kann der Job
- eine eindeutige Job-ID anzeigen,
- einen Jobnamen anzeigen. Hierzu gibt es zwei Fallunterscheidungen:
- fileTrigger: Befindet sich der Job in der Warteschlange, wird der Name der Datei angezeigt, die den FileTrigger ausgelöst hat. Sobald der Job die Warteschlange verlässt, wird der, in der Jobdefinition angegebene, Name um den Zeitstempel erweitert und angezeigt.
- webserviceTrigger: Befindet sich der Job in der Warteschlange, kann kein Dateiname angezeigt werden. Über den Post Parameter js.queuedJobName kann ein Jobname übergeben werden, der während dieses Zustands angezeigt wird. Beispielsweise wird durch die URL http://localhost:8787/request/jobdef_web?js.queuedJobName=Job with SAP-ID: 2029338&file=C:\noscan\models\import-export-model\sample\MyProj.px der Jobname Job with SAP-ID: 2029338 angezeigt. Sowie der Job die Warteschlange verlässt, wird der Jobname, der in der Jobdefinition angegeben ist, um den Zeitstempel erweitert und angezeigt.
- erzeugte Dateien für den Download auflisten (siehe JobServer.MarkFileForDownloadCommand).
- einen detaillierteren Statustext besitzen. Dieser kann während der Ausführung mittels Command (siehe JobServer.SetProgressMessageCommand) verändert werden.
Zusätzlich zu diesen Zuständen kann über ein natives Command ein beliebiger Status-Text ausgegeben werden.
Außerdem können weitere Informationen angezeigt werden, die während der Ausführung des Jobs über ein Skript erzeugt und zum Browser übertragen werden.
Beispielsweise können verschiedene Ergebnisse der Erzeugung aufgelistet werden:
Die Daten für die Anzeige werden als Map übergeben. Die API IJobAPI implementiert eine Methode mit dem Namen getResultData(), welche initial eine Map zurückgibt. An diese Map sind die anzuzeigenden Informationen anzuhängen.
import com.mind8.mechatronic.skill.api.IJobAPI;
resultData = IJobAPI.DEFAULT.getResultData();
data = [
["Station 1 überprüft": "Material vorhanden"],
["Station 2 überprüft": "Material nicht vorhanden"],
["Station 3 überprüft": "Material vorhanden"]
];
resultData.put("Materialüberprüfung der Stationen", data);
Tipp:
Die Methode resultData.put() kann grundsätzlich beliebige Objekte verarbeiten. Da die übergebenen Objekte in das JSON-Format konvertiert werden, sollten nur einfache Objekte, beispielsweise List, Map, String verwendet werden.
Mit Hilfe einer HTML-Datei kann das Aussehen der Statusanzeige an kundenspezifische Vorgaben angepasst werden (siehe jobStatusHtml).