JBPM流程更新

看到这一段真让人心寒啊...

16.1.4. Migrating process instances
An alternative approach to changing process definitions might be to convert the executions to a new process definition. Please take into account that this is not trivial due to the long-lived nature of business processes. Currently, this is an experimental area so for which there are not yet much out-of-the-box support.

As you know there is a clear distinction between process definition data, process instance data (the runtime data) and the logging data. With this approach, you create a separate new process definition in the jBPM database (by e.g. deploying a new version of the same process). Then the runtime information is converted to the new process definition. This might involve a translation cause tokens in the old process might be pointing to nodes that have been removed in the new version. So only new data is created in the database. But one execution of a process is spread over two process instance objects. This might become a bit tricky for the tools and statistics calculations. When resources permit us, we are going to add support for this in the future. E.g. a pointer could be added from one process instance to it's predecessor.

JBPM把流程的转向通过 taskInstance.end(transitionName)来实现, 那不是意味着流程一变, 很多handler就要跟到变?

在TaskNode定义的event上写Script可能是一个龌龊的办法. 有没有更好的办法解决?

简单的说,就是业务程序并不关心我到底要走哪个具体的transition的名字,这些都交给流程本身来完成. 这样流程即使更新,业务程序也不需要修改.

你可能感兴趣的:(jbpm)