运行流程如下:
(1) 启动流程实例,获得流程实例的id;启动后,该流程进入“input_id”状态(state状态是一个等待执行的状态),并进入等待;
(2) 通过signal将流程实例的id传入流程中,这样流程中的每个状态都可以方便的获得流程实例id的值;此时,流程会进入“MuleWSTest”状态(“MuleWSTest”状态是一个java活动状态,会自动运行),在“MuleWSTest”状态中,通过java代码调用Mule的ws接口,该ws接口接收流程实例id为参数,同时会发送邮件给相应的审核人;这里接收流程实例id是为了方便mule中进行回调。邮件内容如下:
(3) 这是个简单的模拟,审核者接受到邮件后,点击链接进行审核。
如果同意的话,点击:http://localhost:12082/?processKey=MuleTestKey.7&answer=Y
请求进入到Mule中,
Mule将结果进行封装,并调用jbpm的public void signalProcessInstanceByValiable(@WebParam(name="pid")String pid,
@WebParam(name="names")List<String> names,@WebParam(name="values")List<String> values);
接口,将结果返回给流程,触发流程“state3状态”的运行并进入decision状态,根据“Y”参数流转到“Access状态”;
(4) 这只是一个简单审核流程的demo,通过流程实例的id进行mule和jbpm的交互,技术实现上比较简单,但流程需要增加一个就绪状态,接收流程实例id的输入。