Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

How to write a workflow with modifiers?

Jira Legacy
showSummaryfalse
serverJIRA (mqidentity.atlassian.net)
serverId77fb3325-4051-36d9-bcc7-761f62050707
keyDOCS-8

...

ConstructModifierDomainDescriptionDefault
Workflow  

Examples:

<Workflow  Limit="1" Live="1" Timeout="-1">...</Workflow>

<Workflow  Limit="5" Live="2" Timeout="PT3M">...</Workflow>

 
 Limit-1..nThe 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..nThe 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 parallel10
 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  

Examples:

<Task name="Main" while="true">...</Task>

 
 While

true, false

Logical expression for repeatable tasks (only true/false is currently supported) (if false use variable not streams)false
   

 

 

Invoke

  

Examples:

<Invoke name="InvokeSerialRead" waitFor="Argument" get="perif://">...</Invoke>

<Invoke name="SetState" Skipif="[%:[:AA:].State/no-value(Value):%]" WaitFor="ActionArgument" Delay="PT5S">...</Invoke>

 
 

Invoke

   

More examples needded here

 
 SkipIf (skip-if)true, falseA logical expression to skip the invoke execution (mutually exclusive with OnlyIf) - the output will be nullNull 
 OnlyIf (only-if)true, falseA logical expression to execute invoke conditionally (mutually exclusive with SkipIf) 
 DelayDurationSynonym for of DelayBefore (mutually exclusive with DelayUntil, Timeout) 
 DelayBeforeDurationInvoke execution delay interval (delay before invoke starts executing) - Mutually exclusive with Timeout and DelayUntil 
 DelayAfterDurationTime to wait after invoke is completed for before the next invoke in the same task to startstarts 
 DelayUntilDateTimeAbsolute invoke execution time (Mutually exclusive with DelayBefore and Timeout) 
 GetURI  
 PostURI  
 PutURI  
 DeleteURI 
  WaitFor A logical expression of possibly multiple outputs/events  TimeoutDurationInvoke type dependent hint. Different invoke types may interpret it differently (Mutually exclusive with Delay and DelayUntil) - only relevant if handler understands it, maybe not be in use currently (synonym of delay), use delay insteadThe output(s)/event(s) that will allow the Invoke to continue. Until the WaitFor is met, the Invoke will be suspended 
 UnlessName of the Output from another taskDelay termination output/event.  Usually used with timeout/delaydelay. The output/event will terminate the delay and start the Invoke. This can be an event or the output from another task.