Ausdrücke in einer Workflow-Konfiguration verwenden

Prev Next

Ausdrücke sind Formeln oder Codefragmente, die in einem Workflow Berechnungen ausführen, Daten verarbeiten oder Aufgaben automatisieren. Sie werden in Sprachen wie Visual Basic for Applications (VBA) und .NET geschrieben und können spezifische Anpassungen für DocuWare enthalten.

Durch das Einbetten von Ausdrücken in einen dokumentenbasierten Workflow lassen sich Werte dynamisch generieren, Daten validieren oder bedingte Logik auf Grundlage des Dokumentinhalts erstellen. Dies ermöglicht komplexere und stärker automatisierte Prozesse.

Dialog “Expression” verwenden

Der DocuWare Workflow Designer bietet mit Expression einen Dialog speziell für die Eingabe von Ausdrücken.

Dieser Dialog ist unter anderen in den Aktivitäten Daten zuweisen oder Bedingung enthalten.

In der Aktivtät Daten zuweisen zum Beispiel öffnen Sie den Dialog folgendermaßen:

  1. Öffnen Sie eine Datenzuweisung und legen Sie Zieltyp und Zieleingabe fest.

  2. Wählen Sie als Quelltyp die Option Ausdruck and und klicken Sie auf den Link Ausdruck schreiben, um diesen Dialog zu öffnen:

  1. Um eine Variable oder ein Indexfeld in einem Ausdruck zu verwenden, wählen Sie den Bereich für die gewünschte Gruppe:  

    • Systemvariablen

    • Globale Variablen

    • Indexfelder

  2. Klicken Sie auf die Variable oder auf das Indexfeld, um es hinzuzufügen.

Die verfügbaren Registerkarten und Variablen sind je nach der verwendeten Funktion oder je nach Einstellungen der jeweiligen Aktivität unterschiedlich

Tabellen über Ausdrücke abgleichen

Gleichen Sie verschiedene Quelldaten aus Tabellen auf der Grundlage von Ausdrücken ab. Damit beseitigen Sie zum Beispiel Fehlerquellen bei der Digitalisierung von Rechnungen oder anderen Dokumenten.

Beispiele:

  • Folgende Ausdrücke vergleichen zwei Zeichenketten mit Einschätzung ihrer Ähnlichkeit:

    • Peter Peterson _~ Peter Pitersen = 93%

    • S523-A336MS ~ S523-A336M5 = 95%

  • Diese Ausdrücke ändern eine Zeichenkette nach einem Muster:

    • Alle Ziffern aus einer Eingabezeichenkette anhand des Musters entfernen:

      \d:Something123Anything => SomethingAnything

    • Einen Input-String anhand des folgenden Musters aufteilen:

      \d+:Something123Anything => Something, Anything

  • Prüfen, ob eine Zeichenkette dem Muster entspricht:

    [A-Z0-9]\d{3}-\d{3}:

    A123-456 => true

Ausdrücke in DocuWare Indextabellen verwenden

Sie können Werte aus Indextabellen in Ausdrücken verwenden. Wenn Sie dabei auf eine Spalte derselben Indextabelle zugreifen, die Sie bearbeiten möchten, erhalten Sie genau einen Wert – nämlich den aus derselben Zeile. Wählen Sie hierzu die Spalte auf der Registerkarte „<Tabellenname>-Zellen“.

Greifen Sie hingegen auf eine Spalte einer anderen Indextabelle zu, erhalten Sie eine Liste aller Werte dieser Spalte. Wählen Sie dazu die Spalte auf der Registerkarte „Tabellenspalten“.

Es ist möglich, einen Wert aus einer anderen Spalte derselben Tabelle auszulesen, ihn bei Bedarf per Ausdruck zu transformieren und anschließend in die Zielspalte zu schreiben. Weitere Informationen finden Sie unter „Werte einzelner Spalten bearbeiten“.

Ausdrücke in Verbindung mit Indextabellen einsetzen

In den arithmetischen Ausdrücken können Sie Werte aus Indextabellen verwenden. Greifen Sie auf einen Wert aus einer Spalte derselben Indextabelle zu, die Sie bearbeiten möchten, erhalten Sie exakt einen Wert, nämlich den Wert aus derselben Zeile. Wählen Sie dazu die Spalte aus dem Reiter “<Tabellenname> Zellen”.

Wenn Sie hingegen auf eine Indextabellen-Spalte einer anderen Tabelle zugreifen, erhalten Sie eine Liste aller Werte in dieser Spalte. Wählen Sie dazu die Spalte aus dem Reiter Tabellenspalten.

Es ist möglich, den Wert aus einer anderen Spalte derselben Tabelle auszulesen, diesen ggf. per arithmetischem Ausdruck zu transformieren und ihn dann in die Zielspalte zu schreiben. Mehr dazu finden Sie unter Die Werte einzelner Spalten bearbeiten.

Die Systemspalte „Zeilennummer“ einsetzen

In den arithmetischen Ausdrücken können Sie die Systemspalte "SYS_ROW_NUMBER" verwenden. "SYS_ROW_NUMBER" liefert die Nummer der jeweiligen Zeile einer Indextabelle, die Sie verwenden können, um Werte zu verketten, Berechnungen durchzuführen oder einen Wert aus einer anderen Tabelle in derselben Zeile abzurufen. Die erste Zeile einer Tabelle wird immer als Zeilennummer "1" betrachtet.

Dies ist besonders wichtig, wenn Sie mit einem Indexer arbeiten, um eine Zeile zu ermitteln, denn dort beginnt die Zählung bei 0.

Wenn Sie dagegen die Systemspalte "SYS_ROW_NUMBER" verwenden, beginnt die Zählung bei 1. Um die gleiche Zeile zu erhalten, müssen Sie also 1 > "...[SYS_ROW_NUMBER]-1" subtrahieren.

Dazu ein Beispiel:

Sie bearbeiten eine Tabelle "Example" (interner Name "EXAMPLE") und möchten in die Spalte „Name“ Werte aus einer anderen Tabelle „New Items“ (interner Name "NEW_ITEMS") einfügen. Die gesuchten Werte befinden sich dort in der Spalte „New Name“ (interner Name „NEW_I_NAME“).

Sie verwenden einen Indexer, um die Werte zu ermitteln, und die Systemspalte „SYS_ROW_NUMBER“, um die Werte zuzuordnen.

Normalerweise definieren Sie für die Zielspalte folgenden arithmetischen Ausdruck:

DW_NEW_ITEMS[NEW_I_NAME](X)

Dies gibt den Wert der Spalte "New Name" der Tabelle "New Items" in der angegebenen Zeile zurück. "X" bestimmt, welchen Eintrag aus der Liste Sie zurückgeben möchten. Da der Indexer bei 0 beginnt, bedeutet z.B. "0" die erste Zeile.

Nun benötigen Sie für die Felder in der Zieltabelle den Wert aus der gleichen Zeile in der Quelltabelle. Daher verwenden Sie keinen festen Wert für den Indexer, sondern die neue Systemspalte "SYS_ROW_NUMBER".

Das Problem dabei: Wenn Sie nur die Systemspalte "SYS_ROW_NUMBER" verwenden, erhalten Sie zunächst nicht die gewünschte Zeile:

DW_NEW_ITEMS[NEW_I_NAME](DW_EXAMPLE[SYS_ROW_NUMBER])

Dieser Ausdruck gibt nämlich den Wert der nächsten Zeile in der Spalte "New Name" der Tabelle "New Items" zurück. Das heißt, wenn z. B. die erste Zeile der Tabelle "Einzelposten" verarbeitet wird, wird der Wert der zweiten Zeile der Tabelle "Neue Posten" zurückgegeben.

Dies liegt daran, dass "[SYS_ROW_NUMBER]" den Wert "1" zurückgibt und der effektive Ausdruck dann DW_NEW_ITEMS[NEW_I_NAME](1) lautet.

Um den richtigen Wert der gleichen Zeile zu erhalten, müssen Sie 1 von der Systemspalte "SYS_ROW_NUMBER" abziehen.

DW_NEW_ITEMS[NEW_I_NAME]((DW_EXAMPLE [SYS_ROW_NUMBER]-1))

Sys Row

Dies gibt den Wert der gleichen Zeile in der Spalte "New Name" der Tabelle "New Items" zurück.

Das heißt, wenn z.B. die erste Zeile der Tabelle "Example" verarbeitet wird, wird der Wert der ersten Zeile der Tabelle "New Items" zurückgegeben.

Dies liegt daran, dass "[SYS_ROW_NUMBER]-1" den Wert "0" liefert und der effektive Ausdruck dann DW_NEW_ITEMS[NEW_I_NAME](0) lautet.

Die arithmetischen Ausdrücke finden Sie in der Dokumentation Workflow Expression Parser.

Unterstützte Versionen: DocuWare Cloud