java流程设计 如何回退,工作流程引擎回滚应用场景与设计需求

工作流程引擎回滚的应用背景:

场景1:一件流程在完成后,发现这个流程有问题,需要退回到流程指定的节点上与当时该节点的处理人身上,让他重做。

场景2:一个主流程启动了n个子流程,他在监控子流程时发现子流程问题,需要重新去做。

这两种场景下,都是在流程完全处理完后,并且流程引擎已经把该流程归档后要求重新回滚到指定的节点与该节点的处理人身上去,让其在重新去处理。

ccflow工作流程引擎回滚流程对应的API:

///

/// 恢复已完成的流程数据到指定的节点,如果节点为0就恢复到最后一个完成的节点上去.

/// 恢复失败抛出异常

///

/// 要恢复的流程编号

/// 要恢复的workid

/// 恢复到的节点编号,如果是0,标示回复到流程最后一个节点上去.

/// 恢复的原因,此原因会记录到日志

public static string Flow_DoRebackWorkFlow(string flowNo, Int64 workid, int backToNodeID, string note)

{

BP.WF.Ext.FlowSheet fs = new Ext.FlowSheet(flowNo);

return fs.DoRebackFlowData(workid, backToNodeID, note);

}

ccflow 工作流程引擎回滚流程的设计需求:

1, 回滚人接受到的信息是退回状态,而非流程的运行状态。

2, 回滚后流程数据表的状态由完成恢复到退回,最后结束节点恢复到回滚的点。

3, 恢复流程引擎注册表数据,当前表状态标示为退回。

4, 恢复流程工作人员表,把所有参与该流程上的工作人员都恢复里面去。

5, 写入一条退回信息,让接受人员能够看到退回的原因。

6, 写入到流程日志 ,保证它的完整可读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值