星空基础知识 - 元数据(Metadata)- 插件获取元数据原创
金蝶云社区-Howhy
Howhy
10人赞赏了该文章 1,403次浏览 未经作者许可,禁止转载编辑于2023年03月24日 09:29:26

前面文章介绍了如何查看元数据,包括xml形态和调试监控形式,本文介绍如何插件获取元数据,比如我想在物料的表单插件中,获取客户的元数据。通过元数据,我可以加载出客户的数据出来。以下案例演示插件调用获取元数据

  1.  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个字段。

image.png



部分场景下,太多字段会影响性能,通过插件,可以加载整个元数据的部分字段(这个一般配合加载部分数据包使用,该场景后面介绍),代码如下:

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的元数据,代码调试监控对比如下:

image.png


赞 10