2011.2.25 BUG 将新建立的流程提交到数据库中的时候,发生异常,导致flow_manager的流程主记录未进入数据库中
请参考 JWFDv0.96 开源工作流引擎设计-数据库结构说明.doc 地址 http://www.cnblogs.com/comsci/favorite/260690.html
经过检查,发生问题出在 org.jwfd.workflowDesigner.UItools.Database.mysql.FlowsSqlControlModule.java 类中的new_flow()函数中BUG出现的原因是 由于v0.96数据库结构发生变化 flow_manager表结构和旧的flow_manager的表结构有几个字段发生变化而对应的SQL操作模块却没有进行及时的修改而导致的,
BUG修正方法为,添加一个新的SQL操作函数 替换旧的SQL操作函数
修正BUG2011225001 所涉及的类和方法如下
============================================================================================================
org.jwfd.workflowDesigner.UItools.Database.mysql.FlowsSqlControlModule.java
修改详细记录:为保持和旧版本的兼容性,我决定添加一个新的SQL函数(new_flow_nv0963()),而保留旧的SQL操作函数 flow_new() 对flow_manager表的操作为 insert操作,v0.96版本的字段相比v0.94版本减少了3个,而且部分字段的属性也发生变化
///////////////////新版本 插入一条新的FLOW记录到FLOW_MASTER表中////////////////////
/* JWFDv0.96.3版本对应的new_flow操作函数,在原来的名称后面添加nv(new vision)版本号
* SQL操作用途:插入一条新的流程主记录到流程管理表(flow_manager)中
* 说明:针对新版本的数据库结构进行修改,删除几个字段,重构SQL操作
* 版本说明:JWFDv0.96.3版本专用,如果数据库结构发生变化,需要修改SQL操作的对应操作字段
* */
public void new_flow_nv0963(String graphid, String create_time) {
try {
db_conn.stmt.execute(
"insert into flow_manager values('" + graphid + "','" + graphid +
"',0,'','','','" + create_time + "')");
}
catch (Exception e) {
System.out.println("插入新流程发生异常"+e);
}
}
==============================================================================================================
org.jwfd.workflowDesigner.mainUI.UIComponents.MainTreeModule.java
调用FlowsSqlControlModule.java 类的new_flow()函数的类为MainTreeModule.java,具体操作代码在该类的340-350行
BUG修改详细记录 由于FlowsSqlControlModule类中的SQL操作函数已经发生变化,因此要同步修改调用该函数的模块
修改过程 注释掉旧的调用方法 添加新的调用语句
// smn.new_flow(cell.toString(), currentDateTime,3001);
smn.new_flow_nv0963(cell.toString(), currentDateTime);
说明 旧的函数调用 smn_new_flow()的参数和新的操作函数的参数不同,新函数减少了一个旧的部门ID字段,特此说明
==============================================================================================================
经过测试 提交流程图进入数据库的过程中的异常BUG已经解决,流程主记录数据可以正常的进入flow_manager表
但是这里仍然有一个异常,我还未找到原因,但是这个异常不影响流程数据的正常提交,下一步,我将修正这个异常
请把附件中的JWFD流程图提交异常BUG修正包里面两个JAVA类COPY到SRC的包里面,然后重新编译,直接覆盖就OK
BUG修改包下载地址
http://comsci.javaeye.com/blog/927991
来源:oschina
链接:https://my.oschina.net/u/64563/blog/13616