几种常见保存方法的区别原创
金蝶云社区-_竹林风_
_竹林风_
12人赞赏了该文章 2,395次浏览 未经作者许可,禁止转载编辑于2020年10月19日 20:16:26
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保存数据,用于第三方系统提交数据到金蝶系统。


图标赞 12
12人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!