[技术讨论] 因项目需要对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该怎么存进数据库?能说下步骤吗
Global site tag (gtag.js) - Google Analytics