电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.服务插件.事件.BeginOperationTransaction

来源:金蝶云社区作者:金蝶2024-09-2317

二开案例.服务插件.事件.BeginOperationTransaction

【事件名称】

BeginOperationTransaction

调用操作事务前事件(事务内)



【事件参数】

BeginOperationTransaction

DataEntitys:本次事务处理的实体

CancelOperation:是否取消平台对本操作的内置处理(此属性仅取消部分内置处理,不是终止操作,包括AbstractOprerationService下的BeforeInvokeFormBusiness、ExecuteOperatinTransaction和AfterInvokeFormBusiness)

CancelFormService:是否取消执行本操作所关联的表单服务(AbstractOprerationService下的InvokeFormBusiness,分为操作前和操作后)




【触发时机】

App层触发。

通常在校验通过后,在BeforeExecuteOperationTransaction事件之后触发,在启动事务后触发,在EndOperationTransaction事件之前触发。



【功能说明】

此事件受事务保护。

操作的内部事务启动后,会首先触发此事件。

在此事件中访问的数据库表,在操作事务结束前会被锁定,需特别留意表的访问顺序,避免死锁。

此事件中的代码块不宜执行时间太长,大事务处理超时,轻则造成本次操作失败,重则造成整个系统卡顿奔溃。

此时的数据包尚未提交到数据库,通常在此事件中对操作的数据包进行数据再加工处理。



【注意事项】

<1>如果操作失败,事务回滚,那么此事件中的所有数据库操作都会被回滚。

<2>不要在此事件中做数据库的DDL操作(例如:创建表或视图,修改字段类型,创建索引等),容易造成事务阻塞和死锁,ORACLE账套下还会造成事务隐性提交,最终造成操作失败。



【应用场景】

<1>抛异常中断操作。

<2>数据校验。

<3>输出交互异常。

<4>数据预处理。

<5>数据再加工。

<6>日志跟踪。

<7>执行其他需要事务保存的数据库操作。

<8>设置是否取消平台对本操作的内置处理。

<9>设置是否取消执行本操作所关联的表单服务。

<10>修改DataEntitys属性,调整参与操作的数据包。



【代码模板】

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
/// <summary>
/// 【服务插件】BeginOperationTransaction
/// </summary>
[Description("【服务插件】BeginOperationTransaction"), HotUpdate]
public class Be

二开案例.服务插件.事件.BeginOperationTransaction

【事件名称】BeginOperationTransaction调用操作事务前事件(事务内)【事件参数】BeginOperationTransactionDataEntitys:本次事务处理的...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信