Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleExpand to see legends and methodology

Include Page
Legends and methodologyLegends and methodologyMethodology
Methodology

Go to page

Anchor
Workflow grammar
Workflow grammar
Gliffy
nameWorkflow grammar

...

Panel
borderStylesolid
titleWfTask

<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).

...

Panel
borderStylesolid
titleWfResult

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  <Workflow 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:

...

Panel
borderStylesolid
titleWfReturn

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:

...

Panel
borderStylesolid
titleWfInput

Example

<Workflow>
     ...
    <Task name="WdlTestTask">
      <Input name="Command" value="Input.Command"/>
       ...
    </Task>
  </Namespace>
</Workflow>


Referenced by: WfTask

Anchor
WfOutput grammar
WfOutput grammar
Gliffy
nameWfOutput grammar

Panel
borderStylesolid
titleWfOutput

Example 

<Task name="Event" while="true">

         <Output name="RFID" skip-if="$NotOnSchedule([30..59/30sec])"/>

</Task>


Referenced by: WfTask


Output of workflow

  • SkipIf: Value guard. A logical expression to accept or reject the value.

...

Panel
borderStylesolid
titleLogInvoke

Example

  <Log level="info" name="Wait1" WaitFor="(Event1 or Event2) and (Event3 or Event4)" message="Trigger1 ([:WaitFor:])"/>


Referenced by:

...

Example

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


 

Referenced by:


Workflow invokes with the Invoke tab name:

  • Name: Optional invoke name.
  • ExecuteInvoke - Command line invoke.

...

Panel
borderStylesolid
titleCommonInvokeArguments
Example
 

<Invoke name="ReadId" waitFor="Argument" get="[%:Event.Argument.URL.Value:%]"StopChar="0x0D" ReadTimeout="-1" WriteTimeout="-1" RepeatDelay="1"/>


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).

...

Panel
borderStylesolid
titleScriptInvoke

Example 
<Invoke name="JexlTest">
    <JexlScript>

          <!-- JexlScript Code -->

      </JexlScript>
</Invoke>


Referenced by: InvokeGroup

...

Panel
borderStylesolid
titleExecuteInvoke

Example 

<Invoke name="GetImage" url="[:Cart.URL:]" execute="sshpass ssh -o ConnectTimeout=10 -p 22 <usename>@<hostname> ls" />


Referenced by:


ExecuteInvoke - command line invoke

  • Execute: Command line to execute.
  • StdIn: Optional content of stdin stream.

...

Panel
borderStylesolid
titleHTTP Communications

Example 

<Invoke name="neoRoot" get="http://localhost:7474/db/data/"/>

<Invoke name="Activate" post="[:Cart.URL:]/putxml" skip-if="[:isActive:]">


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.

...

Panel
borderStylesolid
titleWfMessage

Example

<Message type="text/xml">

     <Value>

           <Command>

                       <Standby>

                              <Deactivate/>

                        </Standby>

             </Command>  

      </Value>

</Message>


Referenced by:

...

Panel
borderStylesolid
titleSerial Communications

Example

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


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.*).

...

Panel
borderStylesolid
titleCommonRxTxInvokeArguments

Example 

<CreatePipeline arguments="RxTxServerExtensionArgs"

                            BaudRate="2400" StopChar="0x0D" />



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.

...

Panel
borderStylesolid
titlePhidget Communications

Example

<Invoke name="ReadValue" waitFor="Argument"

                        post="phid://" SerialNumber="2"

                        DeviceType="PhidgetGPS"  delay="5" />



Referenced by:

...

Panel
borderStylesolid
titleCommonPhidInvokeArguments

Example

<Invoke name="ReadValue" waitFor="Argument"

                        post="phid://" SerialNumber="2"

                        DeviceType="PhidgetGPS"  delay="5" />


Referenced by: Phidget Communications (PhidInvokeArguments)

...

Panel
borderStylesolid
titlePerif Communications

Example

<Invoke name="InvokeZbee" waitFor="Argument" post="perif://">

  <Message>

    <Value>

      <InterfacePort>/dev/ttyUSB0</InterfacePort>

      <Baudrate>9600</Baudrate>

      <Interface>serial</Interface>

      <UniqueId>92034</UniqueId>

      <Operation>receive</Operation>

      <format>ascii</format>

      <Payload>$Null()</Payload>

      <Peripheral>serial</Peripheral>

    </Value>

  </Message>

</Invoke>



Referenced by:

...

Panel
borderStylesolid
titleCommonPerifInvokeArguments

Example

<Invoke name="InvokeZbee" waitFor="Argument" post="perif://">

  <Message>

    <Value>

      <InterfacePort>/dev/ttyUSB0</InterfacePort>

      <Baudrate>9600</Baudrate>

      <Interface>serial</Interface>

      <UniqueId>92034</UniqueId>

      <Operation>receive</Operation>

      <format>ascii</format>

      <Payload>$Null()</Payload>

      <Peripheral>serial</Peripheral>

    </Value>

  </Message>

</Invoke>

 


Referenced by: Perif Communications (PerifInvokeArguments)

...

Panel
borderStylesolid
titleUSBCam Communications

Example

<Invoke name="GetImage" waitFor="ActionArgument" post="ucam://" >

  <Message>

    <Value>

      <USBCameraParameters>

        <ImageFormat></ImageFormat>

        <SaveToDisk></SaveToDisk>

        <ImageName></ImageName>

        <Size>

          <Height></Height>

          <Width></Width>

        </Size>

        <Configuration>

          <Standard></Standard>

          <Quality></Quality>

          <Channel></Channel>

          <Brightness></Brightness>

          <Contrast></Contrast>

          <Gamma></Gamma>

          <Gain></Gain>

          <Sharpness></Sharpness>

          <Saturation></Saturation>

          <Hue></Hue>

        </Configuration>

      </USBCameraParameters>

    </Value>

  </Message>

</Invoke>


Referenced by:

...

Panel
borderStylesolid
titleCommonUcamInvokeArguments

Example

<Invoke name="GetImage" waitFor="ActionArgument" post="ucam://" >

  <Message>

    <Value>

      <USBCameraParameters>

        <ImageFormat></ImageFormat>

        <SaveToDisk></SaveToDisk>

        <ImageName></ImageName>

        <Size>

          <Height></Height>

          <Width></Width>

        </Size>

        <Configuration>

          <Standard></Standard>

          <Quality></Quality>

          <Channel></Channel>

          <Brightness>]</Brightness>

          <Contrast></Contrast>

          <Gamma></Gamma>

          <Gain></Gain>

          <Sharpness></Sharpness>

          <Saturation></Saturation>

          <Hue></Hue>

        </Configuration>

      </USBCameraParameters>

    </Value>

  </Message>

</Invoke>

 


Referenced by: USBCam Communications (UcamInvokeArguments)

...

Panel
borderStylesolid
titleSMTP Communications

Example

<Invoke name="ReadValue" waitFor="Argument" post="smtp:<MailServer>" Hostname="<MailServer>">

  <Message>

    <Value>

      <Port>[:Port:]</Port>

      <Username>[:Username:]</Username>

      <Password>[Password:]</Password>

      <From>[:From:]</From>

      <To>[:To:]</To>

      <CC>[:CC:]</CC>

      <Subject>[:Subject:]</Subject>

      <Body>[:Body:]</Body>

      <StartTLS>[:StartTLS:]</StartTLS>

    </Value>

  </Message>

</Invoke>


Referenced by:

...

Panel
borderStylesolid
titleCommonSMTPInvokeArguments

Example

<Invoke name="ReadValue" waitFor="Argument" post="smtp:<MailServer>" Hostname="<MailServer>">

  <Message>

    <Value>

      <Port>[:Port:]</Port>

      <Username>[:Username:]</Username>

      <Password>[Password:]</Password>

      <From>[:From:]</From>

      <To>[:To:]</To>

      <CC>[:CC:]</CC>

      <Subject>[:Subject:]</Subject>

      <Body>[:Body:]</Body>

      <StartTLS>[:StartTLS:]</StartTLS>

    </Value>

  </Message>

</Invoke>


Referenced by: SMTP Communications (CommonSMTPInvokeArguments)

...