Zum Inhalt

Element <mapping>

Zweck: Fügt während der geordneten Mapping-Phase Produktfelder bedingt hinzu oder überschreibt sie.

Warum: Verwende dieses Element, um Felder in der geordneten Transformationsphase bedingt zu ergänzen oder zu überschreiben.

Beispiel

1
<mapping if="risk_profile == 'High'" set="interest_rate = 0.15"/>

Entscheidungshilfe

Fachlicher Nutzen: Hält geordnete Source-to-Target-Transformationen explizit, statt sie in einem großen Skript zu verstecken.

  • Verwenden, wenn

    • Wenn eine Quellzeile bedingt Produktfelder ergänzt oder überschreibt.
  • Anderen Ansatz wählen, wenn

    • Wenn nur Validierung nötig ist oder ein key script den Feldwert bereits klar ausdrückt.
  • Voraussetzungen

    • Platziere Mappings nach sourceConstraints in der benötigten Auswertungsreihenfolge.
  • Alternativen

    • Verwende key script für eine feldlokale Ableitung. (Siehe: <key>)
    • Verwende rule für eine explizite bedingte Aktion außerhalb der Mapping-Phase. (Siehe: <rule>)

Vollständige Beispiele

Quelldatensätze in expliziten Phasen filtern, transformieren und prüfen

Verwende Source-Constraints vor der Transformation, Mappings in Dokumentreihenfolge und Target-Constraints ausschließlich auf dem fertigen Ausgabedatensatz.

rule-pipeline/data/customers.json
1
2
3
4
5
6
[
  {"customer_id": "C-100", "active": true,  "income": 120000, "credit_score": 780},
  {"customer_id": "C-200", "active": false, "income": 90000,  "credit_score": 760},
  {"customer_id": "C-300", "active": true,  "income": 60000,  "credit_score": 700},
  {"customer_id": "C-400", "active": true,  "income": 18000,  "credit_score": 650}
]
rule-pipeline/datamimic.xml
1
2
3
4
5
6
7
8
9
<setup numProcess="1">
    <generate name="eligible_customers" count="4" source="data/customers.json" target="LogExporter">
        <sourceConstraints if="active == False" require="False"/>
        <mapping if="income >= 100000 and credit_score >= 750" set="segment = 'premium'"/>
        <mapping if="not (income >= 100000 and credit_score >= 750)" set="segment = 'standard'"/>
        <mapping if="True" set="monthly_budget = income / 12"/>
        <targetConstraints if="30000 > income" require="False"/>
    </generate>
</setup>

Regeln und ungültige Kombinationen

E005 — Rule Eval Failed

Failed to evaluate {kind} '{expr}' for <{element_tag}>{descriptor}{cause_clause}

Warum: A runtime error was classified in this top-level error category.

Lösung: Inspect the nested issue code and descriptor context for the actionable resolution.

Vollständige Regel

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.

set

Expression or Python assignment applied when the condition is true.

erforderlich; string.