Hintergrund-Anwendung „Hintergrund-Anwendungen im Workflow aufrufen“

Ü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 setJobQueueund den Benutzer mit setJobUserfestlegen, 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 null(0), dann können Sie auf die Angabe der Aktion verzichten. Andernfalls geben Sie den angezeigten Wert als Parameter ein. Achten Sie darauf, dass Sie die Hintergrund-Anwendung im genau demselben Kontext ausführen, wie sie später durch die Aktivitätsdefinition ausgeführt werden soll. So verwendet z. B. die Rechnungserzeugung unterschiedliche Aktionen, wenn sie für einen Vertriebsauftrag und einen Lieferauftrag aufgerufen wird. Hat die Hintergrund-Anwendung mehrere Parameter vom gleichen Datentyp, dann können Sie unterschiedliche Werte eingeben, um sie später im Eigenschaftendialog besser voneinander unterscheiden zu können.

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.

parameters.object:guid

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

parameters.object:guid

Wurde das Ereignis durch das Ändern einer Auftragsposition ausgelöst, dann steht die GUID des Auftrags im Ereignisparameter entity.

parameters.entity:guid

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.

Hinweis
Verwenden Sie diesen Parameter nicht gleichzeitig mit den Parametern DetailGuidund ObjectGuid.
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 HashMapmit, wie dieses Beispiel in der System-Skriptsprache zeigt:

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 create()deklariert ist, damit sie auf dem Karteireiter Anwendung verwendet werden kann.

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 OutputOptionsaufgeführt sind. Für Auftragserzeugungen ignorieren Sie ebenfalls technische Parameter, wieBatchRun, Ordersund ParallelComputing. Ist für eine Auftragserzeugung sowohl Date als auch DocumentDate im Eigenschaftendialog angegeben, dann ignorieren Sie DocumentDateund geben nur Datean.

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:

"Application=com.cisag.app.sales.invoice.log.Invoicing"

 

Czy ten artykuł był pomocny?