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表
可是這裏仍然有一個異常,我還未找到緣由,可是這個異常不影響流程數據的正常提交,下一步,我將修正這個異常html
請把附件中的JWFD流程圖提交異常BUG修正包裏面兩個JAVA類COPY到SRC的包裏面,而後從新編譯,直接覆蓋就OKjava
BUG修改包下載地址mysql
http://comsci.javaeye.com/blog/927991sql