Über eine Aktivitätsdefinition kann eine Hintergrund-Anwendung als Verarbeitungsauftrag gestartet werden. Dazu müssen die Parameter im Entwicklungsobjekt der Hintergrund-Anwendung beschrieben sein. Nicht alle Anwendungen erfüllen diese Voraussetzungen.
In diesem Dokument wird beschrieben, wie Sie mithilfe der Hintergrund-Anwendung Hintergrund-Anwendungen im Workflow aufrufen eine Hintergrund-Anwendung aufrufen können, auch wenn für diese nicht alle Parameter beschrieben sind. Voraussetzung für den Aufruf ist, dass die von der Aktivitätsdefinition verwendete Skriptsprache die Datentypen der Hintergrund-Anwendung unterstützt.
Weitere Informationen dazu, wie Sie Anwendungen in Aktivitätsdefinitionen aufrufen können, erhalten Sie in der Dokumentation Aktivitätsdefinitionen im Kapitel Karteireiter „Anwendung“.
Begriffsbestimmung
- Aktivitätsdefinition – Eine Aktivitätsdefinition ist die Vorlage für die aus ihr erzeugten Aktivitäten. Ist eine Aktivitätsdefinition aktiviert, dann erzeugt die Workflow-Engine beim Eintreten des registrierten Ereignisses eine neue Aktivität, sofern die Übergangsbedingung erfüllt ist. Aktivitätsdefinitionen sind unabhängig von der OLTP-Datenbank und dem System, in dem sie erfasst wurden, da sie weder System- noch OLTP-spezifische Daten enthalten. Aktivitätsdefinitionen werden in der Repository-Datenbank gespeichert.
- Hintergrund-Anwendung – Eine Hintergrund-Anwendung ist eine Anwendung, die ohne Interaktion mit einem Benutzer ausgeführt wird. Sie kann entweder durch einen Verarbeitungsauftrag, durch einen CORBA-Aufruf oder durch eine andere Anwendung geöffnet werden.
- Verarbeitungsauftrag – Ein Verarbeitungsauftrag umfasst die notwendigen Informationen für die verzögerte Ausführung einer Hintergrund-Anwendung durch eine Verarbeitungs-Warteschlange.
Beschreibung
Die Hintergrund-Anwendung Hintergrund-Anwendungen im Workflow aufrufen (com.cisag.app.general.log.Activity2BatchJob) legen Sie in einer Aktivitätsdefinition im Karteireiter Anwendung als Anwendung für die Bearbeitung fest. Die Aktivitätsdefinition muss als Bearbeiter den Eintrag Verarbeitungsauftrag ausgewählt haben. Legen Sie die Parameter für die Hintergrund-Anwendung fest.
Zusätzlich geben Sie die Parameter der Hintergrund-Anwendung, die aufgerufen werden soll, und deren Werte in den Deklarationen der Aktivitätsdefinition als HashMap mit. Weitere Informationen dazu finden Sie in der Beschreibung des Parameters Parameters
.
Zudem müssen Sie in den Deklarationen die Verarbeitungswarteschlange mit setJobQueue
und den Benutzer mit setJobUser
festlegen, sofern diese nicht im Customizing hinterlegt sind.
Beispiel in der System-Skriptsprache:
setJobQueue("JOBQUEUE01"); setJobUser("MAX");
Die Hintergrund-Anwendung hat folgende Parameter:
Parametername | Beschreibung |
Action |
Verwenden Sie diesen Parameter, um eine bestimmte Aktion einer Hintergrund-Anwendung aufzurufen. Aktionen werden durch eine Zahl identifiziert.
Um die korrekte Aktion herauszufinden, können Sie die Hintergrund-Anwendung zunächst im Hintergrund ausführen und anschließen im Eigenschaften-Dialog des Verarbeitungsauftrags im Karteireiter Auftrag im Feld Aktion die Aktion nachlesen. Steht dort der Wert |
DetailGuid |
Ist die Hintergrund-Anwendung eine Auftragserzeugung mit Bezug zu einer Auftragsposition, dann geben Sie in diesem Parameter die GUID der zu verarbeitenden Auftragsposition an. Verwenden Sie diesen Parameter immer gemeinsam mit dem Parameter ObjectGuid . Bei einem Ereignis vom Typ Business Entity steht die GUID der Auftragsposition im Ereignisparameter object .
|
ObjectGuid |
Ist die Hintergrund-Anwendung eine Auftragserzeugung mit Bezug zu einem Auftrag, dann geben Sie in diesem Parameter die GUID des zu verarbeitenden Auftrags an. Bei einem Ereignis vom Typ Business Entity steht die GUID des Auftrags im Ereignisparameter object
Wurde das Ereignis durch das Ändern einer Auftragsposition ausgelöst, dann steht die GUID des Auftrags im Ereignisparameter
|
ObjectOQL |
Ist die Hintergrund-Anwendung eine Auftragserzeugung mit Bezug zu mehr als einem Auftrag, dann können Sie in diesem Parameter ein OQL-Statement mitgeben, das als Rückgabewerte die GUIDs der zu verarbeitenden Aufträge enthält, wie in diesem Beispiel Lieferaufträge und Kommissionen.
"SELECT o:guid FROM com.cisag.app.sales.obj.ShippingOrder o JOIN com.cisag.app.sales.obj.PickingOrder po ON po:guid=o:pickingOrder JOIN com.cisag.app.sales.obj.PickingOrderType pot ON pot:guid = po:type WHERE po:number = '" + parameters.object:number + "' AND pot:code= '" + parameters.object->Type:code + "'" Wenn Sie in der SELECT-Anweisung zwei GUIDs auswählen, dann wird die erste GUID als GUID des Auftrags und die zweite GUID als GUID der Auftragsposition interpretiert.
|
Parameters |
In diesem Parameter geben Sie der Hintergrund-Anwendung eine Liste mit Parametern und deren Werte mit. Die Parameter für das Entwicklungsobjekt der Hintergrund-Anwendung finden Sie in der Anwendung Entwicklungsobjekte in dem unteren Karteireiter Aktion des Karteireiters Editor.
Sind die Parameter im Entwicklungsobjekt nicht beschrieben, oder sind die zu übergebenden Werte nicht selbsterklärend, wie z. B. bei dem Parameter Prozess der Auftragserzeugungen, dann können Sie die Hintergrund-Anwendung zunächst im Hintergrund ausführen und anschließend den Eigenschaften-Dialog des Verarbeitungsauftrages aufrufen. Dort können Sie den übergebenden Wert im Karteireiter Auftrag unter der Rubrik Parameter einsehen. Die Parameter und deren Werte geben Sie in den Deklarationen der Aktivitätsdefinition als var params as HashMap; function create() { params["Process"]:=9; params["SummaryLevel"]:=1; params["Date"]:=today(); } Achten Sie darauf, dass die Parameterliste außerhalb der Funktion Für Hintergrund-Anwendungen, deren Parameter im Entwicklungsobjekt nicht deklariert sind, entnehmen Sie dem Eigenschaftendialog des Verarbeitungsauftrags auch die verwendeten Parameter. Da eine Hintergrund-Anwendung immer mit den Ausgabeeinstellungen des Benutzers ausgeführt wird, in dessen Namen der Verarbeitungsauftrag gestartet wurde, sollen Sie keine Parameter verwenden, die unter |
ProcessParameters |
Diese Parameter steuern, welche Hintergrund-Anwendung aufgerufen wird. Geben Sie den technischen Namen der Anwendung als Zeichenkette ohne Leerzeichen wie im folgenden Beispiel an:
|