<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: shell service tasks not showing in runtime tables in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98228#M67702</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;When kicking off a process that doesn't have the async behavior, the calling thread will wait for the engine-call to complete (= process to complete/reach wait-state). Since VAADIN locks a single application (= one user logged in session) to a single thread to prevent concurrency issues. So when trying to refresh, the initial operations should first be finished.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Adding the async=true should overcome this issue IMHO&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Jun 2012 11:18:12 GMT</pubDate>
    <dc:creator>frederikherema1</dc:creator>
    <dc:date>2012-06-20T11:18:12Z</dc:date>
    <item>
      <title>shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98225#M67699</link>
      <description>Hello,I am an activiti noob and am having issues with a Shell Task implementation.&amp;nbsp; Since Shell Tasks are not available in the Activiti Designer yet, i created a Service Task (Java Delegate) that mimics the Shell Task Behavior.&amp;nbsp; These Shell Tasks are running BI processes and take several minutes.&amp;nbsp; I</description>
      <pubDate>Tue, 19 Jun 2012 21:01:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98225#M67699</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-19T21:01:45Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98226#M67700</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;By default, a process flows in a single transaction until a wait-state of process-end (usertaks, receive-task, …) has been encountered. So the thread will only persist stuff in the DB when wait-state has been reached. When process has NO wait-states, there will never be Runtime-entities in the query only history (if turned on).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Take a look at &lt;/SPAN&gt;&lt;A href="http://activiti.org/userguide/index.html#asyncContinuations" rel="nofollow noopener noreferrer"&gt;http://activiti.org/userguide/index.html#asyncContinuations&lt;/A&gt;&lt;SPAN&gt;. This allows persisting process state right before activity is executed and returns control of the running thead. After that, your shellTask is executed async by the job executor.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2012 07:13:33 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98226#M67700</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-20T07:13:33Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98227#M67701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the information.&amp;nbsp; That answers 2 of my questions perfectly.&amp;nbsp; However, what about the behavior i'm seeing in activiti-explorer?&amp;nbsp; Does that sound normal?&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I would expect to be able to have new sessions in activiti-explorer even after i've kicked off a long-running workflow via activiti-explorer "start process".&amp;nbsp; Once i've started the workflow in activiti-explorer that session hangs and attempting to login for new sessions hang.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What am i doing to cause this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks again for your help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2012 11:11:10 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98227#M67701</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-20T11:11:10Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98228#M67702</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;When kicking off a process that doesn't have the async behavior, the calling thread will wait for the engine-call to complete (= process to complete/reach wait-state). Since VAADIN locks a single application (= one user logged in session) to a single thread to prevent concurrency issues. So when trying to refresh, the initial operations should first be finished.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Adding the async=true should overcome this issue IMHO&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2012 11:18:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98228#M67702</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-20T11:18:12Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98229#M67703</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;async="true"&amp;nbsp; appeared to work, but now a different problem appears.&amp;nbsp; After the long-running service task has been running for 5 minutes and 1 second, it appears that activiti is firing off another instance of the same task.&amp;nbsp; I saw it in my logs and also see it in ACT_HI_ACTINST.&amp;nbsp; Activiti does this several times and eventually, the time increase to 10 minutes and then 20 minutes before it hits an integrity constraint.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why am i seeing this behavior?&amp;nbsp; For asynchronous tasks, does Activiti automatically retry the process after 5 minutes if there has been no response?&amp;nbsp; Can i change this behavior?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The task in question is: NetGStageServiceTask&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The shell script is basically a dummy windows batch file that stays busy for 6 minutes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For this test, i am connecting to the demo h2 database.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my bpmn file:&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;BR /&gt;&amp;lt;definitions xmlns="&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;" xmlns:xsi="&lt;A href="http://www.w3.org/2001/XMLSchema-instance" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/A&gt;" xmlns:activiti="&lt;A href="http://activiti.org/bpmn" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn&lt;/A&gt;" xmlns:bpmndi="&lt;A href="http://www.omg.org/spec/BPMN/20100524/DI" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/DI&lt;/A&gt;" xmlns:smileysurprised:mgdc="&lt;A href="http://www.omg.org/spec/DD/20100524/DC" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/DD/20100524/DC&lt;/A&gt;" xmlns:smileysurprised:mgdi="&lt;A href="http://www.omg.org/spec/DD/20100524/DI" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/DD/20100524/DI&lt;/A&gt;" typeLanguage="&lt;A href="http://www.w3.org/2001/XMLSchema" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema&lt;/A&gt;" expressionLanguage="&lt;A href="http://www.w3.org/1999/XPath" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/1999/XPath&lt;/A&gt;" targetNamespace="&lt;A href="http://www.activiti.org/test" rel="nofollow noopener noreferrer"&gt;http://www.activiti.org/test&lt;/A&gt;"&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;process id="DartProcess" name="DartProcess"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;Process definition for Dart BI process.&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;startEvent id="DartWorkflowStart" name="DartWorkflowStart"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="ShellScriptRoot" name="Shell Script Root Directory" type="string" value="${ShellScriptRoot}" variable="ShellScriptRoot" required="true" readable="true" writable="true"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="ShellScriptSuffix" name="Shell Script Suffix" type="string" value="${ShellScriptSuffix}" variable="ShellScriptSuffix" required="true" readable="true" writable="true"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="DartRunDate" name="DartRunDate (mm\/dd\/yyyy)" type="string" value="${DartRunDate}" variable="DartRunDate" required="true" readable="true" writable="true"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/startEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="NetGStageServiceTask" name="NetGStageService Task" activiti:async="true" activiti:class="com.scrippsnetworks.ibi.revenueWorkflows.serviceTasks.ShellServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="command"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${ShellScriptRoot}/ADSD/adsd_staging${ShellScriptSuffix}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="wait"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;true&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="outputVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;netGStageStatus&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="errorCodeVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;netGStageReturnCode&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="arg1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${DartRunDate}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="InfaProcessServiceTask" name="InfaProcessService Task" activiti:async="true" activiti:class="com.scrippsnetworks.ibi.revenueWorkflows.serviceTasks.ShellServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="command"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${ShellScriptRoot}/ADSD/adsd_infa${ShellScriptSuffix}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="wait"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;true&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="outputVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;infaProcessStatus&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="errorCodeVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;infaProcessReturnCode&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="arg1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${DartRunDate}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway2" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway3" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="DartWorkflowEnd" name="DartWorkflowEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;userTask id="FixInfaProcessUserTask" name="FixInfaProcessUserTask" activiti:candidateGroups="InfaGroup, WFGroup"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;DART Informatica Processes failed with status:&lt;BR /&gt;&lt;BR /&gt;${infaProcessStatus}&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="infaProcessContinueWorkflow" name="Continue Workflow?" type="enum" variable="infaProcessContinueWorkflow" default="true" required="true" readable="true" writable="true"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="true" name="Yes"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="false" name="No"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/userTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="FixInfaProcessEmailNotification" name="FixInfaProcessEmailNotification" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="to" expression="aoliver@scrippsnetworks.com,jjohnston@scrippsnetworks.com,mlugonjic@scrippsnetworks.com,cwoodall@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="from" expression="ibiWorkflowEngine@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="subject" expression="DART Infa Process Failure - TEST"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;&amp;lt;![CDATA[This is a test of the DART Infa Process Task workflow.&amp;nbsp; This is only a test.&amp;nbsp; In the event of a real DART Infa Process failure, you will receive an email similar to this one.&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Status is: &amp;lt;br /&amp;gt;&lt;BR /&gt;${infaProcessStatus}&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Sincerely,&amp;lt;br /&amp;gt;&lt;BR /&gt;Your friendly, neighborhood IBI workflow engine]]&amp;gt;&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="FixBOReportPrepEmailNotification" name="FixBOReportPrepEmailNotification" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="to" expression="aoliver@scrippsnetworks.com,jjohnston@scrippsnetworks.com,mlugonjic@scrippsnetworks.com,cwoodall@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="from" expression="ibiWorkflowEngine@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="subject" expression="DART BO Report Prep Failure - TEST"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;&amp;lt;![CDATA[This is a test of the DART BO Report Prep Task workflow.&amp;nbsp; This is only a test.&amp;nbsp; In the event of a real DART BO Report Prep failure, you will receive an email similar to this one.&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Status is:&amp;lt;br /&amp;gt;&lt;BR /&gt;${boReportPrepStatus}&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Sincerely,&amp;lt;br /&amp;gt;&lt;BR /&gt;Your friendly, neighborhood IBI workflow engine]]&amp;gt;&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;userTask id="FixBOReportPrepUserTask" name="FixBOReportPrepUserTask" activiti:candidateGroups="InfaGroup, WFGroup"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;DART BO Report Prep failed with status:&lt;BR /&gt;&lt;BR /&gt;${boReportPrepStatus}&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="boReportPrepContinueWorkflow" name="Continue Workflow?" type="enum" variable="boReportPrepContinueWorkflow" default="true" required="true" readable="true" writable="true"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="true" name="Yes"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="false" name="No"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/userTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="NetGStageFailureEmailNotification" name="Email Notification of NetG Stage Failure" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="to" expression="aoliver@scrippsnetworks.com,jjohnston@scrippsnetworks.com,mlugonjic@scrippsnetworks.com,cwoodall@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="from" expression="ibiWorkflowEngine@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="subject" expression="NetG Stage Service Failure - TEST"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;&amp;lt;![CDATA[This is a test of the NetGStage Service Task workflow.&amp;nbsp; This is only a test.&amp;nbsp; In the event of a real NetGStage Service Task failure, you will receive an email similar to this one.&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Status is:&amp;lt;br /&amp;gt;&lt;BR /&gt;${netGStageStatus}&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Sincerely,&amp;lt;br /&amp;gt;&lt;BR /&gt;Your friendly, neighborhood IBI workflow engine]]&amp;gt;&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="NetGStageFailureEnd" name="NetGStageFailureEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway4" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="InfaProcessFailureEnd" name="InfaProcessFailureEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway5" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="BOReportPrepFailureEnd" name="BOReportPrepFailureEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="ImpressionVerification" name="ImpressionVerification" activiti:async="true" activiti:class="com.scrippsnetworks.ibi.revenueWorkflows.serviceTasks.ShellServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="command"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${ShellScriptRoot}/ADSD/adsd_validate${ShellScriptSuffix}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="wait"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;true&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="outputVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;impressionVerificationStatus&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="errorCodeVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;impressionVerificationReturnCode&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="arg1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${DartRunDate}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway6" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="ImpressionVerificationEmailNotification" name="ImpressionVerificationEmailNotification" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="to" expression="aoliver@scrippsnetworks.com,jjohnston@scrippsnetworks.com,mlugonjic@scrippsnetworks.com,cwoodall@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="from" expression="ibiWorkflowEngine@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="subject" expression="DART Impression Verification Warning - TEST"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;&amp;lt;![CDATA[This is a test of the DART Impression Verification Task workflow.&amp;nbsp; This is only a test.&amp;nbsp; In the event of a real DART Impression Verification failure, you will receive an email similar to this one.&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Status is:&amp;lt;br /&amp;gt;&lt;BR /&gt;${impressionVerificationStatus}&lt;BR /&gt;&amp;lt;p&amp;gt;&lt;BR /&gt;Sincerely,&amp;lt;br /&amp;gt;&lt;BR /&gt;Your friendly, neighborhood IBI workflow engine]]&amp;gt;&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;userTask id="ImpressionVerificationUserTask" name="ImpressionVerificationUserTask" activiti:candidateGroups="InfaGroup, WFGroup"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;documentation&amp;gt;DART Impression Verification failed with status:&lt;BR /&gt;&lt;BR /&gt;${impressionVerificationStatus}&amp;lt;/documentation&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:formProperty id="impressionVerificationContinueWorkflow" name="Continue Workflow?" type="enum" variable="impressionVerificationContinueWorkflow" default="true" required="true" readable="true" writable="true"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="true" name="Yes"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:value id="false" name="No"&amp;gt;&amp;lt;/activiti:value&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/userTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway7" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="ImpressionVerificationFailureEnd" name="ImpressionVerificationFailureEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="BOReportPrepServiceTask" name="BOReportPrepServiceTask" activiti:async="true" activiti:class="com.scrippsnetworks.ibi.revenueWorkflows.serviceTasks.ShellServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="command"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${ShellScriptRoot}/ADSD/adsd_reportprep${ShellScriptSuffix}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="wait"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;true&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="outputVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;boReportPrepStatus&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="errorCodeVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;boReportPrepReturnCode&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="arg1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${DartRunDate}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="DartSetup" name="DartSetup" activiti:async="true" activiti:class="com.scrippsnetworks.ibi.revenueWorkflows.serviceTasks.ShellServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="command"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${ShellScriptRoot}/ADSD/adsd_setup${ShellScriptSuffix}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="wait"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;true&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="outputVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;dartSetupStatus&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="errorCodeVariable"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:string&amp;gt;dartSetupReturnCode&amp;lt;/activiti:string&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="arg1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;${DartRunDate}&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;serviceTask id="DartSetupEmailNotification" name="DartSetupEmailNotification" activiti:type="mail"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="to" expression="aoliver@scrippsnetworks.com,jjohnston@scrippsnetworks.com,mlugonjic@scrippsnetworks.com,cwoodall@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="from" expression="ibiWorkflowEngine@scrippsnetworks.com"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="subject" expression="DART Setup Service Failure - TEST"&amp;gt;&amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:field name="html"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activiti:expression&amp;gt;&amp;lt;![CDATA[This is a test of the DART Setup Service Task workflow.&amp;nbsp; This is only a test.&amp;nbsp; In the event of a real DART Setup Service Task failure, you will receive an email similar to this one.&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Status is:&amp;lt;br /&amp;gt;&lt;BR /&gt;${dartSetupStatus}&lt;BR /&gt;&amp;lt;p /&amp;gt;&lt;BR /&gt;Sincerely,&amp;lt;br /&amp;gt;&lt;BR /&gt;Your friendly, neighborhood IBI workflow engine]]&amp;gt;&amp;lt;/activiti:expression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/activiti:field&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusiveGateway id="exclusivegateway8" name="Exclusive Gateway"&amp;gt;&amp;lt;/exclusiveGateway&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="DartSetupFailureEnd" name="DartSetupFailureEnd"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow2" name="" sourceRef="NetGStageServiceTask" targetRef="exclusivegateway1"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow3" name="" sourceRef="exclusivegateway1" targetRef="InfaProcessServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${netGStageReturnCode=="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow5" name="" sourceRef="InfaProcessServiceTask" targetRef="exclusivegateway2"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow9" name="" sourceRef="exclusivegateway3" targetRef="DartWorkflowEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${boReportPrepReturnCode=="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow17" name="" sourceRef="exclusivegateway2" targetRef="FixInfaProcessEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${infaProcessReturnCode!="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow18" name="" sourceRef="FixInfaProcessEmailNotification" targetRef="FixInfaProcessUserTask"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow20" name="" sourceRef="exclusivegateway3" targetRef="FixBOReportPrepEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${boReportPrepReturnCode!="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow21" name="" sourceRef="FixBOReportPrepEmailNotification" targetRef="FixBOReportPrepUserTask"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow24" name="" sourceRef="exclusivegateway1" targetRef="NetGStageFailureEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${netGStageReturnCode!="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow25" name="" sourceRef="NetGStageFailureEmailNotification" targetRef="NetGStageFailureEnd"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow26" name="" sourceRef="FixInfaProcessUserTask" targetRef="exclusivegateway4"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow27" name="" sourceRef="exclusivegateway4" targetRef="InfaProcessServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${infaProcessContinueWorkflow=="true"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow28" name="" sourceRef="exclusivegateway4" targetRef="InfaProcessFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${infaProcessContinueWorkflow=="false"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow29" name="" sourceRef="FixBOReportPrepUserTask" targetRef="exclusivegateway5"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow31" name="" sourceRef="exclusivegateway5" targetRef="BOReportPrepFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${boReportPrepContinueWorkflow=="false"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow32" name="" sourceRef="exclusivegateway2" targetRef="ImpressionVerification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${infaProcessReturnCode=="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow33" name="" sourceRef="ImpressionVerification" targetRef="exclusivegateway6"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow35" name="" sourceRef="exclusivegateway6" targetRef="ImpressionVerificationEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${impressionVerificationReturnCode!="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow36" name="" sourceRef="ImpressionVerificationEmailNotification" targetRef="ImpressionVerificationUserTask"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow37" name="" sourceRef="ImpressionVerificationUserTask" targetRef="exclusivegateway7"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow39" name="" sourceRef="exclusivegateway7" targetRef="ImpressionVerificationFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${impressionVerificationContinueWorkflow=="false"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow40" name="" sourceRef="exclusivegateway6" targetRef="BOReportPrepServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${impressionVerificationReturnCode=="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow41" name="" sourceRef="BOReportPrepServiceTask" targetRef="exclusivegateway3"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow42" name="" sourceRef="exclusivegateway5" targetRef="BOReportPrepServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${boReportPrepContinueWorkflow=="true"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow43" name="" sourceRef="exclusivegateway7" targetRef="BOReportPrepServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${impressionVerificationContinueWorkflow=="true"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow44" name="" sourceRef="DartWorkflowStart" targetRef="DartSetup"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow46" name="" sourceRef="DartSetup" targetRef="exclusivegateway8"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow47" name="" sourceRef="exclusivegateway8" targetRef="NetGStageServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${dartSetupReturnCode=="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow48" name="" sourceRef="exclusivegateway8" targetRef="DartSetupEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;conditionExpression xsi:type="tFormalExpression"&amp;gt;&amp;lt;![CDATA[${dartSetupReturnCode!="0"}]]&amp;gt;&amp;lt;/conditionExpression&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow49" name="" sourceRef="DartSetupEmailNotification" targetRef="DartSetupFailureEnd"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/process&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;bpmndi:BPMNDiagram id="BPMNDiagram_DartProcess"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNPlane bpmnElement="DartProcess" id="BPMNPlane_DartProcess"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="DartWorkflowStart" id="BPMNShape_DartWorkflowStart"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="100" y="90"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="NetGStageServiceTask" id="BPMNShape_NetGStageServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="440" y="80"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="600" y="87"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="InfaProcessServiceTask" id="BPMNShape_InfaProcessServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="700" y="80"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="860" y="87"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway3" id="BPMNShape_exclusivegateway3"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="1438" y="87"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="DartWorkflowEnd" id="BPMNShape_DartWorkflowEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="1523" y="90"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="FixInfaProcessUserTask" id="BPMNShape_FixInfaProcessUserTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="828" y="280"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="FixInfaProcessEmailNotification" id="BPMNShape_FixInfaProcessEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="828" y="181"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="FixBOReportPrepEmailNotification" id="BPMNShape_FixBOReportPrepEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="57" width="105" x="1406" y="183"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="FixBOReportPrepUserTask" id="BPMNShape_FixBOReportPrepUserTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="1406" y="280"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="NetGStageFailureEmailNotification" id="BPMNShape_NetGStageFailureEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="568" y="181"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="NetGStageFailureEnd" id="BPMNShape_NetGStageFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="603" y="280"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway4" id="BPMNShape_exclusivegateway4"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="732" y="287"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="InfaProcessFailureEnd" id="BPMNShape_InfaProcessFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="735" y="361"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway5" id="BPMNShape_exclusivegateway5"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="1310" y="287"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="BOReportPrepFailureEnd" id="BPMNShape_BOReportPrepFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="1313" y="361"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="ImpressionVerification" id="BPMNShape_ImpressionVerification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="960" y="80"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway6" id="BPMNShape_exclusivegateway6"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="1120" y="87"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="ImpressionVerificationEmailNotification" id="BPMNShape_ImpressionVerificationEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="1088" y="181"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="ImpressionVerificationUserTask" id="BPMNShape_ImpressionVerificationUserTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="1088" y="280"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway7" id="BPMNShape_exclusivegateway7"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="1230" y="287"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="ImpressionVerificationFailureEnd" id="BPMNShape_ImpressionVerificationFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="1233" y="361"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="BOReportPrepServiceTask" id="BPMNShape_BOReportPrepServiceTask"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="1278" y="80"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="DartSetup" id="BPMNShape_DartSetup"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="180" y="80"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="DartSetupEmailNotification" id="BPMNShape_DartSetupEmailNotification"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="55" width="105" x="308" y="184"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="exclusivegateway8" id="BPMNShape_exclusivegateway8"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="40" width="40" x="340" y="87"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNShape bpmnElement="DartSetupFailureEnd" id="BPMNShape_DartSetupFailureEnd"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdc:Bounds height="35" width="35" x="343" y="280"&amp;gt;&amp;lt;/omgdc:Bounds&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNShape&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="545" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="600" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="640" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="700" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="805" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="860" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1478" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1523" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="880" y="127"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="880" y="181"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="880" y="236"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="880" y="280"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow20" id="BPMNEdge_flow20"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1458" y="127"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1458" y="183"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow21" id="BPMNEdge_flow21"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1458" y="240"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1458" y="280"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow24" id="BPMNEdge_flow24"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="620" y="127"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="620" y="181"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow25" id="BPMNEdge_flow25"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="620" y="236"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="620" y="280"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow26" id="BPMNEdge_flow26"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="828" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="772" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow27" id="BPMNEdge_flow27"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="752" y="287"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="752" y="135"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow28" id="BPMNEdge_flow28"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="752" y="327"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="752" y="361"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow29" id="BPMNEdge_flow29"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1406" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1350" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow31" id="BPMNEdge_flow31"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1330" y="327"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1330" y="361"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow32" id="BPMNEdge_flow32"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="900" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="960" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow33" id="BPMNEdge_flow33"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1065" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1120" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow35" id="BPMNEdge_flow35"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1140" y="127"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1140" y="181"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow36" id="BPMNEdge_flow36"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1140" y="236"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1140" y="280"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow37" id="BPMNEdge_flow37"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1193" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1230" y="307"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow39" id="BPMNEdge_flow39"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1250" y="327"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1250" y="361"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow40" id="BPMNEdge_flow40"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1160" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1278" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow41" id="BPMNEdge_flow41"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1383" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1438" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow42" id="BPMNEdge_flow42"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1330" y="287"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1330" y="135"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow43" id="BPMNEdge_flow43"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1250" y="287"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1250" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="1278" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow44" id="BPMNEdge_flow44"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="135" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="180" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow46" id="BPMNEdge_flow46"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="285" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="340" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow47" id="BPMNEdge_flow47"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="380" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="440" y="107"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow48" id="BPMNEdge_flow48"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="360" y="127"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="360" y="184"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bpmndi:BPMNEdge bpmnElement="flow49" id="BPMNEdge_flow49"&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="360" y="239"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;omgdi:waypoint x="360" y="280"&amp;gt;&amp;lt;/omgdi:waypoint&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNEdge&amp;gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/bpmndi:BPMNPlane&amp;gt;&lt;BR /&gt;&amp;nbsp; &amp;lt;/bpmndi:BPMNDiagram&amp;gt;&lt;BR /&gt;&amp;lt;/definitions&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my java delegate:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;public class ShellServiceTask implements JavaDelegate {&lt;BR /&gt;&lt;BR /&gt; final static Logger logger = Logger.getLogger(ShellServiceTask.class.getName());&lt;BR /&gt;&lt;BR /&gt; protected Expression command;&lt;BR /&gt; protected Expression wait;&lt;BR /&gt; protected Expression arg1;&lt;BR /&gt; protected Expression arg2;&lt;BR /&gt; protected Expression arg3;&lt;BR /&gt; protected Expression arg4;&lt;BR /&gt; protected Expression arg5;&lt;BR /&gt; protected Expression outputVariable;&lt;BR /&gt; protected Expression errorCodeVariable;&lt;BR /&gt; protected Expression redirectError;&lt;BR /&gt; protected Expression cleanEnv;&lt;BR /&gt; protected Expression directory;&lt;BR /&gt;&lt;BR /&gt; String commandStr;&lt;BR /&gt; String arg1Str;&lt;BR /&gt; String arg2Str;&lt;BR /&gt; String arg3Str;&lt;BR /&gt; String arg4Str;&lt;BR /&gt; String arg5Str;&lt;BR /&gt; String waitStr;&lt;BR /&gt; String resultVariableStr;&lt;BR /&gt; String errorCodeVariableStr;&lt;BR /&gt; Boolean waitFlag;&lt;BR /&gt; Boolean redirectErrorFlag;&lt;BR /&gt; Boolean cleanEnvBoolan;&lt;BR /&gt; String directoryStr;&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp; logger.info("In " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&amp;nbsp; executeScript(execution);&lt;BR /&gt;&amp;nbsp; // create a new value for execution&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; logger.info("Leaving " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; private void readFields(DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; commandStr = getStringFromField(command, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg1Str = getStringFromField(arg1, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg2Str = getStringFromField(arg2, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg3Str = getStringFromField(arg3, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg4Str = getStringFromField(arg4, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg5Str = getStringFromField(arg5, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitStr = getStringFromField(wait, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultVariableStr = getStringFromField(outputVariable, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorCodeVariableStr = getStringFromField(errorCodeVariable, execution);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String redirectErrorStr = getStringFromField(redirectError, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String cleanEnvStr = getStringFromField(cleanEnv, execution);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitFlag = waitStr == null || waitStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirectErrorFlag = redirectErrorStr != null &amp;amp;&amp;amp; redirectErrorStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanEnvBoolan = cleanEnvStr != null &amp;amp;&amp;amp; cleanEnvStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directoryStr = getStringFromField(directory, execution);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; public String toString() {&lt;BR /&gt;&amp;nbsp; return "command="+command+", arg1="+arg1+", arg2="+arg2+", arg3="+arg3+", arg4="+arg4+", arg5="+arg5+&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ", wait="+wait+", outputVariable="+outputVariable+", errorCodeVariable="+errorCodeVariable;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; public void executeScript(DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp; logger.info("starting execute");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; readFields(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; List&amp;lt;String&amp;gt; argList = new ArrayList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(commandStr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg1Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg1Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg2Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg2Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg3Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg3Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg4Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg4Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg5Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg5Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; ProcessBuilder processBuilder = new ProcessBuilder(argList);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; processBuilder.redirectErrorStream(redirectErrorFlag);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cleanEnvBoolan) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, String&amp;gt; env = processBuilder.environment();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.clear();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (directoryStr != null &amp;amp;&amp;amp; directoryStr.length() &amp;gt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; processBuilder.directory(new File(directoryStr));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Process process = processBuilder.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (waitFlag) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int errorCode = process.waitFor();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resultVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String result = convertStreamToStr(process.getInputStream());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution.setVariable(resultVariableStr, result);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errorCodeVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution.setVariable(errorCodeVariableStr, Integer.toString(errorCode));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; } catch (Exception e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.info("Could not execute shell command with error = " + e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ActivitiException("Could not execute shell command" , e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; public static String convertStreamToStr(InputStream is) throws IOException {&lt;BR /&gt;&amp;nbsp; if (is != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Writer writer = new StringWriter();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; char[] buffer = new char[1024];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((n = reader.read(buffer)) != -1) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.write(buffer, 0, n);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return writer.toString();&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return "";&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; protected String getStringFromField(Expression expression, DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp; if (expression != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Object value = expression.getValue(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (value != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return value.toString();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return null;&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you again for the help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2012 18:36:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98229#M67703</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-20T18:36:56Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98230#M67704</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Just in case previous post did not make it…&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;async="true" resolved the one issue, but created a worse issue.&amp;nbsp; For my long-running task (over 6.5 minutes), after 5 minutes and 1 second of executing, it appears, according to log files and database, that Activiti is trying to run the task again.&amp;nbsp; It continues to do this every 5 minutes and 1 second.&amp;nbsp; So, i end up with several instances of the same task attempting to run.&amp;nbsp; Eventually, it fails because it cannot find a&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What am i doing wrong?&amp;nbsp; All i did was add the async="true" property to my java service task.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again for your help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Jun 2012 21:30:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98230#M67704</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-20T21:30:38Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98231#M67705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A lot depends on the timeout limit of your database transactions… All activiti-calls are done within a database-transation. If the operation takes too long, the transaction will be timed out and exception is thrown (not marking the job as executed and unlocking it to be acquired again by the job-executor). &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On top of that, to prevent job-executor not to block all of it's threads too long, a max-lock time is set (default is 5 minutes: int lockTimeInMillis = 5 * 60 * 1000&lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;. If expired, job executor presumes something went wrong and unlocks the job, effectively marking it to be executed again. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The lock-time is a setter on the JobExecutor and can be altered in configuration or even from code, so this can be raised.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But consider that all job-executions are executed in a transaction. Having a lot of long-running transactions can influence db-performance. If you don't actually need to update process-properties very often when the async-servicetask is running, I suggest working with a thread-pool outside of activiti:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;UL&gt;&lt;LI&gt;The service-task prepares (eg. read variables from process) an creates the "job" or runnable to be executed by the external thread pool&lt;/LI&gt;&lt;LI&gt;Service-task queues the job (saving reference to process-instance id) and finishes&lt;/LI&gt;&lt;LI&gt;Right after the service-taks, there's a receive-task that waits, releasing the calling thead and not holding open the transaction.&lt;/LI&gt;&lt;LI&gt;Long-running operation completes and signals the process-instance and perhaps set some variables on the process based on the results before signaling.&lt;/LI&gt;&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 07:58:06 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98231#M67705</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-21T07:58:06Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98232#M67706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the insigtful information.&amp;nbsp; A few follow-up questions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First of all, about my environment:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My environment is a web app that automatically triggers workflows using the activiti-rest web application.&amp;nbsp; Also, my workflows contain user tasks so i leverage activiti-explorer web application to handle user forms.&amp;nbsp; Thus, the service task i am creating i am them using the eclipse plugin to create deployment artifacts and then putting the jar file in the activiti-rest/WEB-INF/lib directory and the activiti-explorer/WEB-INF/lib directory.&amp;nbsp; So, in my service task, how do i get a handle to everything i need to inject into the long-running thread?&amp;nbsp; It seems all the context i have is DelegateExecution.&amp;nbsp; Also, once in my long-running thread, how to signal the receive task?&amp;nbsp; Since this is a jar file in the activiti-explorer/activiti-rest apps, i don't seem to be able to access the processEngine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) In your &lt;/SPAN&gt;&lt;UL&gt;(which is very helpful), even though i'm a recent java convert from python, i think i understand most of it.&amp;nbsp; 2 Questions:&lt;BR /&gt;a) When you state "queues the job (saving reference to process-instance id)", do you mean that service task starts the long-running process external thread and gives it a reference to the process-instance id?&lt;BR /&gt;b)Even though i've not dealt with receive tasks, i think i can figure that out.&amp;nbsp; What i don't understand is how the long-running process will set process variables on the process instance if it is running outside the scope of the job-executor?&amp;nbsp; So far, i've done this: &lt;BR /&gt;&lt;BR /&gt;Execution execution = runtimeService.createExecutionQuery().processInstanceId(processId).singleResult(); &lt;BR /&gt;&lt;BR /&gt;where processId was injected into the long-running thread.&amp;nbsp; However, i don't seem to be able to get a handle on the processEngine in the long-running thread.&amp;nbsp; Thus, how do i set variables in the process context?&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;2) For the less optimal solution of changing the timeout:&lt;BR /&gt;a) If the number of tasks executed by Activiti is no more than a few dozen a day and most of those tasks are long-running ETL-type tasks and all are running async=true, would the danger be minimal if the timeout is increased to, say 12 hours?&amp;nbsp; The reason i ask about this solution is that i'm up against a deadline.&amp;nbsp; Add, where/how do i make this configuration change?&amp;nbsp; &lt;BR /&gt;b) Currently, i would need to make this change in the Activiti-Explorer and Activiti-Rest applications.&amp;nbsp; Is this a configuration for the ProcessEngine?&amp;nbsp; I've looked in the ProcessEngineConfigurationImpl, but could not find where the lock-time was being set for the JobExecutor.&amp;nbsp; Could you give me an example where the jobExecutor lock-time is being changed via configuration, in a spring app context and/or activiti context?&lt;BR /&gt;&lt;BR /&gt;Thanks again for you assistance.&amp;nbsp; You have been most helpful in explaining this behavior and giving implementation recommendations.&lt;/UL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 10:45:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98232#M67706</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-21T10:45:09Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98233#M67707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;a) yep, exactly&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b) the long-running process (external of activiti) can use runtimeService.setVariables(processInstanceId, mapWithProperties)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ABout "getting handle of process engine", you might trying to use the ProcessEngines static class, which can access process engines registered in the same VM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2 a) If you raise the number of threads the job-executor has available higher than the max-expected long-running processes executed, this is fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;b) There is a config-file in the web apps (activiti.cfg.xml) where you can set the properties. The property I'm referring to is on the job-executor itself, which you can set on the ProcessEngineConfigurationImpl (using the configuration or using java-code). Relevant props: lockTimeInMillis and corePoolSize + maxPoolSize&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"&amp;gt;&lt;BR /&gt;&amp;lt;property name="databaseType" value="oracle" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="dataSource" ref="dataSource" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="transactionManager" ref="hibernateTransactionManager" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="databaseSchemaUpdate" value="false" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="history" value="audit" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="jobExecutorActivate" value="true" /&amp;gt;&lt;BR /&gt;&amp;lt;property name="jobExecutor" ref="jobExecutor"/&amp;gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;bean id="jobExecutor" class="org.activiti.engine.impl.jobexecutor.JobExecutor"&amp;gt;&lt;BR /&gt;&amp;lt;property name="corePoolSize" value="${activiti.jobExecutor.corePoolSize}"/&amp;gt;&lt;BR /&gt;&amp;lt;property name="lockTimeInMillis" value="${activiti.jobExecutor.lockTimeInMillis}"/&amp;gt;&lt;BR /&gt;&amp;lt;property name="maxJobsPerAcquisition" value="${activiti.jobExecutor.maxJobsPerAcquisition}"/&amp;gt;&lt;BR /&gt;&amp;lt;property name="maxPoolSize" value="${activiti.jobExecutor.maxPoolSize}"/&amp;gt;&lt;BR /&gt;&amp;lt;property name="queueSize" value="${activiti.jobExecutor.queueSize}"/&amp;gt;&lt;BR /&gt;&amp;lt;property name="waitTimeInMillis" value="${activiti.jobExecutor.waitTimeInMillis}"/&amp;gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 18:51:43 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98233#M67707</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-21T18:51:43Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98234#M67708</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks again for the valuable information.&amp;nbsp; You have answered all my questions fully.&amp;nbsp; This forum has been a deployment-saver &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://connect.hyland.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was hoping you could do a quick review of my Service Task and Runnable to verify that i'm doing things correctly.&amp;nbsp; As of now, i've taken your suggestion on using the Java Receive Task and an asynchronous thread.&amp;nbsp; I've pasted my code below (Of course, i've stolen activiti's logic for running a shell task &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt; &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;public class ShellServiceTask implements JavaDelegate {&lt;BR /&gt;&lt;BR /&gt; final static Logger logger = Logger.getLogger(ShellServiceTask.class.getName());&lt;BR /&gt;&lt;BR /&gt; protected Expression command;&lt;BR /&gt; protected Expression wait;&lt;BR /&gt; protected Expression arg1;&lt;BR /&gt; protected Expression arg2;&lt;BR /&gt; protected Expression arg3;&lt;BR /&gt; protected Expression arg4;&lt;BR /&gt; protected Expression arg5;&lt;BR /&gt; protected Expression outputVariable;&lt;BR /&gt; protected Expression errorCodeVariable;&lt;BR /&gt; protected Expression redirectError;&lt;BR /&gt; protected Expression cleanEnv;&lt;BR /&gt; protected Expression directory;&lt;BR /&gt;&lt;BR /&gt; String commandStr;&lt;BR /&gt; String arg1Str;&lt;BR /&gt; String arg2Str;&lt;BR /&gt; String arg3Str;&lt;BR /&gt; String arg4Str;&lt;BR /&gt; String arg5Str;&lt;BR /&gt; String waitStr;&lt;BR /&gt; String resultVariableStr;&lt;BR /&gt; String errorCodeVariableStr;&lt;BR /&gt; Boolean waitFlag;&lt;BR /&gt; Boolean redirectErrorFlag;&lt;BR /&gt; Boolean cleanEnvBoolan;&lt;BR /&gt; String directoryStr;&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp; logger.info("In " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; executeScript(execution);&lt;BR /&gt;&amp;nbsp; // create a new value for execution&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; logger.info("Leaving " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; private void readFields(DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; commandStr = getStringFromField(command, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg1Str = getStringFromField(arg1, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg2Str = getStringFromField(arg2, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg3Str = getStringFromField(arg3, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg4Str = getStringFromField(arg4, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arg5Str = getStringFromField(arg5, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitStr = getStringFromField(wait, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultVariableStr = getStringFromField(outputVariable, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorCodeVariableStr = getStringFromField(errorCodeVariable, execution);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String redirectErrorStr = getStringFromField(redirectError, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String cleanEnvStr = getStringFromField(cleanEnv, execution);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; waitFlag = waitStr == null || waitStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; redirectErrorFlag = redirectErrorStr != null &amp;amp;&amp;amp; redirectErrorStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cleanEnvBoolan = cleanEnvStr != null &amp;amp;&amp;amp; cleanEnvStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; directoryStr = getStringFromField(directory, execution);&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; public String toString() {&lt;BR /&gt;&amp;nbsp; return "command="+command+", arg1="+arg1+", arg2="+arg2+", arg3="+arg3+", arg4="+arg4+", arg5="+arg5+&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ", wait="+wait+", outputVariable="+outputVariable+", errorCodeVariable="+errorCodeVariable;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; public void executeScript(DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp; logger.info("starting execute");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; readFields(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; List&amp;lt;String&amp;gt; argList = new ArrayList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(commandStr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg1Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg1Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg2Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg2Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg3Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg3Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg4Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg4Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (arg5Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; argList.add(arg5Str);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Firing executor with processInstanceId = " + execution.getProcessInstanceId());&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; Thread executor = new Thread(new ShellTaskThread(argList, waitFlag, redirectErrorFlag, cleanEnvBoolan, directoryStr, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultVariableStr, errorCodeVariableStr, execution.getProcessInstanceId()));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; executor.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Executor started…leaving workflow");&lt;BR /&gt;&lt;BR /&gt; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; protected String getStringFromField(Expression expression, DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp; if (expression != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Object value = expression.getValue(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (value != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return value.toString();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return null;&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;class ShellTaskThread implements Runnable { &lt;BR /&gt; final static Logger logger = Logger.getLogger(ShellTaskThread.class.getName()); &lt;BR /&gt; &lt;BR /&gt; List&amp;lt;String&amp;gt; commands;&lt;BR /&gt; boolean waitFlag;&lt;BR /&gt; String resultVariableStr;&lt;BR /&gt; String errorCodeVariableStr;&lt;BR /&gt; boolean cleanEnv;&lt;BR /&gt; boolean redirectErrorFlag;&lt;BR /&gt; String directoryStr;&lt;BR /&gt; String processId;&lt;BR /&gt;&lt;BR /&gt; public ShellTaskThread(List&amp;lt;String&amp;gt; commands, boolean waitFlag, boolean redirectErrorFlag, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; boolean cleanEnv, String directoryStr,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; String resultVariableStr, String errorCodeVariableStr, String processId) {&lt;BR /&gt;&amp;nbsp; this.commands = commands;&lt;BR /&gt;&amp;nbsp; this.waitFlag = waitFlag;&lt;BR /&gt;&amp;nbsp; this.resultVariableStr = resultVariableStr;&lt;BR /&gt;&amp;nbsp; this.errorCodeVariableStr = errorCodeVariableStr;&lt;BR /&gt;&amp;nbsp; this.redirectErrorFlag = redirectErrorFlag;&lt;BR /&gt;&amp;nbsp; this.cleanEnv = cleanEnv;&lt;BR /&gt;&amp;nbsp; this.directoryStr = directoryStr;&lt;BR /&gt;&amp;nbsp; this.processId = processId;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void run() {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; logger.info("running async thread with command: " + commands);&lt;BR /&gt;&amp;nbsp; logger.info("other vars: resultVariableStr: " + resultVariableStr + " errorCodeVariableStr: " + &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorCodeVariableStr + " processId: " + processId);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // set activiti context&lt;BR /&gt;&amp;nbsp; ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();&lt;BR /&gt;&amp;nbsp; RuntimeService runtimeService = processEngine.getRuntimeService();&lt;BR /&gt;&amp;nbsp; Execution execution = runtimeService.createExecutionQuery().processInstanceId(processId).singleResult();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; logger.info("execution = " + execution.getId() + ": " + execution.getProcessInstanceId());&lt;BR /&gt;&amp;nbsp; ProcessBuilder processBuilder = new ProcessBuilder(commands);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processBuilder.redirectErrorStream(redirectErrorFlag);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (cleanEnv) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, String&amp;gt; env = processBuilder.environment();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.clear();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (directoryStr != null &amp;amp;&amp;amp; directoryStr.length() &amp;gt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; processBuilder.directory(new File(directoryStr));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; Process process = processBuilder.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (waitFlag) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int errorCode = process.waitFor();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.info("errorCode = " + errorCode);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resultVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String result = convertStreamToStr(process.getInputStream());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), resultVariableStr, result);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errorCodeVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), errorCodeVariableStr, Integer.toString(errorCode));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resultVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), resultVariableStr, e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errorCodeVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), errorCodeVariableStr, "1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; } catch (Exception e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Could not execute shell command " + commands + " with error = " + e);&lt;BR /&gt;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Leaving thread with process variables = " + runtimeService.getVariables(execution.getId()));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; runtimeService.signal(execution.getId());&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; public static String convertStreamToStr(InputStream is) throws IOException {&lt;BR /&gt;&amp;nbsp; if (is != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Writer writer = new StringWriter();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; char[] buffer = new char[1024];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((n = reader.read(buffer)) != -1) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.write(buffer, 0, n);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return writer.toString();&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return "";&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;}&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks so much for your continued help.&amp;nbsp; I am learning lots!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2012 21:41:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98234#M67708</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-21T21:41:57Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98235#M67709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm not gonna review your whole code &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt; But I notice you're using member-variables in a JavaDelegate (String arg1Str; etc). This is valid in an ActivityBehaviour (each activity has it's own instance) but it's NOT safe with JavaDelegates, as the user guide states:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Note: there will be&lt;STRONG&gt; only one instance of that Java class created for the serviceTask it is defined on&lt;/STRONG&gt;. All process-instances share the same class instance that will be used to call execute(DelegateExecution). This means that the class must not use any member variables and must be thread-safe, since it can be executed simultaneously from different threads. This also influences the way Field injection is handled.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;So instead of reading them and storing, you should read them on every "execute()" call…&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2012 06:41:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98235#M67709</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-22T06:41:05Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98236#M67710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ah ok, thanks for reminding me of that.&amp;nbsp; I've removed the non-Expression member vars.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I understand about not reviewing all the code, but i was hoping you might just verify that i'm handling the Activiti-stuff correctly in the long-running thread class including signalling appropriately.&amp;nbsp; The class name is:&amp;nbsp; ShellTaskThread&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've pasted in the cleaner and simplified code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;public class ShellServiceTask implements JavaDelegate {&lt;BR /&gt;&lt;BR /&gt; final static Logger logger = Logger.getLogger(ShellServiceTask.class.getName());&lt;BR /&gt;&lt;BR /&gt; protected Expression command;&lt;BR /&gt; protected Expression wait;&lt;BR /&gt; protected Expression arg1;&lt;BR /&gt; protected Expression arg2;&lt;BR /&gt; protected Expression arg3;&lt;BR /&gt; protected Expression arg4;&lt;BR /&gt; protected Expression arg5;&lt;BR /&gt; protected Expression outputVariable;&lt;BR /&gt; protected Expression errorCodeVariable;&lt;BR /&gt; protected Expression redirectError;&lt;BR /&gt; protected Expression cleanEnv;&lt;BR /&gt; protected Expression directory;&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void execute(DelegateExecution execution) throws Exception {&lt;BR /&gt;&amp;nbsp; logger.info("In " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&amp;nbsp; String commandStr = getStringFromField(command, execution);&lt;BR /&gt;&amp;nbsp; String arg1Str = getStringFromField(arg1, execution);&lt;BR /&gt;&amp;nbsp; String arg2Str = getStringFromField(arg2, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String arg3Str = getStringFromField(arg3, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String arg4Str = getStringFromField(arg4, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String arg5Str = getStringFromField(arg5, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String waitStr = getStringFromField(wait, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String resultVariableStr = getStringFromField(outputVariable, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String errorCodeVariableStr = getStringFromField(errorCodeVariable, execution);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String redirectErrorStr = getStringFromField(redirectError, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String cleanEnvStr = getStringFromField(cleanEnv, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String directoryStr = getStringFromField(directory, execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boolean waitFlag = waitStr == null || waitStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boolean redirectErrorFlag = redirectErrorStr != null &amp;amp;&amp;amp; redirectErrorStr.equals("true");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boolean cleanEnvBoolean = cleanEnvStr != null &amp;amp;&amp;amp; cleanEnvStr.equals("true");&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Build commands for shell command&lt;BR /&gt;&amp;nbsp; List&amp;lt;String&amp;gt; argList = new ArrayList&amp;lt;String&amp;gt;();&lt;BR /&gt;&amp;nbsp; argList.add(commandStr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if (arg1Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(arg1Str);&lt;BR /&gt;&amp;nbsp; if (arg2Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(arg2Str);&lt;BR /&gt;&amp;nbsp; if (arg3Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(arg3Str);&lt;BR /&gt;&amp;nbsp; if (arg4Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(arg4Str);&lt;BR /&gt;&amp;nbsp; if (arg5Str != null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; argList.add(arg5Str);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Start async thread&lt;BR /&gt;&amp;nbsp; logger.info("Firing executor with processInstanceId = " + execution.getProcessInstanceId());&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Thread executor = new Thread(new ShellTaskThread(argList, waitFlag, redirectErrorFlag, cleanEnvBoolean, directoryStr, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; resultVariableStr, errorCodeVariableStr, execution.getProcessInstanceId()));&lt;BR /&gt;&amp;nbsp; executor.start();&lt;BR /&gt;&amp;nbsp; logger.info("Executor started…leaving workflow");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; logger.info("Leaving " + command.getValue(execution) + " ShellTask script with variables = " + execution.getVariables());&lt;BR /&gt;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; public String toString() {&lt;BR /&gt;&amp;nbsp; return "command="+command+", arg1="+arg1+", arg2="+arg2+", arg3="+arg3+", arg4="+arg4+", arg5="+arg5+&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ", wait="+wait+", outputVariable="+outputVariable+", errorCodeVariable="+errorCodeVariable;&lt;BR /&gt; }&lt;BR /&gt; &lt;BR /&gt; protected String getStringFromField(Expression expression, DelegateExecution execution) {&lt;BR /&gt;&amp;nbsp; if (expression != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Object value = expression.getValue(execution);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (value != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return value.toString();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; return null;&lt;BR /&gt; }&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;class ShellTaskThread implements Runnable { &lt;BR /&gt; final static Logger logger = Logger.getLogger(ShellTaskThread.class.getName()); &lt;BR /&gt; &lt;BR /&gt; List&amp;lt;String&amp;gt; command;&lt;BR /&gt; boolean waitFlag;&lt;BR /&gt; String resultVariableStr;&lt;BR /&gt; String errorCodeVariableStr;&lt;BR /&gt; boolean cleanEnv;&lt;BR /&gt; boolean redirectErrorFlag;&lt;BR /&gt; String directoryStr;&lt;BR /&gt; String processId;&lt;BR /&gt;&lt;BR /&gt; public ShellTaskThread(List&amp;lt;String&amp;gt; command, boolean waitFlag, boolean redirectErrorFlag, &lt;BR /&gt;&amp;nbsp;&amp;nbsp; boolean cleanEnv, String directoryStr,&lt;BR /&gt;&amp;nbsp;&amp;nbsp; String resultVariableStr, String errorCodeVariableStr, String processId) {&lt;BR /&gt;&amp;nbsp; this.command = command;&lt;BR /&gt;&amp;nbsp; this.waitFlag = waitFlag;&lt;BR /&gt;&amp;nbsp; this.resultVariableStr = resultVariableStr;&lt;BR /&gt;&amp;nbsp; this.errorCodeVariableStr = errorCodeVariableStr;&lt;BR /&gt;&amp;nbsp; this.redirectErrorFlag = redirectErrorFlag;&lt;BR /&gt;&amp;nbsp; this.cleanEnv = cleanEnv;&lt;BR /&gt;&amp;nbsp; this.directoryStr = directoryStr;&lt;BR /&gt;&amp;nbsp; this.processId = processId;&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt; @Override&lt;BR /&gt; public void run() {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; logger.info("running async thread with command: " + command);&lt;BR /&gt;&amp;nbsp; logger.info("other vars: resultVariableStr: " + resultVariableStr + " errorCodeVariableStr: " + &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errorCodeVariableStr + " processId: " + processId);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; // set activiti context&lt;BR /&gt;&amp;nbsp; ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();&lt;BR /&gt;&amp;nbsp; RuntimeService runtimeService = processEngine.getRuntimeService();&lt;BR /&gt;&amp;nbsp; Execution execution = runtimeService.createExecutionQuery().processInstanceId(processId).singleResult();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; logger.info("execution = " + execution.getId() + ": " + execution.getProcessInstanceId());&lt;BR /&gt;&amp;nbsp; ProcessBuilder processBuilder = new ProcessBuilder(command);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processBuilder.redirectErrorStream(redirectErrorFlag);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (cleanEnv) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, String&amp;gt; env = processBuilder.environment();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; env.clear();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (directoryStr != null &amp;amp;&amp;amp; directoryStr.length() &amp;gt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; processBuilder.directory(new File(directoryStr));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; Process process = processBuilder.start();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; if (waitFlag) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int errorCode = process.waitFor();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logger.info("errorCode = " + errorCode);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resultVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String result = convertStreamToStr(process.getInputStream());&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), resultVariableStr, result);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errorCodeVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), errorCodeVariableStr, Integer.toString(errorCode));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (InterruptedException e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (resultVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), resultVariableStr, e);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (errorCodeVariableStr != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runtimeService.setVariable(execution.getId(), errorCodeVariableStr, "1");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw e;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; } catch (Exception e) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Could not execute shell command " + command + " with error = " + e);&lt;BR /&gt;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; logger.info("Leaving thread with process variables = " + runtimeService.getVariables(execution.getId()));&lt;BR /&gt;&amp;nbsp;&amp;nbsp; runtimeService.signal(execution.getId());&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt; public static String convertStreamToStr(InputStream is) throws IOException {&lt;BR /&gt;&amp;nbsp; if (is != null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Writer writer = new StringWriter();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; char[] buffer = new char[1024];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; try {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((n = reader.read(buffer)) != -1) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writer.write(buffer, 0, n);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; } finally {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; is.close();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return writer.toString();&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; return "";&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your time and patience on this matter.&amp;nbsp; Again, you have been most helpful.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2012 12:19:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98236#M67710</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-22T12:19:55Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98237#M67711</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The thread uses the activiti API correctly, setting process-vars and finally signaling the execution/proces, look good.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2012 12:25:03 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98237#M67711</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-22T12:25:03Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98238#M67712</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have noticed a rare error in this design that has occurred at least twice.&amp;nbsp; In the long-running thread, before the ProcessBuilder is created, i have been getting null pointer errors (Note: the long-running thread is in a jar deployed to both activiti-explorer and activiti-rest).&amp;nbsp; It must occur on one of these three lines:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();&lt;BR /&gt;&amp;nbsp; RuntimeService runtimeService = processEngine.getRuntimeService();&lt;BR /&gt;&amp;nbsp; Execution execution = runtimeService.createExecutionQuery().processInstanceId(processId).singleResult();&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;I've added better logging to attempt to catch it. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could this be that the long-running thread is executing this code before the calling service task has moved to the receive task and persisted the execution state?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Should i move this code until after the ProcessBuilder command has executed?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again for your assistance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Jun 2012 17:18:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98238#M67712</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-28T17:18:04Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98239#M67713</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In what call exactly do you get a null pointer? The code above can only NP if the PE, or runtime-service is null. Even if the execution doesn't exist (yet), singleResult() will just return null but no NPE will be thrown&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2012 05:32:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98239#M67713</guid>
      <dc:creator>frederikherema1</dc:creator>
      <dc:date>2012-06-29T05:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: shell service tasks not showing in runtime tables</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98240#M67714</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It is in one of those three (well i guess 2) statements.&amp;nbsp; But i do not know specifically which one.&amp;nbsp; I've only seen the error twice while running in the dev appserver (tomcat6 on linux).&amp;nbsp; I've never seen the error in local unit tests (eclipse/tomcat and standalone tomcat for rest-api).&amp;nbsp; Additionally, i see no other apparent errors that the ProcessEngine failed to initialize.&amp;nbsp; Also, subsequent workflow runs were successful.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have better logging in place now.&amp;nbsp; When i see the error again, i will provide you more information.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again for your help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2012 13:04:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/shell-service-tasks-not-showing-in-runtime-tables/m-p/98240#M67714</guid>
      <dc:creator>aoliver</dc:creator>
      <dc:date>2012-06-29T13:04:30Z</dc:date>
    </item>
  </channel>
</rss>

