论坛首页 Java企业应用论坛

请问JBPM是否能在ProcessInstance创建后修改 ProcessDefinition?

浏览 6703 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-23  
请问JBPM是否能在ProcessInstance创建后修改 ProcessDefinition?
现在正在 JBPM 和 OSWorkflow 中选型。OSWorkflow我已经证明可以做到这一点。
举例来说,有以下流程

Start --> State1 --> State2 --> State3 --> End

如果用户已经启动了这个流程,运行到了 State1,这时,如果用户修改流程定义,将 State2 删除,流程变成:

Start --> State1 --> State3 --> End

这时,不能重新生成流程(或者对用户来说这是个隐藏的过程),流程必须继续走下去。

请问 JBPM 是否能做到?
   发表时间:2007-01-23  
你这要求也太那啥了吧,若是删除的就是State1,你怎么办?
若是新增了个state0,又如何?

一般来说修改ProcessDefinition不能对已启动的Process起作用,
否则很容易出现莫明其妙的问题的,尤其是那种有分支和循环的复杂流程。
0 请登录后投票
   发表时间:2007-01-23  
不需要考虑合理性,重点是 JBPM 能否实现,如何实现?在我们的需求里,已经执行过的流程节点是不允许删除的,但是对末被执行的节点,用户是可以删除和修改的。

我对 JBPM 不了解,现在的初步想法是将原来的流程自动关闭,然后重新启动一个新的流程,走新的 Definition,但是原来走过的节点不能再要求用户去走一遍。

我今天在网上查了一下,好像大家把这种需求叫做自由流!
不知道有没有哪位用 JBPM 实现过这样的需求?
0 请登录后投票
   发表时间: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());
0 请登录后投票
   发表时间:2007-02-02  
需要自己在程序里添加转向
0 请登录后投票
   发表时间:2007-02-07  
JBPM里不支持这种中国特色的玩意,自由流,任意跳转什么的。JBPM有VERSION控制,修改后的是新流程了,没有结束的实例的继续跑旧的定义
0 请登录后投票
   发表时间:2007-02-07  
这种动态的流程,我也碰到了,但是和楼上的情况不一样,我碰到的情况是流程a->b后,在b这里根据一些数据才能决定下面一个的流程是怎样的,也许是c->d->e,也许是d->c->e,也许是e->d->c,也就是说后面的流程流转的情况,完全取决于,流程运行过程中,在b处的运行时的一些数据。这种情况,jbpm好像就不能支持了。
0 请登录后投票
   发表时间:2007-02-07  
楼上说的这种情况,单纯的根据条件来选择转向也是可以实现的。

还有楼主说的,可以这样的

Start --> State1 --> State2 --> State3 --> End
       |------------------>
        符合一定条件,跳过2

不知道可不可以
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics