Workflow-Variablen und Mappings
Überblick
Bei der Ausführung von Technical Workflows werden neben den Ein- und Ausgangsnachrichten der Module auch Workflow-Variablen mitgeführt. Workflow-Variablen sind Systemvariablen und selbst definierte Variablen. Variablen können Sie am Workflow in der Palette Variablen definieren oder im Variablen-Mapping-Dialog.
Workflow-Variablen sind nicht für das Speichern und Verarbeiten großer Datenmengen gedacht. Workflow-Variablen werden in den Arbeitsspeicher kopiert. Daher kann es vorkommen, dass der Arbeitsspeicher für die Workflow-Bearbeitung nicht ausreicht, wenn der Variableninhalt zu groß ist. Es wird daher dringend empfohlen, große Datenmengen in Eingangs- und Ausgangsnachrichten zu speichern und zu verarbeiten. Darüber hinaus ist es empfehlenswert, große Nachrichten zu teilen. |
Ab INUBIT 7.3 führt das Prüfen der Existenz von Variablen zu einer Fehlermeldung, wenn die entsprechende Variable nicht gefunden werden kann bzw. nicht deklariert ist. |
Einfache und komplexe Datentypen
Die INUBIT-Software unterstützt typisierte Variablen. Sie können Variablen mit einfachen oder komplexen Datentypen definieren.
Die komplexen Datentypen definieren Sie in einem XML-Schema, das am Workflow referenziert ist. Um ein XML-Schema in mehreren Workflows zu nutzen, können Sie das XML-Schema im Repository hinterlegen und referenzieren.
Variablenwerte validieren
Bei der Ausführung eines Workflows können Sie die aktuellen Variablenwerte gegen das referenzierte XML-Schema validieren lassen.
Siehe Variablenwerte validieren.
Gültigkeitsbereiche von Workflow-Variablen
Die Systemvariablen der INUBIT-Software sind global gültig, d.h. auch in Workflows, die mit Workflow Connector-Modulen verlinkt sind.
Für selbst definierte Variablen und Modulvariablen gilt:
-
Selbst definierte Variablen sind standardmäßig nur in dem Workflow gültig, in dem sie definiert sind, und werden nicht an verlinkte Workflows weitergegeben.
-
Sie können an jedem Workflow individuell festlegen,
-
ob und welche Variablen zurückgegeben werden sollen, wenn der Workflow synchron durch einen Workflow Connector aufgerufen wird.
-
ob und welche Variablen der Workflow beim Aufruf durch einen Workflow Connector erwartet.
Siehe Variablenübergabe bei verlinkten Technical Workflows konfigurieren.
-
-
Standardmäßig sind Variablen, die für Module innerhalb eines Scopes definiert sind, für den Workflow gültig, der den Scope enthält.
Um den Geltungsbereich einer Variablen auf den Scope zu beschränken, wählen Sie den Scope in der Auswahlliste Scope anstelle des Eintrags (Workflow). Damit ist die Variable nur innerhalb des Scope gültig und wird nicht an das dem Scope folgende Modul weitergegeben.Wenn Sie als Geltungsbereich einen Scope ausgewählt haben, wir das Register Übergabe bei Workflow-Aufruf ausgeblendet.
Variablen definieren
Überblick
Bevor Sie neue Variablen in einem Technical Workflow mit Werten belegen können, müssen Sie diese definieren.
Beim Definieren einer Variablen geben Sie an, welcher Typ von Informationen in dieser gespeichert werden sollen. Auf diese Weise ist garantiert, dass bestimmte Operationen mit dem aktuellen Inhalt der Variablen durchgeführt werden können.
Undefinierte Variablen können an nachfolgenden Modulen und in Workflows, die über Workflow Connectoren verknüpft sind, nicht verwendet werden.
Eingabe-/Ausgabevariablen definieren
Sie können beim Definieren einer Variablen direkt festlegen, ob diese als Eingabe- oder Ausgabevariable fungieren soll, wenn der aktuelle Workflow durch einen anderen Workflow aufgerufen wird.
Undefinierte Variablen finden und definieren
Undefinierte Variablen in Ihrem Workflow können Modulvariablen sein, die z.B. von einem File oder HTTP Connector im aktuellen oder einem verlinkten Workflow gesetzt wurden, oder auch selbst definierte Variablen, die aus einem verlinkten Workflow stammen. Diese undefinierten Variablen können Sie im Testmodus schnell finden und definieren.
Falls Sie den Testmodus nicht einsetzen können, nutzen Sie einen der Wege, die Variablen zu definieren.
Siehe
So gehen Sie vor
-
Testen Sie Ihren Prozess lokal.
-
Doppelklicken Sie einen Watch-Point, um die Ergebnisdatei anzuzeigen.
Hinter nicht-definierten Variablen werden Links angezeigt: -
Klicken Sie auf den Link Variable definieren.
Die Variable wird mit dem Typ des aktuellen Werts definiert und in der Tabelle in schwarzer Schrift dargestellt.
Variablen mit einfachem oder komplexem Typ definieren
So gehen Sie vor
-
Abhängig davon, ob Sie die Variable im Workflow oder direkt im Variablen-Mapping eines Moduls definieren möchten, führen Sie einen der folgenden Schritte durch:
-
Im Workflow:
-
Zeigen Sie das Diagramm in einem lokalen Verzeichnis an.
-
Klicken Sie in der Sidebar auf die Palette Variablen.
Die Palette wird angezeigt. -
Klicken Sie in der Werkzeugleiste auf .
-
-
Am Modul im Dialog Variablen-Mapping:
-
Legen Sie eine Abbildungsregel an, in der als Ziel oder Quelle Variable ausgewählt ist.
-
Klicken Sie neben der Option Variable auf .
Der folgende Dialog öffnet sich:
-
-
-
Markieren Sie die Checkbox Globale Variable, wenn Sie eine globale Variable definieren möchten.
Siehe Globale Variablen nutzen. -
Geben Sie den Namen der Variablen ein und fügen Sie ggf. einen Kommentar hinzu.
-
Legen Sie den Datentyp fest:
-
Variable mit einfachem Datentyp:
Wählen Sie einen Typ aus der Liste aus.Für Variablen, die ein Passwort enthalten sollen, verwenden Sie den Typ
is:password
. Der Variablenwert wird in diesem Fall verschlüsselt abgelegt und in der INUBIT Workbench maskiert dargestellt. Per Variablen-Mapping, XPath oder XSLT kann nicht mehr auf den Klartext-Wert zugegriffen werden. Möglich dagegen ist ein Mapping auf eine Passwort-Moduleigenschaft oder eine andere Passwort-Variable.Zum Zugriffsschutz auf Passwort-Propertys siehe Hinweise zu Quell- und Zielwerten im Abschnitt Funktionsprinzip des Variablen-Mappings.
Für Variablen, deren Inhalt maskiert dargestellt werden soll, bei denen aber ein Zugriff auf den Klartextinhalt per Variablen-Mapping, XPath oder XSLT möglich sein soll, verwenden Sie den Typ
is:maskedString
. Für Variablen, in denen Sie einen verschlüsselten Passwortwert ablegen wollen, wählen Sie den Typis:encryptedPasswordString
. Einer solchen Variable kann der verschlüsselte Wert eineris:password
- Variable oder einer Passwort-Moduleigenschaft zugewiesen werden. Umgekehrt kann man über eineis:encryptedPasswordString
-Variable auch wieder den Inhalt eineris:password
-Variable oder einer Passwort-Moduleigenschaft setzen. Auf den Wert eineris:encryptedPasswordString
-Variable kann beliebig zugegriffen werden, ein Entschlüsseln ist nicht möglich.Zum Mapping des Typs
is:encryptedPasswordString
siehe Hinweise zu Quell- und Zielwerten im Abschnitt Funktionsprinzip des Variablen-Mappings. Für Variablen, die beliebige XML-Dokumente enthalten sollen, wählen Sieis:anyElement
. -
Variable mit komplexem Datentyp basierend auf XML Schema:
-
Klicken Sie auf Erweitert.
Der Dialog wird um die Anzeige system-weiter und am Workflow definierter Schemas erweitert. -
Wählen Sie einen Datentyp aus.
Bei komplexen Datentypen wird die Struktur im Bereich Strukturvorschau angezeigt.
-
-
-
Klicken Sie auf OK, um die Variable zu speichern.
Die neue Variable wird in der Palette Variablen angezeigt.
Modulvariablen definieren
Einige Module setzen bei ihrer Ausführung Variablen oder erwarten bestimmte Variablen. Diese Modulvariablen werden am Modul gesetzt und müssen vor ihrer Verwendung an nachfolgenden Modulen definiert werden.
Siehe z.B.
-
AS2 Connector: Modulvariablen
-
File Connector: Modulvariablen
-
HTTP Connector: Parameter im HTTP Connector setzen und anzeigen.
So gehen Sie vor
-
Öffnen Sie den Dialog Variablendefinition, wie in Variablen mit einfachem oder komplexem Typ definieren beschrieben:
-
Klicken Sie auf den -Button.
Der Dialog wird erweitert.
Im Bereich Modulvariablen werden automatisch alle Module mit undefinierten Modulvariablen aufgelistet, die im aktuellen Workflow vorhanden sind. -
Wählen Sie das Modul aus, dessen Modulvariablen definiert werden sollen.
-
Mit der Anzeigen-Liste können Sie die angezeigten Modulvariablen zusätzlich filtern und festlegen, ob alle, nur Eingabevariablen oder nur Ausgabevariablen angezeigt werden sollen.
-
Wählen Sie in der Liste Name die gewünschte Modulvariable aus.
-
Fügen Sie gegebenenfalls einen Kommentar hinzu.
-
Klicken Sie auf OK, um den Dialog zu schließen.
Die Variable wird definiert und in der Variablen-Palette angezeigt.
Variablenwerte validieren
Sie haben folgende Möglichkeiten, Variablenwerte in einem Technical Workflow zu validieren:
-
Beim Variablen-Mapping
Wenn im Dialog Variablen-Mapping die Option Inhalte von geänderten Variablen validieren aktiviert ist und einer Variablen ein ungültiger, nicht zum XML Schematyp passender Wert zugewiesen wird, dann wird ein Fehler geworfen.
Siehe -
Mit einem Validate-Modul
Das Validate-Modul prüft ausgewählte Variablenwerte gegen die XML Schemas, die am Workflow angegeben sind oder in den WSDL-Dateien, die im Workflow verwendet werden.
Wenn die Validierung erfolgreich war, dann läuft der Prozess weiter. Andernfalls wird ein Fehler ausgegeben und das Validierungsergebnis als Teil der Fehlermeldung gesetzt.
Siehe Validate.
Variablen-Mappings testen
Sie können Variablen-Mappings testen und das Endergebnis in die Zwischenablage kopieren, um dieses in anderen Modulen wiederzuverwenden.
Voraussetzungen
Sie haben mindestens zwei Module im Workspace sowie Abbildungsregeln für ein Modul erstellt.
So gehen Sie vor
-
Doppelklicken Sie den V-Button, der angezeigt wird, wenn Sie mit dem Cursor auf dem Modul zeigen.
-
Klicken Sie auf , um den Testmodus zu aktivieren.
In den Quelldaten und Zieldaten im Bereich Ausgewählter Eintrag können Sie das Ergebnis des Variablen-Mappings einsehen, dass Sie gerade getestet haben.Sie können die Ausgangsdaten eines Variablen-Mappings in der Registerkarte Testmodus-Eingabedaten ohne Umstände verändern.
-
Klicken Sie auf die Registerkarte Testmodus-Endergebnis im rechten Fensterbereich.
Der Bereich Testmodus-Endergebnis wird angezeigt. Im Bereich Nachricht wird die Eingangsnachricht angezeigt. Im Bereich Workflow-Variablen können Sie alle Variablen und die Variablen anderer Abbildungsregeln einsehen.
Testmodus-Endergebnis von Variablen-Mappings kopieren
Wenn Sie das Testmodus-Endergebnis wiederverwenden möchten, können Sie es kopieren.
So gehen Sie vor
-
Klicken Sie auf im Bereich Testmodus-Endergebnis, um das Endergebnis in die Zwischenablage zu kopieren.
Sie können nun den Inhalt der Zwischenablage wiederverwenden. -
Schließen Sie das Fenster Variablen-Mapping.
-
Klicken Sie mit der rechten Maustaste auf ein anderes Modul und wählen Sie Startpunkt setzen.
-
Klicken Sie mit der rechten Maustaste im Workspace und wählen Sie Test mit Zwischenablageninhalt starten.
-
Doppelklicken Sie den Watch-Point.
Ein neues Fenster wird angezeigt. Sie können die Eingangsnachricht und die Variablen des bearbeiteten Moduls sehen.
Variablen in Diagrammen suchen
Mit der Suchfunktion können Sie auch in komplexen Diagrammen schnell herausfinden, an welchem Modul eine bestimmte Variable genutzt wird.
Durchsucht werden Variablen-Mappings, XSLT Converter und Workflow Controls wie z.B. Wait-, Receive- und Validate-Module.
So gehen Sie vor
-
Zeigen Sie das Diagramm an.
-
Öffnen Sie die Palette Variablen.
In dieser Palette werden alle Variablen angezeigt, die in dem Diagramm genutzt werden. -
Klicken Sie die gesuchte Variable an.
Der Variablenname wird im Eingabefeld unter der Liste angezeigt, z.B.:
Die Farbe des Variablennamens signalisiert, ob die Variable in dem Diagramm verwendet wird:
-
Rot: Variable wird im Diagramm nicht genutzt.
-
Schwarz: Variable wird genutzt.
Gleichzeitig wird das erste Modul farbig markiert, in dem die Variable genutzt wird. Mit den Pfeil-Buttons können Sie die nächste Fundstelle anzeigen lassen.
Variablen bearbeiten
Sie können die Variablen eines Diagramms bearbeiten, ausschneiden oder kopieren und in ein anderes Diagramm einfügen.
Systemvariablen können Sie weder bearbeiten, ausschneiden, kopieren noch einfügen. |
So gehen Sie vor
-
Zeigen Sie im lokalen Modus die Palette Variablen an.
-
Markieren Sie die Variable in der Liste.
-
Klicken Sie in der Werkzeugleiste auf (Variable bearbeiten).
Der Dialog zum Bearbeiten der Variablen öffnet sich. Im Register Allgemein können Sie den Namen und den Typ der Variablen ändern.Wenn Sie den Namen einer Variable ändern, die bereits verwendet wird, dann werden alle Vorkommen dieser Variable im aktuell angezeigten Workflow an folgenden Stellen geändert:
-
In Abbildungsregeln des Variablen-Mappings
-
In XSLT-Stylesheets
-
In XPath-Ausdrücken in Abbildungsregeln
-
In Bedingungen, die in Demultiplexer- und Wait-Modulen definiert sind
Namen von Instanzen in XSLT-Stylesheets in XSLT Convertern werden nicht geändert! Bei der Workflow-Ausführung kann es zu Fehlern kommen, wenn Sie den Typ einer Variablen ändern, von der bereits Instanzen genutzt werden. Wenn Sie die Schema-Validierung aktiviert haben, kann es zu Fehlern kommen!
-
-
Klicken Sie auf OK, um den Dialog zu schließen.
Variablen löschen
Sie können Variablen löschen, die in einem Workflow definiert sind.
Voraussetzungen
Die zu löschende Variable wird an keinem Modul verwendet.
So gehen Sie vor
-
Zeigen Sie im lokalen Modus die Palette Variablen an.
-
Markieren Sie die Variable in der Liste.
-
Öffnen Sie das Kontextmenü der Variablen und wählen Sie Löschen oder klicken Sie in der Werkzeugleiste auf .
Unbenutzte Variablen auswählen und löschen
Sie können sich unbenutzte Variablen Ihres Workflows anzeigen lassen und diese löschen, falls notwendig.
So gehen Sie vor
-
Zeigen Sie im lokalen Modus die Palette Variablen an.
-
Öffne Sie innerhalb des Fenster das Kontextmenü mit der rechten Maustaste.
-
Klicken Sie auf Unbenutzte Variablen auswählen.
-
Drücken Sie Entf auf Ihrer Tastatur.
-
Bestätigen Sie den folgenden Dialog mit Ja, wenn Sie die ausgewählten Variablen wirklich entfernen möchten.
Systemvariablen-Übersicht
Systemvariablen werden von der INUBIT-Software gesetzt und können nicht überschrieben werden. Sie können die Systemvariablen mithilfe des Variablen-Mappings auswerten.
Verwenden Sie bei Systemvariablen immer die vorgegebene Schreibweise. Zwischen Groß- und Kleinschreibung wird unterschieden. |
Die INUBIT-Software bietet folgende Systemvariablen:
Systemvariable | Erläuterung |
---|---|
|
Alphanumerische Zeichenkette |
|
Aktuelle Zeit in Millisekunden |
|
Zeichenkette, Größe einer Datei in KByte |
|
Wird gesetzt bei Technical Workflows, die von einem Workflow Connector in einem anderen Technical Workflow aufgerufen werden. |
|
(Nur bei Technical Workflows, die von einem Workflow Connector in einem anderen Technical Workflow aufgerufen werden) |
|
Innerhalb eines Technical Workflows eindeutige Zeichenkette |
|
Eingangsnachricht des Moduls |
|
Zeichenkette mit dem Namen des Moduls, so wie im Designer angegeben |
|
Ausgangsnachricht des Moduls, um diese später erneut und unverändert benutzen zu können. |
|
Zeigt den Knotennamen an, auf dem der Workflow ausgeführt wird. |
|
INUBIT Process Engine-weit eindeutige Zeichenkette, mit der die Ausführung eines Workflows markiert wird. |
|
Hostname der INUBIT Process Engine |
|
Wird gesetzt, wenn ein Workflow auf einem Tag ausgeführt wird. |
|
Name des Benutzers, unter dessen Namen der Workflow ausgeführt wird. |
|
Zeichenkette mit dem Namen des aktuellen Workflows, so wie im Designer angeben. |
|
Status der Integritätsprüfung bei der PGP Entschlüsselung:
|
Fehler-Systemvariablen
Fehler-Systemvariablen sind nur verfügbar, wenn bei der Workflow-Ausführung Fehler auftraten:
Fehler-Systemvariable | Erläuterung |
---|---|
|
Enthält die Fehlerbeschreibung. |
|
Wird gesetzt, wenn der Fehler durch die INUBIT Process Engine selbst erzeugt wurde. |
|
Enthält den Namen des Moduls, das den Fehler ausgelöst hat. |
|
Enthält die ID des Moduls, das den Fehler ausgelöst hat. |
Funktionsprinzip des Variablen-Mappings
Verwendung
Mithilfe des Variablen-Mappings können Sie Nachrichten und Workflow-Variablen dynamisch ändern, während diese in einem Technical Workflow verarbeitet werden.
Dazu erstellen Sie im Workflow an den einzelnen Modulen Regeln, wie Quellwerte auf Zielwerte abgebildet werden sollen. Als Quell- und Zielwerte können Sie u.a. die Eingangsnachricht des Moduls, Moduleigenschaften oder Modulvariablen nutzen.
Beispiele
-
Werte aus Eingangsnachricht lesen und Variablen zuweisen
Eine XML-formatierte Eingangsnachricht enthält eine FTP-Server-Adresse, den Benutzernamen und das Passwort. Diese Werte sollen einem FTP Output Connector übergeben werden, damit dieser seine Ausgangsnachrichten an den FTP Server übertragen kann.
Im Variablen-Mapping wird eine Regel erstellt, welche die Werte aus der Eingangsnachricht über einen XPath-Ausdruck auf Variablen abbildet. Diese Variablen werden an den FTP Output Connector weitergeleitet. Der FTP Output Connector ist so konfiguriert, dass er die Variablen ausliest und die Werte zum Senden der Ausgangsnachricht nutzt. -
Moduleigenschaften in Variablen schreiben
FTP-Server-Adresse, Benutzername und Passwort eines FTP Input Connector-Moduls sollen dem FTP Output Connector zur Verfügung gestellt werden. Dazu werden diese Werte im FTP Input Connector in Variablen geschrieben, an den FTP Output Connector weitergeleitet und können dort übernommen werden. -
Statische Werte über Variablen verfügbar machen
In einem Workflow, der durch einen Demultiplexer in mehrere Zweige geteilt wird, enden alle Zweige mit Output Mail Connector-Modulen. Damit alle Output Mail Connector-Modulen dieselbe neue Empfängeradresse erhalten, wird an einem Modul vor dem Demultiplexer eine Variablereceiver
angelegt, deren Wert die neue Empfängeradresse ist und in allen Output Mail Connector-Modulen zur Verfügung steht.
Verarbeitungsreihenfolge der Abbildungsregeln
Die meisten Abbildungsregeln werden in der Reihenfolge abgearbeitet, in der sie im Dialog aufgelistet sind (siehe Dialogbeschreibungen für das Variablenmapping). Die Reihenfolge der Abbildungsregel kann in dem Dialog geändert werden.
Vor der Ausführung des Moduls werden folgende Abbildungsregeln abgearbeitet:
-
Variablen mit Werten belegen
-
Eingabenachrichten ändern
-
Moduleigenschaften ändern, die bei der Modulausführung genutzt werden
-
Variablen löschen
Nach der Modulausführung wird nur die Regel Ausgangsnachricht in Variable kopieren abgearbeitet.
Quell- und Zielwerte
Sie können an jedem Modul eine oder mehrere Abbildungsregeln in folgender Form definieren: Quellwert > wird angewendet auf > Zielwert. Die folgende Tabelle erläutert, was Sie als Quell- und Zielwerte verwenden können:
Quelle | Ziel | Erläuterungen |
---|---|---|
Eingangsnachricht |
Variablen |
|
Moduleigenschaft |
Die Auswahl ist abhängig von den Moduleigenschaften, die das Modul anbietet. |
|
Eingangsnachricht |
Sie können Teile der Eingangsnachricht gezielt bearbeiten, indem Sie einen XPath darauf anwenden. |
|
Ausgangsnachricht |
Variable |
|
Moduleigenschaft |
Variable |
Bei Quelle und Ziel müssen die Datentypen zueinander kompatibel sein (inkl. der Namensräume bei komplexen Schema-Typen) |
Moduleigenschaft |
||
Eingangsnachricht |
||
Variable |
Variable |
|
Moduleigenschaft |
||
Eingangsnachricht |
Wenn die Variable vom Typ |
|
Statischer Wert |
Variable |
Zulässige Typen sind |
Moduleigenschaft |
||
Eingangsnachricht |
||
XPath-Ausdruck |
Variable |
Der XPath-Ausdruck wird im Kontext eines leeren Dokuments ausgeführt, nicht auf der Eingangsnachricht. |
Moduleigenschaft |
||
Eingangsnachricht |
||
XSLT |
Variable |
Sie können ein XSLT-Stylesheet definieren und damit komplexe Operationen auf der Eingangsnachricht, leeren Dokumenten, Variablen, Teilen von (komplexen) Variablen oder XPath-Resultaten ausführen lassen. |
Moduleigenschaft |
||
Eingangsnachricht |
||
PartnerLink |
Variable |
Die Option ist nur verfügbar in Technical Workflows mit PartnerLinks. |
Moduleigenschaft |
||
Eingangsnachricht |
Der Quell-Wert ist eine XML-Struktur, welche die Endpunkt-Referenz des ausgewählten PartnerLinks darstellt.
Die Endpunkt-Referenz enthält Adressierungsdaten nach dem WS-Addressing-Standard, gekapselt in einem |
|
(Ziel löschen) |
Variable |
Löscht das angegebene Ziel. |
Moduleigenschaft |
||
Eingangsnachricht |
||
Beliebige Quelle, die eine |
PartnerLink |
Die Option ist nur verfügbar in Technical Workflows mit PartnerLinks.
Zum Überschreiben der (Partner-)Endpunkt-Referenz des ausgewählten PartnerLinks.
Der Quell-Wert muss ein |
BPM Rule |
Variable |
(Nur verfügbar, wenn BPM Rules lizenziert sind) |
Moduleigenschaft |
||
Eingangsnachricht |
Hinweise zu Quell- und Zielwerten
Beachten Sie:
-
Die Datentypen von Quelle und Ziel müssen kompatibel sein.
-
Die Namensräume vom XML Schema-basierten Datentypen müssen zueinander passen.
-
Wenn ein XML-Element sowohl als Quelle als auch als Ziel adressiert wird, dann ersetzt das Quell-Element das Ziel-Element:
Quelle Ziel Vor der Abbildung
<quelle/>
<ziel/>
Nach der Abbildung
<quelle/>
<quelle/>
Ansonsten wird der Inhalt des Ziel-Elements überschrieben.
-
Wenn die Quelle eine XML-Struktur ist und das Ziel eine String-Variable, dann wird nur der Elementinhalt ohne Tags kopiert.
-
Wenn Sie eine Zeichenkette als Quelle auf die Eingangsnachricht abbilden möchten, müssen Sie auf der Zielseite für die Eingangsnachricht das Encoding mit der Option Kodierung (falls Quell-Seite Text ergibt) wählen.
-
Bei einem XML-Inhalt auf Quell-Seite wird die XML-Kodierung übernommen.
-
Wenn das Mapping-Ziel eine
xsd:base64Binary
-Variable ist und als Quelle ein String-Inhalt ausgewählt wurde (d.h. eine String-Variable, ein XPath, der einen String zurückgibt, oder ein statischer Wert), dann muss der Quell-String mit base64-kodiert sein. Um einen String mit base64 zu kodieren, verwenden Sie die XPath-Funktionisxp:encode()
.Diese Funktion ist nicht für Binärdaten geeignet. Für Binärdaten sollte das Encode-Modul benutzt werden.
-
Moduleigenschaften, die nicht als Ziel zur Verfügung stehen, können Sie manuell setzen. Wählen Sie als Ziel Moduleigenschaft und geben Sie den Namen der gewünschten Moduleigenschaft in das Feld Moduleigenschaft ein.
-
Über die Property
RestrictedPasswordPropertyAccess
in der Datei<inubit-installdir>\server\ibis_root\conf\ibis_config.xml
schränken Sie den Zugriff auf Passwortpropertys wie z.B. Modulvariablen vom Typis:password
ein.Beachten Sie die Details unter BPC über ibis_config.xml Datei konfigurieren.
Diese Property ist standardmäßig auf
true
gesetzt, es gilt:-
Variablen-Mapping
Im Variablen-Mapping können Passwortpropertys (d.h. Modulvariablen vom Typis:password
) nur auf andere Passwortpropertys abgebildet werden. -
XPath-Abfragen/XSLT-Konvertierungen
Für XPath-Abfragen und XSLT-Konvertierungen stehen die Passwortvariablen nicht zur Verfügung. -
Demultiplexer/If-Modul
Am Demultiplexer und am If-Modul ist auch weiterhin ein Vergleich mit dem Passwortinhalt möglich.
-
-
Für die Password-Variable
is:encryptedPasswordString
gilt:Quelle Ziel Erläuterungen Passwort-Variable oder Passwort-Moduleigenschaft
is:encryptedPasswordString
-VariableDer verschlüsselte Passwort-String der Quell-Seite wird bei Ausführung der Ziel-Variable zugewiesen. Mit dieser
is:encryptedPasswordString
-Variable können Sie beliebig arbeiten, z.B. den Wert in einer Datenbank ablegen.is:encryptedPasswordString
-VariablePasswort-Variable oder Passwort-Moduleigenschaft
Der entschlüsselte Passwort-String wird bei Ausführung der Ziel-Variable zugewiesen.
Abbildungsregeln für das Variablen-Mapping erstellen
Überblick
Die Abbildungsregeln für das Variablen-Mapping definieren Sie im Workflow an den einzelnen Modulen. Im Server-Modus können Sie die Abbildungsregeln anzeigen, das Erstellen und Bearbeiten ist nur im lokalen Modus möglich.
Module, an denen ein Variablen-Mapping definiert ist, erkennen Sie an dem kontinuierlich sichtbaren V-Button, z.B.:
Bei Modulen, an denen kein Variablen-Mapping definiert ist, wird der V-Button nur angezeigt, wenn Sie mit dem Cursor auf das Modul zeigen.
So gehen Sie vor
-
Zeigen Sie den Technical Workflow im lokalen Modus an.
-
Zeigen Sie mit dem Cursor auf das Modul, an dem Sie das Variablen-Mapping verwenden möchten.
Links unten am Modul wird ein V-Button eingeblendet. -
Doppelklicken Sie den V-Button.
Der Dialog öffnet sich (siehe Dialogbeschreibungen für das Variablenmapping). -
Um eine neue Abbildungsregel zu erzeugen, klicken Sie in der Werkzeugleiste auf .
-
Wählen Sie zuerst die Quelle, dann das Ziel aus.
Klicken Sie auf den M-Button in der Werkzeugleiste, um die aktuell vorhandenen Moduleigenschaften einzublenden.
Die Moduleigenschaften sind farbig hinterlegt. -
Zum Speichern Ihrer Abbildungsregel klicken Sie auf OK.
Der Dialog schließt sich, die Abbildungsregel wurde gespeichert.
Abbildungsregel für Quelle=XSLT und Ziel=Variable erstellen
Sie können in einer Abbildungsregel ein XSLT-Stylesheet definieren und Operationen auf Variablen vom Typ simpleType
oder complexType
ausführen.
Das Ergebnis können Sie einer Variablen, einer Moduleigenschaft oder der Eingangsnachricht zuweisen.
So gehen Sie vor
-
Zeigen Sie den Dialog Variablen-Mapping an.
-
Legen Sie eine Abbildungsregel an.
-
Wählen Sie als Quelle den Wert XSLT aus.
Falls das Ziel eine Variable mit Typ
complexType
ist, dann geben Sie jetzt diese Zielvariable an und definieren dann erst das Stylesheet. Nur dann wird die Struktur der gewünschten Zielvariablen direkt im Dialog XSLT bearbeiten im Register Zielstruktur angezeigt! -
Optional:
Legen Sie mit der Option XSLT Prozessor den Funktionsumfang des XSLT Stylesheets fest, in dem Sie einen anderen Prozessor auswählen. -
Wählen Sie bei Ausführen auf den Wert Variableninhalt.
Falls die Variable, auf der das XSLT Stylesheet ausgeführt werden soll, einen komplexen Datentyp hat, können Sie auch die Option XPath auswählen und einen XPath angeben, der sich auf die Struktur der Variable bezieht, z.B.
$var1/properties/property[1]
. -
Wählen Sie bei Variable die Variable aus, auf der das XSLT-Stylesheet ausgeführt werden soll.
-
Um das Stylesheet zu definieren, klicken Sie neben der Option Stylesheet auf Bearbeiten.
Der Dialog XSLT bearbeiten wird angezeigt.
In diesem Dialog können Sie das XSLT Stylesheet per Drag’n’Drop erstellen:-
Laden Sie eine Beispieldatei mit der zu erstellenden Struktur in den Bereich XML-Zieldatei.
-
Ziehen Sie das
root
-Element oder beliebige andere Elemente in den Bereich XML-Ziel auf das Elementxsl:template
. -
Aus dem Register Variablen ziehen Sie ausgewählte Variablen in den Bereich XML-Quelle, um den Variablenwert einem Element in der Zielstruktur zuzuweisen.
-
-
Nach Fertigstellung Ihres Stylesheets klicken Sie auf OK.
Der Dialog schließt sich. -
Falls noch nicht geschehen: Geben Sie an, auf welches Ziel das Ergebnis des Stylesheets abgebildet werden soll.
Für Infos über die Verwendung des Dialogs XSLT bearbeiten siehe Technical Workflow erstellen 2: CSV-Datei nach CSV-XML konvertieren.
Abbildungsregel für Quelle=XPath erstellen
Sie können in einer Abbildungsregel einen XPath-Ausdruck als Quelle verwenden. Das Ergebnis des Ausdrucks können Sie einer Variablen, einer Moduleigenschaft oder der Eingangsnachricht zuweisen.
Der XPath-Ausdruck wird im Kontext eines leeren Dokuments ausgeführt, nicht auf der Eingangsnachricht.
Beim Erstellen des XPath-Ausdrucks unterstützt Sie ein XPath-Assistent. In diesem Assistenten können Sie den Ausdruck per Drag’n’Drop aus einer Liste von Funktionen und einer Liste aller Variablen zusammenstellen. Zusätzlich bietet der XPath-Assistent Erläuterungen zu allen verfügbaren XPath-Funktionen.
So gehen Sie vor
-
Zeigen Sie den Dialog Variablen-Mapping an.
-
Legen Sie eine Abbildungsregel an.
-
Wählen Sie als Quelle den Wert XPath-Ausdruck.
-
Um den XPath-Ausdruck zu erstellen, klicken Sie auf den Button XPath-Assistent.
Der XPath-Assistent öffnet sich. -
Wählen Sie in der Palette XPath-Funktionen die XPath-Funktion aus, die Sie verwenden möchten, z.B. die String-Funktion
concat()
. Sobald Sie eine Funktion markieren, wird eine Erläuterung zu der Funktion angezeigt. -
Ziehen Sie die XPath-Funktion mit der Maus in das Eingabefeld XPath.
-
Um der Funktion ein Argument zuzuweisen, markieren Sie im Bereich Workflow-Variablen eine Variable und ziehen diese mit der Maus auf die Leerstelle in der Funktion, an der ein Argument erwartet wird.
-
Klicken Sie auf OK, um den Dialog zu schließen.
Der XPath-Ausdruck wird angezeigt.
Listen-Moduleigenschaften überschreiben
Einige Moduleigenschaften, wie z.B. Prozessrollen, werden in Listenform als XML-Struktur gespeichert.
Um Listen-Moduleigenschaften zu überschreiben, müssen Sie die XML-Struktur kennen und korrekt füllen.
Prinzipiell müssen Sie die folgenden Schritte durchführen:
-
Den neuen Wert der Listen-Moduleigenschaft verfügbar machen, indem Sie diesen z.B. in eine Variable oder in die Ausgangsnachricht schreiben. Dies muss vor dem Modul geschehen, an dem die Listen-Moduleigenschaft gesetzt wird.
-
Eine neue Variable mit der Struktur der Listen-Moduleigenschaft erstellen.
-
Den neuen Wert der Listen-Moduleigenschaft auf die neue Variable abbilden.
-
Die neue Variable auf die Listen-Moduleigenschaft abbilden.
Dieser Abschnitt erläutert anhand des Beispiels Prozessrolle überschreiben, wie Sie beim Überschreiben von Listen-Moduleigenschaften vorgehen.
So gehen Sie vor
-
Erzeugen Sie einen Technical Workflow.
-
Fügen Sie ein Assign-Modul ein.
-
Erstellen Sie einen Task Generator mit folgender Konfiguration:
-
Eine Option aus dem Bereich Eintrag in der Taskliste ist ausgewählt.
-
Eine Prozessrolle ist ausgewählt, z.B. team member.
-
Die Option Eingangsnachricht ignorieren ist markiert.
Diese Prozessrolle werden Sie in den folgenden Schritten durch eine andere überschreiben. Die neue Prozessrolle stammt aus einer Variablen, die am Assign-Modul gesetzt wird.
-
-
Verbinden Sie die beiden Module:
Variable mit neuem Prozessrollen-Wert erstellen
-
Öffnen Sie das Variablen-Mapping am Assign-Modul und erstellen Sie folgende Abbildungsregel:
-
Wählen Sie als Quelle Statischer Wert aus und geben Sie die XML-Struktur manuell ein.
-
Wählen Sie als Ziel Variable aus.
-
Erstellen Sie eine neue Variable:
-
Klicken Sie dazu neben der Liste Variablen auf .
Ein Dialog öffnet sich. -
Benennen Sie Variable und wählen Sie als Typ
anyElement
aus. -
Schließen Sie den Dialog.
-
-
Schließen Sie den Variablen-Mapping-Dialog.
Abbildungsregel 1: Variable mit erwarteter Listen-Struktur
-
-
Öffnen Sie den Variablen-Mapping-Dialog am Task Generator und legen Sie eine neue Abbildungsregel an. Mit dieser Abbildungsregel erzeugen Sie eine Variable mit derselben Struktur wie die Listen-Moduleigenschaft
ProcessRoles
. Führen Sie einen der folgenden Schritte aus:-
Alternative 1:
-
Klicken Sie in der Werkzeugleiste auf den M-Button, um die Moduleigenschaften und deren aktuelle Werte einzublenden.
-
Markieren Sie die Listen-Moduleigenschaft
ProcessRoles
. Die XML-Struktur der Eigenschaft wird im Bereich Quelle angezeigt:
-
-
Alternative 2:
-
Wählen Sie als Quelle Statischer Wert und als Ziel die Listen-Moduleigenschaft
ProcessRoles
. -
Klicken Sie auf das Icon und wählen Sie Beispiel-Inhalt für Ziel-Typ erzeugen.
Die XML-Struktur der Moduleigenschaft wird angezeigt.
-
-
-
Ändern Sie in der eben angelegten Abbildungsregel das Ziel: Wählen Sie Variable aus.
-
Legen Sie eine neue Variable vom Typ
anyElement
mit dem Namenvar.ProcessRoles
an:Die erste Abbildungsregel am Task Generator sieht so aus:
-
Schließen Sie den Dialog.
Abbildungsregel 2: Neue Prozessrolle auf Variable mit Listenstruktur abbilden
Mit der zweiten Abbildungsregel füllen Sie die Variablevar.ProcessRoles `mit dem Inhalt der Variable `NewProcessRoles
.
So gehen Sie vor: -
Sie benötigen die XML-Struktur und den Wert der Variablen
NewProcessRoles
:-
Starten Sie am Assign-Modul den Test-Modus mit der Option Test ohne Datei starten.
-
Öffnen Sie nach dem Test den Watchpoint zwischen den beiden Modulen und kopieren Sie den Inhalt (Ergebnisdatei und Variablen) in die Zwischenablage.
-
Schließen Sie den Dialog.
-
-
Öffnen Sie das Variablen-Mapping am Task Generator:
-
Legen Sie eine zweite Abbildungsregel an.
-
Klicken Sie auf den Testmodus-Button, um den Testmodus zu aktivieren:
Im Test-Modus werden die Variablenwerte aus dem Testlauf des Workflows übernommen.
-
Öffnen Sie ggf. die Palette Testmodus-Eingabedaten.
-
Laden Sie ggf. den Inhalt der Zwischenablage in den Nachrichten-Bereich:
Der soeben kopierte Variablenwert wird der Variable
NewProcessRole
zugewiesen und im Bereich Workflow-Variablen angezeigt. -
Wählen Sie bei der zweiten Abbildungsregel als Quelle
Variable=NewProcessRoles
aus.Stellen Sie sicher, dass der Test-Modus aktiviert ist.
-
Klicken Sie neben dem XPath auf , um den XPath-Assistenten zu öffnen.
-
Klicken Sie in den im Bereich Workflow-Variablen neben der Variablen
NewProcessRoles
in die Spalte Wert, um die XML-Struktur des Wertes anzuzeigen. -
Ziehen Sie den Textknoten team leader in das Eingabefeld XPath.
Der XPath wird angezeigt:Der XPath wird sofort getestet. Das Ergebnis team leader sehen Sie im Bereich Ergebnis.
-
Klicken Sie auf OK, um den Dialog zu schließen.
-
-
Wählen Sie als Ziel
Variable=var.ProcessRoles
.Stellen Sie sicher, dass der Test-Modus aktiviert ist.
-
Klicken Sie neben dem Feld XPath auf , um den XPath-Assistenten zu öffnen.
-
Ziehen Sie das
name
-Attribut einesProperty
-Elements in das Eingabefeld XPath: -
Klicken Sie auf OK, um den Dialog zu schließen.
Die zweite Abbildungsregel sieht nun so aus:Abbildungsregel 3: Wert der Listen-Moduleigenschaft
-
Legen Sie folgende dritte Abbildungsregel an:
Der neue Wert der Moduleigenschaft
ProcessRoles
wird im Feld Wert angezeigt. -
Klicken Sie auf OK, um die Regeln zu speichern.
Damit haben Sie die initial am Task Generator definierte Prozessrolle überschrieben.
ISGlobalProcessId ändern
Dieser Abschnitt beschreibt, wie Sie den Wert der Variablen ISGlobalProcessId
setzen, um damit alle Workflows zu identifizieren, die zu derselben Geschäftstransaktion gehören.
Wenn Sie im Queue Manager die Tabelle nach der Spalte ISGlobalProcessId
sortieren, können Sie sich schnell einen Überblick über den Status der entsprechenden Geschäftstransaktion verschaffen.
So gehen Sie vor
-
Öffnen Sie den ersten Technical Workflow der Geschäftstransaktion zum Bearbeiten.
-
Öffnen Sie das Kontextmenü des ersten Moduls und wählen Sie Variablen-Mapping bearbeiten.
-
Erstellen Sie folgende Abbildungsregel:
-
Geben Sie die gewünschte ID als statischen Wert an.
-
Klicken Sie auf OK.
Führen Sie diese Aktion bei allen Technical Workflows durch, die zu derselben Geschäftstransaktion gehören.
Dialogbeschreibungen für das Variablenmapping
Dialog Variablen-Mapping
Aufruf
-
Bearbeiten
-
Zeigen Sie das Diagramm, in dem das Variablen-Mapping eines Moduls bearbeitet werden soll, im lokalen Modus an.
-
Markieren Sie das Modul und wählen Sie im Kontextmenü Variablen-Mapping bearbeiten.
-
-
Anzeigen
-
Zeigen Sie das Diagramm, in dem das Variablen-Mapping eines Moduls angezeigt werden soll, im Server-Modus an.
-
Markieren Sie das Modul und wählen Sie im Kontextmenü Variablen-Mapping anzeigen.
-
In diesem Dialog können Sie Abbildungsregeln anzeigen, erstellen, testen, bearbeiten und löschen.
Abbildungsregeln werden meist in der Reihenfolge ausgeführt, in der sie angezeigt werden. Sie können die Reihenfolge der Abbildungsregeln im Dialog ändern.
Werkzeugleiste
Über die Buttons in der Werkzeugleiste können Sie folgende Funktionen anwenden:
-
: Abbildungsregel hinzufügen
-
: Abbildungsregel ausschneiden
-
: Abbildungsregel kopieren
-
: Abbildungsregel einfügen
-
: Abbildungsregel nach oben verschieben
-
: Abbildungsregel nach unten verschieben
-
: Abbildungsregel löschen
-
: Testmodus aktivieren ein-/ausblenden
-
: Moduleigenschaften ein-/ausblenden
Die Funktionen stehen auch über die Kontextmenüs der Abbildungsregeln zur Verfügung.
Tabelle der Mapping-Regeln
In der Tabelle werden alle bereits bestehenden Abbildungsregeln in ihrer Abarbeitungsreihenfolge angezeigt.
Variablen-Mapping überspringen
Die Option Überspringen ist für alle Zuweisungen im Variablen-Mapping auch für globale Variablen.
Wenn in der Spalte Überspringen die Checkbox für ein Variablen-Mapping aktiviert wurde, wird dieses Variablen-Mapping durchgestrichen und nicht ausgeführt. Das Mapping einer Workflow-Eingangsvariablen oder einer globalen Variable wird nicht ausgeführt, aber die Variablen werden im Abschnitt Workflow-Variablen eines Watchpoint-Datei angezeigt.
Die Checkbox Überspringen kann für alle Variable-Mappings im Bereich Lokal angewendet werden.
An einem Workflow Connector ist die Checkbox für Eingangs- und Ausgangsvariablen sowie für globale Variablen deaktiviert.
Ausgewählter Eintrag
Sobald eine Abbildungsregel vorhanden und markiert ist, werden weitere Optionen angezeigt, u.a.:
-
Variable nach Zuweisung löschen
Wenn aktiviert, dann wird der Wert der gewählten Variablen nach Ausführung des Mappings gelöscht. -
Leeren Quell-Inhalt ignorieren
Der Quell-Inhalt kann leer sein, weil z.B. die XPath-Ausführung auf einem Variablen-Inhalt ein leeres Resultat ergab.-
Option ist aktiviert: Es wird kein Fehler geworfen, die Abbildungsregel wird ignoriert.
-
Option ist nicht aktiviert: Es wird ein
bpel:selectionFailure
ausgegeben.
-
-
Nicht initialisierte Quell-Variable ignorieren
Eine Variable ist nicht initialisiert, wenn sie bei der Workflow-Ausführung keinen Wert zugeordnet bekommen hat.-
Wenn Option aktiviert ist: Bei einer nicht initialisierten Quell-Variable wird kein Fehler geworfen und die Abbildungsregel wird ignoriert.
-
Wenn Option nicht aktiviert ist: Bei einer nicht initialisierten Quell-Variable wird ein
bpel:uninitializedVariable
-Fehler geworfen.
-
-
Inhalte von modifizierten Variablen validieren
Wenn diese Option aktiviert ist und eine Variable einen ungültigen, nicht zum Schematyp passenden Wert zugewiesen bekommt, wird ein Fehler geworfen. Der Fehler heißtbpel:invalidVariables
.
Variablen-Palette
In der Palette werden alle Variablen angezeigt, die im aktuell angezeigten Technical Workflow definiert sind. Sie können neue Variablen anlegen und selbst definierte Variablen und Modulvariablen bearbeiten.
Symbole an Variablen
In der INUBIT-Software gibt es folgende Variablentypen, die Sie an den Symbolen erkennen:
-
Systemvariable
Systemvariablen werden von der INUBIT-Software gesetzt und können nicht überschrieben werden.
Siehe Systemvariablen-Übersicht. -
Selbst definierte Variablen
-
: Workflow-Eingabevariable
-
: Workflow-Ausgabevariable
-
: Workflow-Ein-/Ausgabevariable
Sie können beliebige Variablen selbst definieren und festlegen, ob diese in verlinkten Workflows als Eingabe- und/oder Ausgabevariablen fungieren.
Siehe Variablen definieren.
-
-
Modulvariable
Einige Module setzen bei ihrer Ausführung Variablen oder erwarten Variablen.
Siehe, zum Beispiel:-
Modulvariablen des AS2 Connectors
-
Modulvariablen des File Connectors
-
HTTP Connector: Parameter im HTTP Connector setzen und anzeigen
-
-
Globale Variable
Siehe Globale Variablen nutzen.
Bei Sprung in diesen Workflow
Zum Kapseln des Workflows.
-
Wenn diese Option markiert ist und der aktuelle Workflow-Prozess mit einem anderen verlinkt wird, gibt der aktuelle Workflow-Prozess nur Variablen weiter, die explizit als Eingabe-/Ausgabevariablen markiert sind.
Wenn diese Option ausgewählt ist, muss also an allen Workflow Connector-Modulen, die auf diesen Workflow verweisen, ein Mapping der Eingabe- und Ausgabe-Variablen stattfinden. -
Wenn diese Option nicht ausgewählt ist, kann an dem Workflow-Connector auch die Übergabe und Übernahme aller Variablen konfiguriert werden.
Verwendung innerhalb des Workflows
Für die Suche nach den Modulen, an denen eine Variable genutzt wird.
Globale Variablen nutzen
Globale Variablen sind nach dem Definieren (siehe Variablen mit einfachem oder komplexem Typ definieren) und Speichern für alle Nutzer/Gruppen auf der Process Engine verfügbar.
Fügen Sie beim Erstellen oder Ändern einer Variablen einen Kommentar hinzu, um anderen Nutzern Hinweise über die Verwendung der Variablen mitzuteilen. |
Globale Variableneinstellungen
Durch das Selektieren der Option Konstanter Wert bleibt der Variablenwert bei der Übergabe im Variablen-Mapping erhalten. Entsprechend kann die Variable im Ziel nicht ausgewählt werden.
Wurde die Option Konstanter Wert angewählt und ist die Konstante im Einsatz, kann diese Option nicht mehr deselektiert werden. |
Mit den Optionen Workflow-Eingabevariable und Workflow-Ausgabevariable können die Variablen als Eingabe- und Ausgabevariablen definiert werden, siehe Variablenübergabe bei verlinkten Technical Workflows konfigurieren.
Wird die Option Konstanter Wert angewählt, kann die Variable nicht als Eingabe- oder Ausgabevariablen definiert werden. |
Editieren und Löschen
Globale Variablen können von jedem Nutzer der Process Engine mit entsprechenden Rechten lokal bearbeitet oder gelöscht werden, solange sie nicht von einem Workflow oder als eine Property in einem XML Converter-Modul verwendet werden.
Das Erstellen, Löschen und Umbenennen von globalen Variablen wird auch ohne das vorherige Publizieren eines Workflows sofort für das gesamte System wirksam. |
Werte von globalen Variablen und Konstanten können über das Bearbeiten des Startpoints des Unit-Tests geändert werden. |