<
Workflow
Limit
=
"1"
Live
=
"1"
Timeout
=
"-1"
>...</Workflow>
<
Workflow
Limit
=
"5"
Live
=
"2"
Timeout
=
"PT3M"
>...</Workflow>
Referenced by:
Overall workflow structure definition
Limit: Maximum number of workflow instances existing at any given time.
Live: Maximum number of workflow instances running at the same time.
Timeout: Period of time after which a workflow instance is considered dead. Both XSD time period format and plain number of milliseconds allowed.
<Task name="Main" while="true">
<Event name="Argument" as="ActionArgument"/>
<Invoke name="ReadId" waitFor="Argument" get="[%:Event.Argument.URL.Value:%]"StopChar="0x0D" ReadTimeout="-1" WriteTimeout="-1" RepeatDelay="1"/>
<Output name="Result" as="ActionResult">
<Value>
<RFID>[%:[%:@Output:%]Invoke.ReadId.Message.Value:%]</RFID>
</Value>
</Output>
</Task>
Referenced by:
Task of workflow
While: Logical expression for repeatable tasks (only true/false is currently supported).
Example
<ThingFacet name="FooFacet">
<String name="fooAttr" KnownBy="fooAc" />
<Action name="fooAc">
<Workflow Limit="1" Live="1">
<Task name="Main">
<Event name="Argument" as="ActionArgument" />
<Invoke name="fooInvoke" waitFor="Argument">
<FacetScript>
<Log Message="Action called...[:Event.Argument:]"/>
<foo fooName="bar"/>
<CreateSubscription SubscriberId="fooTopic" Topic="TQL.Create.CIM.FooDomain.FooModel2.*">
<ActionBody>
<SetContextData key="guard" value="" />
<Log message="IN SUBSCRIBER [:[:$ContextData.guard:]$Request.Message.Value:]" />
</ActionBody>
</CreateSubscription>
<SubmitWf>
<Wf live="1" limit="1" Timeout="PT5S">
<Namespace Name="WorkflowNs">
<Result name="ResponseCompleted" value="Response.$Completed" />
<Task Name="Event" while="true">
<Output Name="Msg" />
</Task>
<Task name="Response">
<Input Name="Msg" Value="Event.Msg" />
<Invoke name="Respond" fid="FooEcho">
<FacetScript>
<DoResponse target="FooEcho">
<Process>
<Message type="json">
<Value>
<Include>Input.Msg</Include>
</Value>
</Message>
</Process>
</DoResponse>
</FacetScript>
</Invoke>
<Log message="exiting workflow" />
</Task>
</Namespace>
</Wf>
</SubmitWf>
</FacetScript>
</Invoke>
<Output name="ActionResult">
<Value>
<fileName>[%:Event.Argument.foo.Value:%]</fileName>
</Value>
</Output>
</Task>
</Workflow>
</Action>
</ThingFacet>
Referenced by:
Example
<Workflow name="ExecuteRemoteQuery">
<Return name="PostDataOutput" value="postTQLQuery.TQLResponse"/>
<Task name="postTQLQuery">
<Invoke name="postTQL" post="[:$Macro.Argument.RemoteTQLEndPoint:]" AutoCloseTimeout="PT15S">
<Message type="xml">
<Value>[:$Macro.Argument.QueryString:]</Value>
</Message>
</Invoke>
<Output name="TQLResponse">
<Value>[:Invoke.postTQL:]</Value>
</Output>
</Task>
</Workflow>
Referenced by:
Example
Referenced by: WfTask
Output of workflow
SkipIf: Value guard. A logical expression to accept or reject the value.
Example
Referenced by:
Common invoke arguments
WaitFor: A logical expression of possibly multiple outputs/events.
Unless: Delay termination output/event. Usually used with timeout/delay.
SkipIf: A logical expression to skip the invoke execution.
OnlyIf: A logical expression to execute invoke conditionally.
DelayUntil: Absolute invoke execution time.
DelayBefore: Invoke execution delay interval (delay before invoke starts executing).
Delay: Synonym for DelayBefore.
Timeout: Invoke type dependent hint. Different invoke types may interpret it differently.
DelayAfterInvoke result delay interval (delay after invoke has completed).
Example
Referenced by:
ExecuteInvoke - command line invoke
Execute: Command line to execute.
StdIn: Optional content of stdin stream.
Example
Referenced by:
HTTP Communications
HTTP GET - HttpGetInvokeArguments.
HTTP PUT - HttpPutInvokeArguments.
HTTP POST - HttpPostInvoke Arguments.
HTTP DELETE - HttpDeleteInvokeArguments.
get: http request URL for the method.
put: http request URL for the method.
post: http request URL for the method.
delete: http request URL for the method.
Example
Referenced by:
Serial Communications
get: device path regular expression (e.g. COM[3-9] or /dev/tty\\.usbserial.*).
put: device path regular expression (e.g. COM[3-9] or /dev/tty\\.usbserial.*).
post: device path regular expression (e.g. COM[3-9] or /dev/tty\\.usbserial.*).
Example
Referenced by:
CommonRxTxInvokeArguments
MaxWait: Maximum message wait time in seconds.
OpenTimeout: Open timeout in msec.
ReadTimeout: Non-communication timeout in seconds.
WriteTimeout: Non-communication timeout in seconds.
RepeatDelay: Duplicate message delay in seconds.
OmitEmpty: Omit empty messages.
Encoding: Apply encoding/decoding to both the input and output. Only supported value is 'URL'.
DecodeOut: Apply decoding to the output message. Only supported value is 'URL'.
EncodeIn: Apply encoding to the input message. Only supported value is 'URL'.
Trim: Trim whitespace.
FlowControl: Possible values: in:rts/cts, out:rts/cts, in:xon/xoff, out:xon/xoff.
BaudRate: Interface baud rate.
DataBits: Possible values: 5,6,7,8.
StopBits: Possible values: 1,2,1.5.
Parity: Possible values: none,odd,even,mark,space.