Zum Hauptinhalt springen

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​

EigenschaftTypErforderlichBeschreibung
pathstringJaPfad zu dem im Datenkontext zu vergleichenden Wert
operatorCompareOperatorNeinVergleichsoperator (Standard: Equals)
valueanyNein*Statischer Wert, gegen den verglichen wird
valuePathstringNein*Pfad zu einem dynamischen Wert, gegen den verglichen wird
valueTypeAttributeValueTypeJaDatentyp der verglichenen Werte
transformationsarrayNeinSub-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​

OperatorBeschreibungAliase
EqualsPrüft, ob die Werte gleich sindEqual
NotEqualsPrüft, ob die Werte ungleich sindNotEqual
ContainsPrüft, ob ein String eine Teilzeichenkette enthält (Groß-/Kleinschreibung wird ignoriert)Contain
LessThanPrüft, ob der Wert kleiner als der Vergleichswert ist-
LessEqualsThanPrüft, ob der Wert kleiner oder gleich ist-
GreaterThanPrüft, ob der Wert größer als der Vergleichswert ist-
GreaterEqualsThanPrüft, ob der Wert größer oder gleich ist-
StartsWithPrüft, ob ein String mit einem Präfix beginnt (Groß-/Kleinschreibung wird ignoriert)-
EndsWithPrüft, ob ein String mit einem Suffix endet (Groß-/Kleinschreibung wird ignoriert)-
RegexMatchPrüft, ob ein String einem regulären Ausdruck entspricht-

Unterstützte Werttypen​

  • Boolean
  • Int (32-Bit-Ganzzahl)
  • Int64 (64-Bit-Ganzzahl)
  • Double
  • String
  • DateTime
  • Enum (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 RegexMatch verwendet die standardmäßige .NET-Syntax für reguläre Ausdrücke und beachtet die Groß-/Kleinschreibung
  • Vergleichsoperatoren (LessThan, GreaterThan usw.) 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 RegexMatch müssen Escape-Backslashes in YAML-Strings verdoppelt werden (z. B. "\\d+" für Ziffernabgleich)