public void bill.Save(){
bool enginesuccess = true;
bool billsuccess = true;
try{
db.BeginTransaction();
try{
WorkflowEngine engine = WorkflowEngine.Create();
enginesuccess = engine.TransferSomeData(bill.SomeMethod());// 把数据传递到engine的db中
}
catch(Exception ex){
enginesuccess = false;//false可能是异常造成的,也可能是TransferSomeData方法返回的
}
bill.Save();
db.Commint();
}
catch(Exception ex){
billsuccess = false;// 单据保存失败了
}
if(false == billsuccess && false == enginerror){ // 单据保存失败,工作流engine也失败
db.Rollback();// 业务单据回滚
engine.CancelTransferSomeDataFromEngineDatabase();// 引擎回滚
MessageBox.Show(“无法启动工作流实例!请系统管理员进行处理!”);
}
else if(true == billsuccess && false == enginesuccess){ // 单据保存成功,工作流engine失败
// db.Rollback();这句是否需要加上?需要处理吗?
engine.CancelTransferSomeDataFromEngineDatabase();// 引擎回滚
MessageBox.Show(“无法启动工作流实例!请系统管理员进行处理!”);
}
else if(false == billsuccess && true == enginesuccess){ // 单据保存失败,工作流engine成功
db.Rollback(); // 单据回滚
engine.CancelTransferSomeDataFromEnginDatabase();// 引擎回滚
}
}
bool enginesuccess = true;
bool billsuccess = true;
try{
db.BeginTransaction();
try{
WorkflowEngine engine = WorkflowEngine.Create();
enginesuccess = engine.TransferSomeData(bill.SomeMethod());// 把数据传递到engine的db中
}
catch(Exception ex){
enginesuccess = false;//false可能是异常造成的,也可能是TransferSomeData方法返回的
}
bill.Save();
db.Commint();
}
catch(Exception ex){
billsuccess = false;// 单据保存失败了
}
if(false == billsuccess && false == enginerror){ // 单据保存失败,工作流engine也失败
db.Rollback();// 业务单据回滚
engine.CancelTransferSomeDataFromEngineDatabase();// 引擎回滚
MessageBox.Show(“无法启动工作流实例!请系统管理员进行处理!”);
}
else if(true == billsuccess && false == enginesuccess){ // 单据保存成功,工作流engine失败
// db.Rollback();这句是否需要加上?需要处理吗?
engine.CancelTransferSomeDataFromEngineDatabase();// 引擎回滚
MessageBox.Show(“无法启动工作流实例!请系统管理员进行处理!”);
}
else if(false == billsuccess && true == enginesuccess){ // 单据保存失败,工作流engine成功
db.Rollback(); // 单据回滚
engine.CancelTransferSomeDataFromEnginDatabase();// 引擎回滚
}
}
btw,edit new post的时候,page打开的速度好慢。。。