
Sie verwenden den Datenflusseditor, um den Datenfluss zwischen zwei Containern zu definieren.
Der Datenflusseditor besteht aus zwei Bildbereichen:
Der obere Bildbereich zeigt links den Quellcontainer und rechts den Zielcontainer sowie auswählbare Systemfelder.
Dieser Bildbereich wird nur im Änderungsmodus angezeigt und nur, wenn Sie über
(
Persönliche Einstellungen) das Kennzeichen
Drag&Drop gesetzt haben.
Über das Kontextmenü eines Containerelements können Sie z. B. Kompatible Elemente markieren wählen. Dadurch werden die für eine Zuweisung kompatiblen Elemente im anderen Container farblich hervorgehoben.
Der untere Bildbereich zeigt die Datenflussdefinitionen, die Sie bearbeiten können:
Datenfluss vom Quell- zum Zielcontainer (Datenflussrichtung
)
Der Datenfluss wird zur Laufzeit vor der Ausführung der zugehörigen Aktion ausgeführt. Sie sollten nur einen Datenfluss zu Containerelementen des Zielcontainers definieren, für die das Kennzeichen Import gesetzt ist.
Datenfluss vom Ziel- zum Quellcontainer (Datenflussrichtung
)
Der Datenfluss wird zur Laufzeit nach der Ausführung der zugehörigen Aktion ausgeführt. Dieser Datenfluss steht nur zur Verfügung, wenn die Aktion Ergebnisse liefern kann, die in den Quellcontainer geschrieben werden können. Sie sollten nur einen Datenfluss von Containerelementen des Zielcontainers definieren, für die das Kennzeichen Export gesetzt ist.
Datenflussdefinition
Eine Datenflussdefinition besteht aus einer oder mehreren Datenflusszeilen (Datenflussanweisungen). Eine Datenflusszeile besteht aus folgenden Elementen:
Ausdruck für die Quelle des Datenflusses
Symbol für die Datenflussanweisung
Symbol für die Datenflussrichtung
Ausdruck für das Ziel des Datenflusses
Die Datenflusszeilen werden in der im Datenflusseditor angezeigten Reihenfolge ausgeführt. Wird ein Containerelement in einer nachfolgenden Datenflusszeile erneut als Zielelement verwendet, überschreibt die nachfolgende Datenflusszeile das Ergebnis der vorherigen.
Datenflussanweisung
Es gibt folgende Typen von Datenflussanweisungen:
Ausdruck Ausdruck: Quelle und Ziel sind jeweils ein Ausdruck, z. B. &Formular.Aussteller& &_WF_INITIATOR&
: für Transformationen, bei denen gleichzeitig mehrere Elemente des Quellcontainers benötigt werden (z. B. Datenakkumulation) oder gleichzeitig mehrere Elemente des Zielcontainers gesetzt werden
Sie können beide Typen von Anweisungen beliebig oft und in beliebiger Reihenfolge auswählen. Die nachfolgende Tabelle zeigt die vordefinierten Datenflussanweisungen. Durch Implementieren vorgegebener Interfaces können Sie jedoch auch eigene Operatoren für beide Typen von Datenflussanweisungen programmieren (siehe auch: Programmierter Datenfluss).
|
Datenflussanweisung |
Typ |
Beschreibung |
|---|---|---|
|
Löschen (
|
|
Löscht den Inhalt des Zielausdrucks. |
|
Zuweisen (
|
|
Weist den Inhalt des Quellausdrucks dem Zielausdruck zu. Bestehende Inhalte des Zielausdrucks werden überschrieben. |
|
XSL-Transformation (
|
|
Ruft das angegebene XSLT-Programm für den Quellausdruck auf und weist das Ergebnis der Transformation dem Zielausdruck zu. Sie können eigene XSLT-Programme definieren und auswählen. Unterstützt wird der volle Umfang von CALL TRANSFORMATION (siehe auch: SAP XSLT-Prozessor - Referenz). Standardmäßig wird die Transformation ID angeboten, mit der Sie z. B. Formatkonvertierungen vornehmen können. |
|
An Tabelle anhängen (
|
|
Hängt den Inhalt des Quellausdrucks an das mehrzeilige Containerelement des Zielausdrucks an. |
|
Addieren zu (
|
|
Addiert den Wert des Quellausdrucks zum Zielausdruck (produktiv einsetzbares Beispiel für einen programmierten Datenfluss, siehe CL_SWF_BND_TRANS_ADD_TO). |
|
Subtrahieren von (
|
|
Subtrahiert den Wert des Quellausdrucks vom Zielausdruck (produktiv einsetzbares Beispiel für einen programmierten Datenfluss, siehe CL_SWF_BND_TRANS_SUBTRACT_FROM). |
|
Alle Elemente übernehmen (außer System) (
|
|
Überschreibt namensgleiche Elemente des Zielcontainers mit den Elementen des Quellcontainers. |
|
Programmierter Datenfluss (BOR-Container) (
|
|
Führt einen Funktionsbaustein aus, der den BOR-Container nutzt, siehe auch: Programmierter Datenfluss. |
|
Programmierter Datenfluss (Container-IF) (
|
|
Führt einen Funktionsbaustein aus, der das Container-Interface nutzt, siehe auch: Programmierter Datenfluss. |
Optionen für Datenflussanweisungen
Folgende Tabelle zeigt die Optionen, die Sie abhängig von der gewählten Datenflussanweisung wählen können:
|
Option |
Beschreibung |
|---|---|
|
Aufgetretene Fehler als Warnung behandeln |
Geeignet für optionale Datenflussanweisungen: Tritt ein Fehler auf, bricht der Workflow nicht ab, sondern gibt eine Warnung aus. Warnungen werden im Workflow-Protokoll nur angezeigt, wenn Sie in den versionsabhängigen Grunddaten des Workflow (
|
|
Keine Aktion bei initialem Quellwert |
Überschreibt den Zielwert nur, wenn ein neuer Quellwert vorliegt. Enthält das Quellelement noch den Initialwert, bleibt der Zielwert unverändert. |
|
Keine Aktion bei leerem Quellwert |
Überschreibt den Zielwert nur, wenn ein Quellwert vorhanden ist. Ist das Quellelement leer, bleibt der Zielwert unverändert. |
|
Nur leere Zielwerte überschreiben |
Überträgt den Quellwert nur in das Zielelement, wenn das Zielelement noch keinen Wert hat. Hat das Zielelement bereits einen Wert, bleibt dieser unverändert. |
|
Bei Strukturen: Namensgleiche Teilkomponenten zuweisen |
Nur bei Strukturen sinnvoll: Überschreibt namensgleiche Teilkomponenten der Zielstruktur mit den Komponenten der Quellstruktur. |
|
Nicht vorhandene Elemente im Zielcontainer anlegen |
Enthält der Quellcontainer Elemente, die im Zielcontainer noch nicht vorhanden sind, werden diese im Zielcontainer angelegt. |
Konventionen für Ausdrücke
Ein Zielausdruck darf sich nicht auf Attribute eines BOR-Objekts beziehen.
Ein Zielausdruck darf keinen Methodenaufruf enthalten.
Wenn der Zielausdruck eine Struktur referenziert, muss der Quellausdruck auch eine Struktur referenzieren.
Wenn der Quellausdruck ein mehrzeiliges Containerelement referenziert, der Zielausdruck jedoch ein einzeiliges, wird die erste Zeile übertragen.
Zu weiteren Konventionen für Ausdrücke siehe auch Ausdrücke: Funktionale Methoden und Zugriff auf mehrzeilige Tabellenelemente.
Dynamische parallele Verarbeitung
Bei einem Datenfluss vom Workflow- zum Aufgabencontainer kann ein mehrzeiliges Quellement dynamisch parallel verarbeitet werden (siehe auch: Tabellengesteuerte dynamische Parallelverarbeitung).
In der Aktivität, die für die dynamische parallele Verarbeitung genutzt wird, müssen Sie für das mehrzeilige Element des Workflow-Containers auf der Registerkarte Sonstiges das Kennzeichen mehrzeiliges Containerelement setzen.
Im Datenflusseditor legen Sie fest, dass das mehrzeilige Quellelement zeilenweise einem einzeiligen Zielelement zugewiesen wird. Dazu geben Sie den Quellausdruck wie folgt an:
& ()& <mehrzeiliges_element>
Um Ihre persönlichen Einstellungen für die Bedienung des Datenflusseditors festzulegen, wählen Sie
Persönlichen Einstellungen (
).
Sie können z. B. Folgendes festlegen:
Bedienung des Datenflusseditors per Drag&Drop
Sofortige Syntaxprüfung für Datenzeilen bei jeder Eingabe
Legen Sie pro Datenflusszeile den gewünschten Quell- und Zielausdruck sowie die Datenflussanweisung fest.
Den Quell- bzw. Zielausdruck können Sie auf eine der folgenden Arten eingeben:
Drag&Drop
Wenn Sie Bedienung per Drag&Drop eingestellt haben, können Sie ein Containerelement aus dem oberen Bildbereich in die gewünschte Zelle der Datenflusszeile ziehen.
Eingabehilfe
Wenn Sie die Eingabehilfe bei einem leeren Feld einer Datenflusszeile verwenden und das andere Feld der Datenflusszeile bereits gefüllt ist, werden die Containerelemente mit passendem Datentyp farblich hervorgehoben.
Direkte Eingabe
Konstanten können Sie direkt eingeben.
Um die Datenflussanweisung festzulegen, klicken Sie auf das Symbol für die Datenflussanweisung und wählen dann die Datenflussanweisung und die gewünschten Optionen aus.
Legen Sie bei Bedarf weitere Datenflusszeilen an.
Wenn Sie Bedienung per Drag&Drop eingestellt haben, können Sie zum Anlegen einer Datenflusszeile ein Containerelement des einen Containers auf ein Containerelement des anderen Containers ziehen.
Ordnen Sie die Datenflusszeilen in der Reihenfolge an, in der sie ausgeführt werden sollen.