根据运行期元数据获取相关属性原创
金蝶云社区-JeremyG
JeremyG
3人赞赏了该文章 1,293次浏览 未经作者许可,禁止转载编辑于2022年01月13日 15:34:46

前言:

之前我们介绍了元数据的一些概念,不清楚元数据的可以移步:https://vip.kingdee.com/article/269431412242369280 

接下来通过一些简单的代码,看插件中怎么使用运行期元数据。


示例:

我们以平台的人员为例,看一下运行期元数据的使用:

// 获取人员的运行时表单-列表元数据
FormConfig userListConfig = FormMetadataCache.getListFormConfig("bos_user");
// 获取人员列表绑定的F7列表模板
String f7ListFormId = userListConfig.getF7ListFormId();
// 获取人员列表上绑定的插件
List<Plugin> plugins = userListConfig.getPlugins();
// 获取人员运行时表单元数据
FormConfig userFromConfig = FormMetadataCache.getFormConfig("bos_user");
// 这里取到的f7列表模板是不正确的,因为f7列表模板不在表单元数据中
String f7ListFormId1 = userFromConfig.getF7ListFormId();

//获取人员的运行时实体-实体类型元数据
MainEntityType userEntity = EntityMetadataCache.getDataEntityType("bos_user");
// 获取人员实体的所有字段
Map<String, IDataEntityProperty> allFields = userEntity.getAllFields();


核心就是FormMetadataCache和EntityMetadataCache。不过目前这两个类不是对二开提供的,所以大家要谨慎使用,避免因为平台更新而导致服务异常。一般情况下尽量不要直接从元数据中获取数据。

感兴趣的可以自己调试看看还能获取到什么内容,可以作为了解,以备不时之需。



如果发现文章有什么问题欢迎大家指出,我将积极验证修改。如果有帮到你,还请来一波三连:关注,点赞,收藏。觉得有用也可以分享到公司群,惠及其他同事,感谢您的耐心观看~~~

赞 3