If@1
Der Node If@1 ermöglicht es, eine Sub-Transformations-Pipeline auf Basis einer Bedingung auszuführen. Der Node wertet eine Bedingung aus und führt, wenn sie wahr ist, die verschachtelten Transformationen aus.
Adapter-Voraussetzungen
- Allgemeine Verfügbarkeit: Alle Adapter unterstützen diesen Node-Typ.
Node-Konfiguration
Zum Feld path siehe Überblick.
Konfigurationseigenschaften
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
path | string | Ja | Pfad zu dem im Datenkontext zu vergleichenden Wert |
operator | CompareOperator | Nein | Vergleichsoperator (Standard: Equals) |
value | any | Nein* | Statischer Wert, gegen den verglichen wird |
valuePath | string | Nein* | Pfad zu einem dynamischen Wert, gegen den verglichen wird |
valueType | AttributeValueType | Ja | Datentyp der verglichenen Werte |
transformations | array | Nein | Sub-Pipeline, die ausgeführt wird, wenn die Bedingung wahr ist |
*Entweder value oder valuePath muss angegeben werden (oder beide können für Null-Prüfungen null sein).
Unterstützte Operatoren
| Operator | Beschreibung | Aliase |
|---|---|---|
Equals | Prüft, ob die Werte gleich sind | Equal |
NotEquals | Prüft, ob die Werte ungleich sind | NotEqual |
Contains | Prüft, ob ein String eine Teilzeichenkette enthält (Groß-/Kleinschreibung wird ignoriert) | Contain |
LessThan | Prüft, ob der Wert kleiner als der Vergleichswert ist | - |
LessEqualsThan | Prüft, ob der Wert kleiner oder gleich ist | - |
GreaterThan | Prüft, ob der Wert größer als der Vergleichswert ist | - |
GreaterEqualsThan | Prüft, ob der Wert größer oder gleich ist | - |
StartsWith | Prüft, ob ein String mit einem Präfix beginnt (Groß-/Kleinschreibung wird ignoriert) | - |
EndsWith | Prüft, ob ein String mit einem Suffix endet (Groß-/Kleinschreibung wird ignoriert) | - |
RegexMatch | Prüft, ob ein String einem regulären Ausdruck entspricht | - |
Unterstützte Werttypen
BooleanInt(32-Bit-Ganzzahl)Int64(64-Bit-Ganzzahl)DoubleStringDateTimeEnum(als Ganzzahl gespeichert)
Beispiel: Einfache Gleichheitsprüfung
transformations:
- type: If@1
path: $.customer.age
operator: Equals
value: 18
valueType: Int
transformations:
- type: SetPrimitiveValue@1
targetPath: $.customer.isAdult
value: true
Beispiel: Bereichsprüfung mit dynamischem Wert
transformations:
- type: If@1
path: $.product.price
operator: GreaterThan
valuePath: $.customer.budget
valueType: Double
transformations:
- type: SetPrimitiveValue@1
targetPath: $.warnings
value: "Product exceeds customer budget"
Beispiel: String-Contains-Prüfung
transformations:
- type: If@1
path: $.customer.email
operator: Contains
value: "@company.com"
valueType: String
transformations:
- type: SetPrimitiveValue@1
targetPath: $.customer.isEmployee
value: true
Beispiel: Null-Wert-Prüfung
transformations:
- type: If@1
path: $.customer.middleName
operator: NotEquals
value: null
valueType: String
transformations:
- type: Simulation@1
simulations:
- targetPath: $.customer.fullName
simulatorKey: Person.FullName
Beispiel: String-StartsWith-Prüfung
transformations:
- type: If@1
path: $.product.sku
operator: StartsWith
value: "ELEC-"
valueType: String
transformations:
- type: SetPrimitiveValue@1
targetPath: $.product.category
value: "Electronics"
Beispiel: String-EndsWith-Prüfung
transformations:
- type: If@1
path: $.file.name
operator: EndsWith
value: ".pdf"
valueType: String
transformations:
- type: SetPrimitiveValue@1
targetPath: $.file.type
value: "Document"
Beispiel: Übereinstimmung mit regulärem Ausdruck
transformations:
- type: If@1
path: $.customer.phone
operator: RegexMatch
value: "^\\+1[0-9]{10}$"
valueType: String
transformations:
- type: SetPrimitiveValue@1
targetPath: $.customer.region
value: "North America"
Hinweise zum Verhalten
- String-Operatoren (
Contains,StartsWith,EndsWith) führen Vergleiche ohne Beachtung der Groß-/Kleinschreibung durch - Der Operator
RegexMatchverwendet die standardmäßige .NET-Syntax für reguläre Ausdrücke und beachtet die Groß-/Kleinschreibung - Vergleichsoperatoren (
LessThan,GreaterThanusw.) erfordern vergleichbare Werttypen - Null-Werte werden bei Gleichheits-/Ungleichheitsprüfungen korrekt behandelt
- Wenn die Bedingung nicht erfüllt ist, werden die Sub-Transformationen übersprungen und die Verarbeitung wird fortgesetzt
- Der Datenkontext bleibt nach Abschluss der bedingten Transformationen erhalten
- Bei
RegexMatchmüssen Escape-Backslashes in YAML-Strings verdoppelt werden (z. B."\\d+"für Ziffernabgleich)