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
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>
  <Namespace name="WdlTest">
    <Task name="Input" while="true">
      <Output name="Command"/>
    </Task>
    <Task name="WdlTestTask">
      <Input name="Command" value="Input.Command"/>
      <Variable name="MyVar" type="int" value="3"/>
      <Invoke name="JexlTest">
        <JexlScript>

               var file = sffInvoke.getName()+".Variable.xml";
               var vars = sff:loadTxt(file);
               if(vars != null)
                      Variable = vars;
                      sffLog.info("JexlTest: MyVar="+Variable.MyVar);
                      var i = Variable.MyVar;
                      while((i = i - 1) ge 0)
                                 sffLog.info("JexlTest: "+i);
                      var sin1 = math:sin(PI / 2);
                      Variable.MyVar = Variable.MyVar + 1;
                      Variable.MyVar1 = Variable.MyVar;
                      Variable.add("MyVar1", Variable.MyVar + 1);
                      sff:saveTxt(file, Variable);
                      return Input.Command.toString().concat(Variable.MyVar.toString()).concat("5:").concat(sin1.toString());

        </JexlScript>
      </Invoke>
      <Output name="Result" value="[%:Invoke.JexlTest:%]"/>
    </Task>
     ...
    <Task name="ResponseWdlTestTask">
      <Input name="Command" value="Input.Command"/>
      <Input name="Result" value="WdlTestTask.Result"/>
      <Invoke name="Respond" fid="wdl">
        <FacetScript>
          <DoResponse target="wdl:*">
            <Process>
              <Message type="json"xmlns="http://test">
                <Value>
                  <command>[%:Input.Command:%]</command>
                  <result>[%:Input.Result:%]</result>
                </Value>
              </Message>
            </Process>
          </DoResponse>
        </FacetScript>
      </Invoke>
       ...
    </Task>
  </Namespace>
</Workflow>


Referenced by: WfTask

...

Panel
borderStylesolid
titleLogInvoke

Example<Task name="Trigger">

  <!--Input name="Start" value="Event.RFID"/-->  <Log level="info" name="Wait1" WaitFor="(Event1 or Event2) and (Event3 or Event4)" message="Trigger1 ([:WaitFor:])"/>

  <Log level="info" name="Wait2" WaitFor="Event1 and Event3" message="Trigger2 ([:WaitFor:])"/>

  <Log level="info" name="Wait3" WaitFor="Event2 and Event4" message="Trigger3 ([:WaitFor:])"/>

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

  <Output name="Event2"/>

  <Output name="Event3"/>

  <Output name="Event4"/>

</Task>


Referenced by:

...

Example
Panel
borderStylesolid
titleInvokeGroup


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

 

Referenced by:


Workflow invokes with the Invoke tab name:

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

...

Panel
borderStylesolid
titleCommonInvokeArguments
Example

<Workflow Limit="1" Live="1" Timeout="0">

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

</Workflow>

 

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
<Task name="WdlTestTask">
  <Input name="Command" value="Input.Command"/>
  <Variable name="MyVar" type="int" value="3"/>
  <Invoke name="JexlTest">
    <JexlScript>

          var file = sffInvoke.getName()+".Variable.xml";
          var vars = sff:loadTxt(file);
                if(vars != null)
                        Variable = vars;
                sffLog.info("JexlTest: MyVar="+Variable.MyVar);
                var i = Variable.MyVar;
                while((i = i - 1) ge 0)
                      sffLog.info("JexlTest: "+i);
                var sin1 = math:sin(PI / 2);
                Variable.MyVar = Variable.MyVar + 1;
                Variable.MyVar1 = Variable.MyVar;
                Variable.add("MyVar1", Variable.MyVar + 1);
                sff:saveTxt(file, Variable);
                return Input.Command.toString().concat(Variable.MyVar.toString()).concat("5:").concat(sin1.toString());
<!-- JexlScript Code -->

      </JexlScript>
  </Invoke>
  <Output name="Result" value="[%:Invoke.JexlTest:%]"/>
</Task>


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)

...