我是jbpm6的新手。我能够使用Custom workitem handler配置和运行单个服务任务。 但是,当我尝试在单个进程中配置多个服务任务时,它不起作用。 有人可以帮忙吗?提前谢谢!
以下是单个服务任务的工作代码。
<itemDefinition id="_sItem" structureRef="String" />
<itemDefinition id="_2_InMessageType" structureRef="java.lang.String" />
<message id="_2_InMessage" itemRef="_2_InMessageType" />
<interface id="_handlingServiceInterface" name="myService">
<operation id="_handlingServiceOperation" name="">
<inMessageRef>_2_InMessage</inMessageRef>
</operation>
</interface>
<process id="SingleNode_Process" isExecutable="true"
processType="Private" name="Service Process">
<property id="s" itemSubjectRef="_2_InMessageType" />
<startEvent id="start-state" name="Start" />
<serviceTask id="node" name="myservice" implementation="Other"
operationRef="_handlingServiceOperation">
</serviceTask>
<endEvent id="end-state" name="End">
<terminateEventDefinition />
</endEvent>
<sequenceFlow id="flow_N1000C" sourceRef="start-state"
targetRef="node" />
<sequenceFlow id="flow_N10017" sourceRef="node"
targetRef="end-state" />
</process>
ProcessInstance processInstance = null;
KieHelper kieHelper = new KieHelper();
KieBase kbase = kieHelper.addResource(ResourceFactory
.newClassPathResource("test.bpmn"))
.build();
KieSession ksession = kbase.newKieSession();
try{
ksession.getWorkItemManager().registerWorkItemHandler("Service Task", new MyTaskHandler());
}
catch (Exception ex){
System.err.println("WorkitemHandler==>"+ex.toString());
}
try{
processInstance = ksession.startProcess("SingleNode_Process");
}
catch(WorkflowRuntimeException e){
System.err.println("processInstance Exception ==>"+e.toString());
}
ksession.dispose();
我希望有多个servicetask指向上面的不同Custom WorkItemHandlers。
答案 0 :(得分:0)
在这种情况下,你覆盖了&#34;服务任务&#34;节点。您需要做的是编写一个单独的工作项处理程序。该文件是here
基本步骤是: