代码获取页面所有插件原创
金蝶云社区-JeremyG
JeremyG
8人赞赏了该文章 1,133次浏览 未经作者许可,禁止转载编辑于2023年02月13日 15:17:38

插件代码获取指定实体配置的插件,核心就是通过元数据来取,目前只有操作插件、表单插件(包括java和脚本)、列表插件,移动列表插件。移动表单插件好像没有提供方法查询,如果需要可以解析元数据来实现。

其他的比如工作流插件,单据转换插件需要单独查询,额外的还挺多的,有兴趣大佬的可以汇总下查询

// 获取所有操作绑定的插件,通过实体元数据获取
List<Map<String, Object>> operate = EntityMetadataCache.getDataEntityOperate("kdec_billdemo0831");
for (Map<String, Object> map : operate) {
    Object plugins = map.get("plugins");
    if (null != plugins) {
        ArrayList<HashMap> plugins1 = (ArrayList<HashMap>) plugins;
        for (HashMap hashMap : plugins1) {
            // 插件全路径
            String className = (String) hashMap.get("className");
            // 是否启用
            Boolean enable = (Boolean) hashMap.get("enable");
        }
    }
}

// 获取脚本插件的脚本代码,实体元数据和页面元数据都可以
String scripts = EntityMetadataCache.getPluginScripts("kdec.kdec_wzy.kdec_test.billgroup.0831demo1");
String formPluginScripts = FormMetadataCache.getFormPluginScripts("kdec_billdemo0831", "kdec.kdec_wzy.kdec_test.billgroup.0831demo1");

FormConfig formConfig = FormMetadataCache.getFormConfig("kdec_billdemo0831");
// 获取表单插件,只显示启用的
List<Plugin> plugins = formConfig.getPlugins();

FormConfig listFormConfig = FormMetadataCache.getListFormConfig("kdec_billdemo0831");
// 获取列表页面插件,只显示启用的
List<Plugin> plugins1 = listFormConfig.getPlugins();

FormConfig mobListFormConfig = FormMetadataCache.getMobListFormConfig("kdec_billdemo0831");
// 获取移动列表插件,只显示启用的
List<Plugin> plugins2 = mobListFormConfig.getPlugins();


赞 8