浏览 6732 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-23
现在正在 JBPM 和 OSWorkflow 中选型。OSWorkflow我已经证明可以做到这一点。 举例来说,有以下流程 Start --> State1 --> State2 --> State3 --> End 如果用户已经启动了这个流程,运行到了 State1,这时,如果用户修改流程定义,将 State2 删除,流程变成: Start --> State1 --> State3 --> End 这时,不能重新生成流程(或者对用户来说这是个隐藏的过程),流程必须继续走下去。 请问 JBPM 是否能做到? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-23
你这要求也太那啥了吧,若是删除的就是State1,你怎么办?
若是新增了个state0,又如何? 一般来说修改ProcessDefinition不能对已启动的Process起作用, 否则很容易出现莫明其妙的问题的,尤其是那种有分支和循环的复杂流程。 |
|
返回顶楼 | |
发表时间:2007-01-23
不需要考虑合理性,重点是 JBPM 能否实现,如何实现?在我们的需求里,已经执行过的流程节点是不允许删除的,但是对末被执行的节点,用户是可以删除和修改的。
我对 JBPM 不了解,现在的初步想法是将原来的流程自动关闭,然后重新启动一个新的流程,走新的 Definition,但是原来走过的节点不能再要求用户去走一遍。 我今天在网上查了一下,好像大家把这种需求叫做自由流! 不知道有没有哪位用 JBPM 实现过这样的需求? |
|
返回顶楼 | |
发表时间:2007-02-02
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( "<process-definition>" + "<start-state >" + "<transition to='s'/>"+ "</start-state>" + "<state name='s'>" + "<transition to='end'>" + "</transition>" + "</state>" + "<end-state name='end'/>" + "</process-definition>" ); ProcessInstance processInstance = new ProcessInstance(processDefinition); Token token = processInstance.getRootToken(); assertSame(processDefinition.getStartState(), token.getNode()); Transition transition = new Transition(); transition.setTo(processDefinition.getNode("end")); token.signal(transition); assertEquals("end", token.getNode().getName()); |
|
返回顶楼 | |
发表时间:2007-02-02
需要自己在程序里添加转向
|
|
返回顶楼 | |
发表时间:2007-02-07
JBPM里不支持这种中国特色的玩意,自由流,任意跳转什么的。JBPM有VERSION控制,修改后的是新流程了,没有结束的实例的继续跑旧的定义
|
|
返回顶楼 | |
发表时间:2007-02-07
这种动态的流程,我也碰到了,但是和楼上的情况不一样,我碰到的情况是流程a->b后,在b这里根据一些数据才能决定下面一个的流程是怎样的,也许是c->d->e,也许是d->c->e,也许是e->d->c,也就是说后面的流程流转的情况,完全取决于,流程运行过程中,在b处的运行时的一些数据。这种情况,jbpm好像就不能支持了。
|
|
返回顶楼 | |
发表时间:2007-02-07
楼上说的这种情况,单纯的根据条件来选择转向也是可以实现的。
还有楼主说的,可以这样的 Start --> State1 --> State2 --> State3 --> End |------------------> 符合一定条件,跳过2 不知道可不可以 |
|
返回顶楼 | |