谁说驰骋工作流引擎没有事务?那是以前!!!

 

驰骋工作流引擎,表单引擎工作事务单元测试报告

 

各位xxx银行朋友:

 

事务问题一直是xxx银行客户反复提出尚未解决的问题,经过与xx银行的同事一起讨论,我们把流程引擎的底层进行了一些改造,让其支持事务,并且做出如下测试案例,请各位同事与客户进行评估与测试。

关于bp架构的事务综述

驰骋的bp框架所有执行update,delete,insert 的sql ,都是通过DBAccess.RunSQL()这个方法执行的,不管是直接执行的sql,还是实体类执行的增删改查的sql。

所以该问题的解决重点就是DBAccess.RunSQL()这个方法。

执行SQL 部分:

正常执行(验证通过):

 

代码如下

String bussID="zhoupeng";

//开始事务.

DBAccess.DoTransactionBegin(bussID);

 

String sql="UPDATE Port_Emp Set Name='admin1' where no='admin' ";

DBAccess.RunSQL(sql);

 

DBAccess.DoTransactionCommit(buessID); //提交事务.

执行后回滚(验证通过)

代码

 

 

<%

 

String bussID="zhoupeng"; //定义事务的ID.

//开始事务.

DBAccess.DoTransactionBegin(bussID);

 

String sql="UPDATE Port_Emp Set Name='admin1' where no='admin' ";

DBAccess.RunSQL(sql);

 

DBAccess.DoTransactionRollback(bussID); //回滚事务.

return;

 

//DBAccess.DoTransactionCommit(buessID); //提交事务.

//return;   

 

%>

 

实体类更新部分

 

正常执行更新(测试通过)

 

 

 

执行后回滚 (测试通过)

 

 

 

 

流程引擎的重要过程

在流程引擎的操作中,我们列出了如下方法对事务有一定的要求。

创建workid(测试通过)

正常创建

代码如下:

 

 

首先删除:

 

delete from ND301Rpt

delete from wf_generworkflow

 

执行后代码:

 

 

 

 

执行两次没有错误。

 

撤销创建

代码如下:

 

 

先执行删除后的效果:

 

 

 

多次刷新无数据,与上图一样,说明回滚成功:

 

 

执行发送(测试通过)

错误发送(没有指定接受人的情况):

源代码:

 

 

这时候,死锁产生,因为没有释放连接,kill 99; 改造代码实现如下步骤。

 

 

 

改造后的代码:

 

 

控制台已经输出了异常的消息,如控制台图。

 

流程状态,仍然是空白状态:

 

多次执行数据仍然与上图相同,说明已经执行了回滚。

 

改造后,增加了接收人代码,如下图:

 

 

正常发送:

代码如下:

 

 

提示信息正常:

 

撤销发送:

首先执行删除语句:

 

编码如下:

 

 

可以完整执行,执行后,查询应该没有数据,就符合预期。

 

 

 

 

 

执行流程发送后的撤销(未测试)

 

 

 

 

执行退回(未测试)

 

 

 

驰骋工作流引擎研发于2003年,具有.net与java两个版本,它们代码结构、数据库结构、设计思想、功能组成、操作手册完全相同。流程表单模版两个版本完全通用。 CCFlow是.net版本的简称,由济南团队负责研发。JFlow是在java版本的简称,由深圳研发团队研发。两款产品核心代码向社会100%开源,十多年来,我们一直践行自己的诺言,努力提高产品质量,真心服务中国IT产业,成为了国内知名的老牌工作流引擎,在国内开源BPM领域稳坐第一位。 CCFlow基础功能: 1、流程引擎设计支持所见即所得的设计:节点设计、表单设计、单据设计、报表定义设计,方向条件设计... 2、流程模式简洁只有4种容易理解、线性流程、同表单分合流、异表单分合流、父子流程没有复杂的概念。 3、支持流程的基础功能:前进、后退、转向、转发、撤销、抄送、挂起、草稿、任务池共享,也支持高级功能取回审批、项目组、来宾用户等等。 4、支持sdk开发,多表单展现,字段权限控制,从表控制,多种符合中国国情的业务规则设置。 5、表单引擎流程引擎可以分开也可以单独使用,流程引擎可以驱动表单引擎,实现多种业务数据的操作,比如:汇总、分合、填写。 6、CCFlow集成方式简洁,容易实现插件模式的开发。 7、SDK接口丰富,注释详细, 丰富的帮助文档, 容易上手。 8、更多的功能请参考官方网站。 CCFlow特点: 1、CCFlow成长于中国2003年,历史长久,在多种生产、管理环境中成长起来,是国内老牌的工作流程引擎,拥有众多的爱好者,开发者, 100%的核心代码开源。 2、历经多个项目多种行业磨练(请参考官方网站成功案例),规则丰富,生命力强,绝大多数应用可以实现无代码流程设计。 3、CCFlow的核心代码都是公司自己研发的,核心算法也是基于实际应用,经过我们十多年的发展,每个所服务的客户都能得到最佳的流程解决方案。 4、CCFlow没有借助第3方的流程软件,拥有独立知识产权, 所以我们最容易扩展,实现客户的需求。 5、CCFlow功能强大,可配置性好,通常的应用开发可以实现无代码实现,面向业务人员、系统管理员、与程序员。 6、使用开源的软件好处众多,可以跟踪调试,可以修改,研究者众多,容易得到帮助,可以与我们的开发人员在线互动,遇到问题可以在第1时间解决。 7、CCFlow是国内第一款同时拥有.net版本与java版本的工作流引擎,两者互为影子版本,数据库解构,配置界面完全相同。 8、CCFlow设计思路精巧、概念简单。只有线性、同表单分合流、异表单分合流、父子流程四个概念。 有涵盖多种行为的5*5的算法,流程模式实现现实生活中绝大多数模式(目前没有我们解决不了的问题)。 9、CCFlow的概念简洁、通俗易懂, 运行规则与运行模式清晰,数据库结构设计精简,规则丰富,帮助详实。 10、CCFlow是国内流程引擎与表单引擎集成较好的bpm软件,流程引擎可以操纵表单引擎数据实现复杂的业务数据处理与权限控制。 11、CCFlow拥有200多个流程演示模版,涵盖了我们在开发过程中遇到的很多的应用场景,参考这些模版,容易获得帮助。 12、CCFlow拥有40多个单元测试案例,这些单元测试案例,是保障ccflow稳定运行的基础,在核心代码修改后容易找打问题。 13、CCFlow资料完善(约:16万字),拥有众多的爱好者,开发者容易得到帮助。 CCFlow的代码放在Git上,容易修改代码与我们合并。 14、CCFlow集成方便, 概念、名词通俗易懂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋低代码、工作流、表单引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值