Workflow modifiers define the behaviors of a workflow.
Construct | Modifier | Domain | Description | Default | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Workflow |
| |||||||||||
Limit | -1..n | The maximum number of workflow instances of the same model waiting at any given time (they are pre-created instances existing in the buffer) | 10 | |||||||||
Live | -1..n | The maximum number of workflow instances of the same model allowed to run (in parallel) at the same time. (For example, a workflow receives inputs of X value and Y value and calculates X+Y=Z. When the first X and Y values are received, a workflow instance starts the process of calculation. While the calculation is taking 1 second to complete, a new set of X and Y values are received before the current instance is completed. Therefore a new workflow instance will start calculating X+Y from the new values. These two instances are running in parallel | 10 | |||||||||
Timeout | -1..n | The period of time of inactivity after which a workflow instance is considered dead and removed from the buffer. Both XSD time period format and plain number of milliseconds are allowed. Timeout = "-1" means the workflow will never time out. | PT1M | |||||||||
Task |
| |||||||||||
While | true, false | Logical expression for repeatable tasks (only true/false is currently supported) (if false use variable not streams) | false | |||||||||
| ||||||||||||
Invoke |
More examples needed here
| |||||||||||
SkipIf (skip-if) | true, false | A logical expression to skip the invoke execution (mutually exclusive with OnlyIf) - the output will be Null
get = "[%:[:AA:].URL.Value:%]/cgi-bin/decoder_control.cgi?[:UP:][%:amp:%]command=15[%:amp:%]sit=[%:[:AD:].Preset.Value:%]" /> | ||||||||||
OnlyIf (only-if) | true, false | A logical expression to execute invoke conditionally (mutually exclusive with SkipIf) | ||||||||||
Delay | Duration | Synonym of DelayBefore (mutually exclusive with DelayUntil, Timeout)
get = "[%:[:AA:].URL.Value:%]/cgi-bin/video_snapshot.cgi?[:UP:]" /> | ||||||||||
DelayBefore | Duration | Invoke execution delay interval (delay before invoke starts executing) - Mutually exclusive with Timeout and DelayUntil | ||||||||||
DelayAfter | Duration | Time to wait after invoke is completed before the next invoke in the same task starts
get = "[%:[:AA:].URL.Value:%]/cgi-bin/decoder_control.cgi?[:UP:][%:amp:%]command=15[%:amp:%]sit=[%:[:AD:].Preset.Value:%]" /> | ||||||||||
DelayUntil | DateTime | Absolute invoke execution time (Mutually exclusive with DelayBefore and Timeout) | ||||||||||
WaitFor | The output(s)/event(s) that will allow the Invoke to continue. Until the WaitFor is met, the Invoke will be suspended
get = "[%:[:AA:].URL.Value:%]/cgi-bin/video_snapshot.cgi?[:UP:]" /> | |||||||||||
Unless | Usually used with delay. The output/event will terminate the delay and start the Invoke. This can be an event or the output from another task. |