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));