常用接口原创
金蝶云社区-eris
eris
5人赞赏了该文章 3,999次浏览 未经作者许可,禁止转载编辑于2022年07月10日 19:08:32

APP层接口

using Kingdee.BOS.App; 

 var mdService = ServiceHelper.GetService<IMetaDataService>(); 

var saveService = ServiceHelper.GetService<ISaveService>();

Web层接口

 using Kingdee.BOS.Contracts 

 var bdService =ServiceFactory.GetBusinessDataService(this.Context)

 var mdService =ServiceFactory.GetMetaDataService(this.Context)

1. 保存接口

--操作插件,反写插件,转换插件等在App层运行的插件调用接口

//保存数据包,不会给主键和FMasterId赋值,不会不会校验,不受插件干预,不会走反写

new BusinessDataService().Save(Context ctx, DynamicObject[] dataEntities, OperateOption option = null)

//保存数据包,会给主键和FMasterId赋值, 不会校验,不受插件干预,不会走反写

new SaveService().Save(Context ctx, DynamicObject[] dataEntities)

//保存数据包,会给主键和FMasterId赋值, 会校验证,会受插件干预,会走反写

new SaveService().(Context ctx, BusinessInfo info, DynamicObject[] dataEntities, OperateOption option, string operationNumber = "")

--表单插件,列表插件等在web层运行的插件调用接口

//保存数据包,会给主键和FMasterId赋值, 不会校验,不受插件干预,不会走反写

BusinessDataServiceHelper.Save(Context ctx, DynamicObject[] dataObject)

//保存数据包,会给主键和FMasterId赋值, 会校验证,会受插件干预,会走反写

BusinessDataServiceHelper.Save(Context ctx, BusinessInfo businessInfo, DynamicObject[] dataObject, OperateOption option = null, string operationNumber = "")

2. 取元数据接口

--在应用层调用,如操作插件,转换和反写插件中

 //接口1

 MetadataXmlReader reader = new MetadataXmlReader(this.Context);

FormMetadata metaData = (FormMetadata)reader.Load(FormIdConst.xxx);

//接口2,其实是调用接口1中的方法

 MetaDataService metaService = new MetaDataService();

FormMetadata metaData = (FormMetadata)metaService.Load(ctx, FormIdConst.xxx);

//接口3,单例模式,调用接口2

FormMetadata metaData = ServiceFactory.GetMetaDataService(ctx).Load(ctx, FormIdConst.xxx) as FormMetadata;

 --在Web层调用,比如表单插件,列表插件

//接口1,单例模式        

FormMetadata metaData = ((FormMetadata)MetaDataServiceHelper.Load(this.View.Context,  FormIdConst.xxx));

//接口2,单例模式, 其实是调用接口1中的方法      

FormMetadata metaData = ((FormMetadata)FormMetaDataCache.GetCachedFormMetaData(view.Context,  FormIdConst.xxx))

//接口3,单例模式, 跟接口2中的实现相同

IMetaDataService metaService = ServiceFactory.GetMetaDataService(this.Context);

FormMetadata metaData = ((FormMetadata)metaService.Load(this.Context,  FormIdConst.xxx));