[技术讨论] 因项目需要对OSWORKFLOW做简单的扩展
dongjun316
2009-11-24
项目需求中需要动态地Split,并且工作项的所有者需要是Role,Department,User,Group这几种类型。
我修改了dtd文件,在Result中加入 ownerType属性 ownerType取值范围Role,Department,User,Group。 在Split节点加入 dynamicSplit属性 取值范围:true,false. dynamicSplit取值true表示该节点为动态分支节点。 class Receiver{ private String owner; private String ownerType; //...getter setter } 我在包中加入这个Receiver Class. 在doAction的时候将List<Receiver>类型放进inputs中。 当解析到dynamicSplit=true时,就从var中读取这个List<Receiver>,有几个就分裂成几个(这个需要修改abstractWorkflow里的代码)。 合并的时候我写了一个Condition,就是当所有分裂的步骤都是Finished的时候合并,这个代码就不上了。 补充一点,需要修改数据库结构OS_CurrentStep,历史表也一样加入OWNER_TYPE字段,对应的hibernate配置也要改一下。 请指教这方法可行否? |
|
dongjun316
2009-11-24
谢谢eworkflow的回复,
动态split我是直接向数据库表OS_CURRENTSTEP里插入记录的。不是更改配置文件。更改配置文件是不可行的。 关于OwnerType的问题,你说是加入判断条件。这个方法肯定可以,OSWORKFLOW的条件功能很强大。 我加入OwnerType的目的是为了可以方便检索用户的待办工作项列表。 |
|
zhjb_javaeye
2011-03-15
你好,请教下,实现动态分支/汇合你是如何区分step_id的唯一呢?
|
|
a283037321
2012-09-19
你好,我想请问下这个ownerType该怎么存进数据库?能说下步骤吗
|