StarFlow 工作流 5种设置参与者的模式

5中设置环节参与者模式:

1:配置流程是设置固定参与者

2:与流程启动者相同

3:A环节的参与者保持与B环节参与者相同

4:提供一个接口。动态获取参与者

5:前一个环节指定下一个环节的参与者(暂没有实现)

 

下面的实例提供四种实现方式:

流程图:



实例代码

		ProcessEngine processEngine = new Configuration().buildProcessEngine();
		IProcessDefineService procDefService = processEngine.getProcessDefineService();
		IProcessInstanceService procInstService = processEngine.getProcessInstanceService();
		IWorkItemService workItemService = processEngine.getWorkItemService();
		
		//部署流程
		procDefService.deployProcessFile("Flow1.xml");
		
		//添加filter
		processEngine.addFilter(new LoggerProcessFilter());
		
//		//启动流程
//		ProcessInstance processInstance = procInstService.createProcess("TestFlow1", "100002");
//		//创建流程
//		procInstService.startProcess(processInstance.getProcessInstId());
		
		procInstService.createAndStartProcess("TestFlow1", "100002");
		
		//List<WorkItem> workItems = workItemService.queryPersonWorkItems("100002");
		//环节定义id, 用户id
		workItemService.finishWorkItem(1, "100001"); //申告
		workItemService.finishWorkItem(2, "910150"); //派单
		workItemService.finishWorkItem(3, "100002"); //处理
		workItemService.finishWorkItem(4, "910115"); //归档

  运行过程日志:

2010-1-12 18:23:14 com.starit.wf.service.filter.LoggerProcessFilter processCreate
信息: 流程【TestFlow1】创建成功, 流程实例ID = 1
2010-1-12 18:23:14 com.starit.wf.service.filter.LoggerProcessFilter processStart
信息: 流程【TestFlow1】启动成功, 流程实例ID = 1
2010-1-12 18:23:14 com.starit.wf.service.filter.LoggerProcessFilter acitivityStart
信息: 环节【上报】创建成功, 环节实例ID = 2
2010-1-12 18:23:14 com.starit.wf.service.filter.LoggerProcessFilter acitivityComplete
信息: 环节【上报】执行完成, 环节实例ID = 2
2010-1-12 18:23:14 com.starit.wf.service.filter.LoggerProcessFilter acitivityStart
信息: 环节【派单】创建成功, 环节实例ID = 3
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter acitivityComplete
信息: 环节【派单】执行完成, 环节实例ID = 3
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter acitivityStart
信息: 环节【处理】创建成功, 环节实例ID = 4
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter acitivityComplete
信息: 环节【处理】执行完成, 环节实例ID = 4
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter acitivityStart
信息: 环节【归档】创建成功, 环节实例ID = 5
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter acitivityComplete
信息: 环节【归档】执行完成, 环节实例ID = 5
2010-1-12 18:23:15 com.starit.wf.service.filter.LoggerProcessFilter processComplete
信息: 流程【TestFlow1】运行完成, 流程实例ID = 1

  流程定义内容

<?xml version="1.0" encoding="UTF-8"?>

<ProcessDefine name="TestFlow1" version="1.1.1" chname="测试流程">
	<ProcessProperty>
		<limitTime>1440</limitTime>
		<description></description>
	</ProcessProperty>
    <Activitys>   
        <Activity id="startAct" type="start" name="开始活动">   
            <splitMode>XOR</splitMode>   
            <description></description>   
        </Activity>
        <Activity id="A01" type="manual" name="上报">
        	<limitTime>60</limitTime>
            <splitMode>XOR</splitMode>   
            <joinMode>XOR</joinMode>
            <wiMode>single</wiMode>
            <participantType>process-starter</participantType>
            <description></description>
        </Activity>
        <Activity id="A02" type="manual" name="派单">
        	<limitTime>60</limitTime>   
            <splitMode>XOR</splitMode>   
            <joinMode>XOR</joinMode>
            <wiMode>single</wiMode>
            <participantType>default</participantType>   
            <ParticipantList>   
                <participant id="910150" name="俞文琦" type="person"/>   
                <participant id="910115" name="李强" type="person"/>       
            </ParticipantList>
            <description></description> 
        </Activity>   
        <Activity id="A03" type="manual" name="处理">
        	<limitTime>60</limitTime>
            <splitMode>XOR</splitMode>   
            <joinMode>XOR</joinMode>
            <wiMode>single</wiMode>
            <participantType>act-logic</participantType>
            <particiLogic>com.starit.test.TestParticipantService</particiLogic>
            <description></description>
        </Activity>
        <Activity id="A04" type="manual" name="归档">
        	<limitTime>60</limitTime>
            <splitMode>XOR</splitMode>
            <joinMode>XOR</joinMode>
            <wiMode>single</wiMode>
            <participantType>act-executer</participantType>
            <particiSpecActID>A02</particiSpecActID>
            <description></description>
        </Activity>
        <Activity id="endAct" type="end" name="结束活动">   
            <joinMode>XOR</joinMode>
            <description></description>
        </Activity>   
    </Activitys>   
       
    <Transitions>   
        <Transition id="" from="startAct" to="A01" name="">   
            <isDefault>true</isDefault>   
        </Transition>
        <Transition id="" from="A01" to="A02" name="">   
            <isDefault>true</isDefault>    
        </Transition>
        <Transition id="" from="A02" to="A03" name="">   
            <isDefault>true</isDefault>    
        </Transition>
        <Transition id="" from="A03" to="A04" name="">   
            <isDefault>true</isDefault>    
        </Transition>
        <Transition id="" from="A04" to="endAct" name="">   
            <isDefault>true</isDefault>   
        </Transition>
    </Transitions>   
</ProcessDefine>
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值