Use Sterling B2B Integrator to Start a Sterling Connect:Direct Run Task

In this sample, shown in BPML, modify the Sterling B2B Integrator business process to start and wait on a program on the Sterling Connect:Direct® server via a Run Task after the source file is copied. The program may be a program or script. The Connect:Direct Server Adapter does not verify the validity of the submitted program, but it does wait for the submitted job to complete before moving to the next service in the business process. The program or script runs as a separate process.

The CD Server Run Task Service is placed after the CopyTo Service. The Run Task Service passes pgm(C:\Windows\notepad.exe) desktop(yes) to the remote Sterling Connect:Direct server via the SystemOpts parameter. (SystemOpts is the equivalent of Sysopts.) This causes the Microsoft Windows Notepad application to run on the Sterling Connect:Direct server.

Note: Do not enclose the value specified for SystemOpts in double quotes.

To see BPML source code like the example shown below, select View > Source while using the Sterling B2B Integrator Graphical Process Modeler (GPM). To see the business process as depicted in the GPM user interface, select View > Graph.

<process name="CopyToCD_RunTask">
  <sequence>
    <operation name="File System Adapter">
      <participant name="CollectForCD"/>
      <output message="FileSystemInputMessage">
        <assign to="Action">FS_COLLECT</assign>
        <assign to="filter">daily.txt</assign>
        <assign to="collectionFolder">C:\Collection</assign>
        <assign to="deleteAfterCollect">false</assign>
        <assign to="." from="*"></assign>
      </output>
      <input message="inmsg">
        <assign to="." from="*"></assign>
      </input>
    </operation>
    <operation name="CD Server Begin Session Service">
      <participant name="CDServerBeginSession"/>
      <output message="CDServerBeginSessionServiceTypeInputMessage">
        <assign to="LocalCDNodeName">SI51CD</assign>
        <assign to="RemoteCDNodeName">CDWIN</assign>
        <assign to="RemotePasswd">xxxxxxxx</assign>
        <assign to="RemoteUserId">cduser</assign>
        <assign to="UsingObscuredPasswd">NO</assign>
        <assign to="." from="*"></assign>
      </output>
      <input message="inmsg">
        <assign to="." from="*"></assign>
      </input>
    </operation>    <sequence name="Sequence Start">
      <operation name="CD Server CopyTo Service">
        <participant name="CDServerCopyTo"/>
        <output message="CDServerCopyToServiceTypeInputMessage">
          <assign to="RemoteFileName">cd.txt</assign>
          <assign to="SessionToken" from="//BeginSessionResults/SessionToken/node()">
          </assign>
          <assign to="." from="*"></assign>
        </output>
        <input message="inmsg">
          <assign to="." from="*"></assign>
        </input>
      </operation>
      <operation name="CD Server Run Task Service">
        <participant name="CDServerRunTask"/>
        <output message="CDServerRunTaskServiceTypeInputMessage">
          <assign to="SessionToken" from="//BeginSessionResults/SessionToken/node()">
          </assign>
          <assign to="SystemOpts">pgm(C:\Windows\notepad.exe) desktop(yes)</assign>
          <assign to="." from="*"></assign>
        </output>
        <input message="inmsg">
          <assign to="." from="*"></assign>
        </input>
      </operation>
      <operation name="CD Server End Session Service">
        <participant name="CDServerEndSession"/>
        <output message="CDServerEndSessionServiceTypeInputMessage">
          <assign to="SessionToken" from="//BeginSessionResults/SessionToken/node()">
          </assign>
          <assign to="." from="*"></assign>
        </output>
        <input message="inmsg">
          <assign to="." from="*"></assign>
        </input>
      </operation>
      <onFault>
        <operation name="CD Server End Session Service">
          <participant name="CDServerEndSession"/>
          <output message="CDServerEndSessionServiceTypeInputMessage">
            <assign to="SessionToken" from="//BeginSessionResults/SessionToken/node()">
            </assign>
            <assign to="." from="*"></assign>
          </output>
          <input message="inmsg">
            <assign to="." from="*"></assign>
          </input>
        </operation>
      </onFault>
    </sequence>
  </sequence>
</process>