几种常见保存方法的区别
1、 ISaveService iSaveService = Kingdee.BOS.App.ServiceHelper.GetService<ISaveService>(); IOperationResult result = iSaveService.Save(this.Context, info, objResults, OperateOption.Create()); 2、 ISaveService service = Kingdee.BOS.Contracts.ServiceFactory.GetSaveService(this.Context); IOperationResult result = service.Save(this.Context, info, new DynamicObject[]{ dynamicObject }, null, “ Save”); 3、 var Result = BusinessDataServiceHelper.Save(this.Context, ReleaseObj); 4、 WebApiServiceCall.Save(this.Context, “kcc682300eaed4fbb852fd8060d3e225c”, json.ToString());
保存服务接口为Kingdee.BOS.Contracts.ISaveService,Save方法,定义了两个重载。
重载一:
参数中带单据元数据 BusinessInfo;
会根据单据模型,加载保存操作的校验规则、插件事件;
会自动完成主键、单据编号等字段的赋值;
Kingdee.BOS.Core.DynamicForm.IOperationResult Save(Kingdee.BOS.Context ctx,Kingdee.BOS.Core.Metadata.BusinessInfo info,Kingdee.BOS.Orm.DataEntity.DynamicObject[] dataObject,[Kingdee.BOS.Orm.OperateOption option = null],[string operationNumber = ""])
参数说明:
ctx: 数据库上下文
info:单据元数据
dataObject : 待保存的单据数据包
option : 操作操作选项,可以通过这个对象,传入一些特殊的控制选项,如是否忽略警告信息等
operationNumber : 保存操作编码(只有在单据上挂了多个保存操作时,才需要传入)
返回值:
返回单据保存操作执行结果,如操作是否成功,失败原因等
重载二:
参数中仅仅包括需要存储的orm动态实体数据集合
无对应的单据模型,不加载保存操作的校验规则、插件事件
Kingdee.BOS.Orm.DataEntity.DynamicObject[] Save(Kingdee.BOS.Context ctx,Kingdee.BOS.Orm.DataEntity.DynamicObject[] dataObject)
参数说明:
ctx:上下文
dataObject:待存储的orm动态实体数据集合
返回值:
存储成功后重新加载的orm动态实体数据集合
方法1和方法2使用了接口ISaveService的重载一;
方法3是对方法2的进一步封装,实际使用的是ISaveService的重载二方法;
而方法4则是使用WebApi保存数据,用于第三方系统提交数据到金蝶系统。
请问这几种方式有什么区别呢?有哪些优劣呢?
BusinessDataServiceHelper中的save调用的是 ISaveService中的接口啊, 它们只是在不同的分层下调用而已。
说的还不够细致,如果传入单据Business是会进行校验。
几种常见保存方法的区别
1、 ISaveService iSaveService = Kingdee.BOS.App.ServiceHelper.GetService<ISaveService>(); IOperationResult result = iSaveServ...
点击下载文档
上一篇:PLM项目管理中项目监控角色配置下一篇:数据字典与查询分析器
本文2024-09-16 17:23:53发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-15454.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章