Zum Inhalt

Element <rule>

Zweck: Führt eine Regelaktion im aktuellen Datenkontext bedingt aus.

Warum: Verwende dieses Element für eine bedingte Zuweisung im aktuellen Kontext, wenn eine explizite Regel verständlicher ist.

Beispiel

1
<rule if="customer.is_adult" then="customer.status = 'adult'"/>

Entscheidungshilfe

Fachlicher Nutzen: Stellt eine bedingte fachliche Zuweisung oder Filterentscheidung als explizite Regel im aktuellen Kontext dar.

  • Verwenden, wenn

    • Wenn eine benannte Bedingung und Aktion klarer sind als ein größerer Zweig oder Mapping-Workflow.
    • Wenn ein passender Datensatz mit then='False' verworfen werden muss.
  • Anderen Ansatz wählen, wenn

    • Wenn Validierung, mehrstufige Verzweigung oder gewöhnliche Felderzeugung benötigt wird.
  • Voraussetzungen

    • Stelle sicher, dass alle referenzierten Werte bereits im Scope liegen.
  • Alternativen

    • Verwende mapping für geordnete Quelltransformations-Zuweisungen. (Siehe: <mapping>)
    • Verwende condition, wenn mehrere Kindelemente einen Zweig bilden. (Siehe: <condition>)

Vollständige Beispiele

Ein Feld nur bei zutreffender fachlicher Regel zuweisen

Verwende rule für eine bedingte Zuweisung innerhalb eines Kontrollflusszweigs; für die normale geordnete Quelltransformation ist mapping vorgesehen.

conditional-assignment/datamimic.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<setup>
    <generate name="decisions" count="2" target="LogExporter">
        <key name="id" generator="IncrementGenerator"/>
        <key name="risk_score" script="20 if id == 1 else 80"/>
        <condition>
            <if condition="True">
                <rule if="risk_score >= 50" then="decision = 'review'"/>
                <rule if="50 > risk_score" then="decision = 'approve'"/>
            </if>
        </condition>
    </generate>
</setup>

Regeln und ungültige Kombinationen

Keine zusätzlichen elementspezifischen Regeln. Pflichtattribute, Typen und unterstützte Werte stehen unten.

Erlaubte Elternelemente / Erlaubte Kindelemente

Erlaubte Elternelemente: else, else-if, generate, if, iterate, nestedKey, while

Erlaubte Kindelemente:

Keine

Attribute

Alle 2 Attribute anzeigen

if

Condition to evaluate.

erforderlich; string.

then

Action to take if condition is true; literal False discards the current record.

erforderlich; string.