空操作插件调用保存方法死循环
金蝶云社区-tsy
tsy
1人赞赏了该文章 1885次浏览 未经作者许可,禁止转载编辑于2016年07月18日 13:07:48

1、在空操作的操作前事件或操作后事件调用保存方法 BusinessDataServiceHelper.Save(this.Context, formMetadata.BusinessInfo, dynamicObject);会进入死循环;service2.Save(base.Context, formMetadata.BusinessInfo, obj6, saveOption, "save")也会进入死循环; 用 saveService.Save(base.Context, c);此方法可以正常保存
2、部分代码如下:
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
{
base.BeforeExecuteOperationTransaction(e);
ISaveService saveService = ServiceFactory.GetSaveService(base.Context);
//foreach (DynamicObject obj in e.DataEntitys)
//{
//获取目标单据对象
int id = 100019;//Convert.ToInt32(obj["Id"]);//目标单据主键ID
FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "RD_LetterApply") as FormMetadata;
DynamicObject dynamicObject = BusinessDataServiceHelper.LoadSingle(
this.Context,
id,
formMetadata.BusinessInfo.GetDynamicObjectType());
//对dynamicObject 对象的操作代码省略。。。。。。
// ISaveService service2 = ServiceHelper.GetService();

// OperateOption saveOption = OperateOption.Create();
//DynamicObject[] obj6 = { dynamicObject };

//service2.Save(base.Context, formMetadata.BusinessInfo, obj6, saveOption, "save");
BusinessDataServiceHelper.Save(this.Context, formMetadata.BusinessInfo, dynamicObject);


//DynamicObject[] c = { dynamicObject };
//c = saveService.Save(base.Context, c);
//}
}