if
Control flow with if-then-else construction.
Description
Control flow with if-then-else construction.
Run nodes of children followed child_if or child_else.
When the flow of child_if or child_else is finished, then run children of if node.
Parameters
Parameter |
Type |
Required |
Default |
Comment |
---|---|---|---|---|
child_else | node |
No |
None |
Reference to the node to be processed if the condition parameter evaluates to False. |
child_if | node |
No |
None |
Reference to the node to be processed if the condition parameter evaluates to True. |
condition | expression |
Yes |
- |
The condition that determines the execution path in a conditional branch. |
Examples
# Print true if flowdata['cond'] is OK else print false.
# Parent node can be set with parent field as <node name>.<field name>
# ┌─> true message ─┐
# if ─┤ ├─> out
# └─> false message ─┘
# Output: No output
- if:
name: "if"
condition: "fd.cond == 'OK'"
- message:
name: "true message"
msg: "true"
out_field: "message"
parent: "if.child_if"
- message:
name: "false message"
msg: "false"
out_field: "message"
parent: "if.child_else"
- stdout:
name: "out"
src: "{{ fd.message }}"
parent: "if"
# This example behaves in the same way as the one above.
# ┌─> true message ──> out true
# if ─┤
# └─> false message ──> out false
- if:
name: "if"
condition: "macro.cond == 'OK'"
- message:
name: "true message"
msg: "true"
parent: "if.child_if"
- stdout:
name: "out true"
src: "{{ fd['true message'] }}"
- message:
name: "false message"
msg: "false"
parent: "if.child_else"
- stdout:
name: "out false"
src: "{{ fd['false message'] }}"