// KDTransactionScope 事务模式示例 // 适用插件:Operation/Report/Task // 依赖 API:KDTransactionScope, DBUtils // 相关检查:事务范围最小化,catch 异常后 throw 让事务自动回滚 using System; using Kingdee.BOS; using Kingdee.BOS.App.Data; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.Util; public class TransactionSample { private Context ctx; private static readonly ILog Logger = LogManager.GetLogger(typeof(TransactionSample)); public void ExecuteInTransaction() { using (KDTransactionScope scope = new KDTransactionScope()) { try { // 事务内执行多个操作 DBUtils.Execute(ctx, "UPDATE T_PUR_POORDER SET FSTATUS = 'C' WHERE FID = 100001"); DBUtils.Execute(ctx, "INSERT INTO T_LOG (FBILLID, FACTION) VALUES (100001, 'Audit')"); scope.Complete(); // 提交事务 } catch (Exception ex) { Logger.Error("事务执行失败", ex); throw; // 事务会自动回滚 } } } }