ofbiz工作流学习(三)

OFBIZ流程操作使用过程

1 流程定义

   一般用JaWe进行流程定义。根据查找的资料,使用JaWe生成的xpdl文件和workflow engine有少许不兼容的情况,摘抄总结如下:

1)JAWE生成DataFields会和ofbiz Implementation Tool里的ActualParameter冲突, 导致runtime data不能正常的获取, 如果你的Tool需要ActualParameter的话,直接输入即可,不需要把它定义成为workflow relevant data.

2)在Activity的TransitionRef部分, 由于FK的缘故,不能import到db
修改方法1: 注释掉 XpdlReader readTransitionRestriction 最后读取readTransitionRefs的代码(由于ofbiz workflow engine没有用到TransitionRefs, 故可以直接注释掉)
修改方法2:修改entity定义文件: WorkflowTransitionRef with WorkflowTransition's relationship type to "one-nofk"

3)在ActivityTransitionRestriction部分,如果Join/Split transition只有唯一情况,JAWE是不会生成定义Join/Split Type的
修改方法1:手工加上:<Join Type="XOR"/> <Split Type="XOR"/>
修改方法2:修改 XpdlReader 代码,使其默认为XOR

 

2流程装载

ofbiz提供页面来实现流程装载,如下:
   

            流程装载

 

3 流程使用

   ofbiz没有提供自己的工具来说明流程的使用方法,要求开发人员找到相应的api来调用;另外,ofbiz的orderMgr模块,使用了工作流引擎,但不是纯工作流引擎的应用,它包含了自己的独立的复杂的业务逻辑

   大致的流程使用步骤如下:

1)启动流程

首先,获取实体引擎和服务引擎,一般从页面的request中获取;然后,调用实体引擎新建工作流记录;最后,调用服务引擎启动流程

2)获取工作列表

首先,用EntityExpr类构造约束List;然后,将约束List作为参数传递给实体引擎查找符合条件的记录;对于查找本部门的或本角色的或指定到本人的工作列表都采用同样的方法

3)执行活动

首先,调用工作流引擎判断任务是否由该用户操作或是否已经被其他用户accept;其次,调用WorkflowClient类来获取流程实例号,定位流程;然后,调用实体引擎获取该流程实例号的数据;最后,按流程定义调用工作流引擎

   获取活动信息并执行相应的活动。

 

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值