星空基础知识 - 元数据(Metadata)- 插件获取元数据原创
10人赞赏了该文章
1,403次浏览
编辑于2023年03月24日 09:29:26
前面文章介绍了如何查看元数据,包括xml形态和调试监控形式,本文介绍如何插件获取元数据,比如我想在物料的表单插件中,获取客户的元数据。通过元数据,我可以加载出客户的数据出来。以下案例演示插件调用获取元数据
MetaDataServiceHelper.Load
const string formId = "PAEZ_DemoBill"; var meta = MetaDataServiceHelper.Load(this.Context, formId, true) as FormMetadata;
如上代码,使用对应接口,传递上下文对象(context),传入formid(业务对象根节点唯一标识),是否运行时(此处传入true,为运行元数据)。
前面2个参数比较常见,最后一个是否运行时,这个参数的含义是,如果是运行时元数据,将把这个业务对象所有扩展合并起来。比如物料根节点有300个字段,扩展一级,增加了100个字段。那么传入true则返回400个字段,传入false,则跟节点返回300个字段。
部分场景下,太多字段会影响性能,通过插件,可以加载整个元数据的部分字段(这个一般配合加载部分数据包使用,该场景后面介绍),代码如下:
const string formId = "PAEZ_DemoBill"; var meta = MetaDataServiceHelper.Load(this.Context, formId, true) as FormMetadata; var subBusiness = meta.BusinessInfo.GetSubBusinessInfo(new List<string>() { "FBillNo" });
上述代码中,subBusiness是一个仅包含FBillNo的元数据,代码调试监控对比如下:
推荐阅读