星空|SQL|元数据&插件|查找单据上的插件原创
金蝶云社区-之间
之间
11人赞赏了该文章 222次浏览 未经作者许可,禁止转载编辑于2024年05月23日 15:41:42

前言

概要

本文主要介绍如何查找单据上的插件,以及如何按插件查找使用它的单据

插件类型

  • 星空系统中插件按语言分为两类:C#插件、Python插件

    • C#插件是指由C#.NET编写后编译成的dll文件,初次挂载需要重启服务器,本地环境可以热部署,但公有云环境每次改动C#插件必须重启服务器

    • Python插件是指直接编写Python脚本,保存即可生效

  • 星空系统中插件按类型可分为:表单插件、列表插件、单据转换插件、操作服务插件、计划任务插件、接口插件等,常见的就是前四个

插件命名

  • 一般Kingdee开头的都是标准产品,不可更改,不可取消

  • RHTW开头的为华海二开

  • 如图,注册后的插件名称以逗号隔开,前面部分为插件的完整名称,后面是所属dll文件的名称。

image.png


在BOS中查看挂载的插件

表单/列表插件

如图,打开某单据元数据,打开属性面板,可以查看“表单插件”,“列表插件”列表

image.png


操作服务插件

如图,打开操作列表,每个操作都可能挂载操作服务插件。

image.png

单据转换插件

如图,打开单据转换列表,找到某个单据转换,点进去,查看插件列表。

image.png

 

 

捷径:SQL查询插件信息

可以通过SQL查询某单据有哪些插件,也可以查询某插件被哪些单据挂载

-- 查询对象上有哪些插件
SELECT AL.FNAME,A.FVERSION,A.FMAINVERSION,A.FID,A.FKERNELXML,A.FBASEOBJECTID,A.FDEVTYPE,A.FSUPPLIERNAME
    ,A.FKERNELXML.query('//FormPlugins//ClassName') as 'FormPlugins'
    ,A.FKERNELXML.query('//ListPlugins//ClassName') as 'ListPlugins' 
    ,A.FKERNELXML.query('//ServicePlugins//ClassName') as 'ServicePlugins'
    ,A.FKERNELXML.query('//SysReportServicePlugins//ClassName') as 'SysReportServicePlugins'
    ,A.FKERNELXML.query('//WebFormBuilderPlugins/PlugIn[ClassName]') as 'WebFormBuilderPlugins'
FROM T_META_OBJECTTYPE A 
LEFT JOIN T_META_OBJECTTYPE_L AL ON A.FID = AL.FID AND AL.FLOCALEID = '2052' 
WHERE AL.FNAME = '物料' 
ORDER BY AL.FNAME,A.FMODIFYDATE

image.png

 

--根据插件名称查看它绑定的业务对象
SELECT AL.FNAME,A.FVERSION,A.FMAINVERSION,A.FID,A.FKERNELXML,A.FBASEOBJECTID,A.FDEVTYPE,A.FSUPPLIERNAME
FROM T_META_OBJECTTYPE A 
LEFT JOIN T_META_OBJECTTYPE_L AL ON A.FID = AL.FID AND AL.FLOCALEID = '2052' 
WHERE CONVERT(varchar(max),A.FKERNELXML.query('//ClassName')) like  '%RHTW.K3.PLM.STD.Business.PlugIn.BJX.bgd%' 
ORDER BY AL.FNAME,A.FMODIFYDATE

image.png

 

应用场景

  • 改别人的插件时,不确定这个插件被哪些单据绑定过,防止影响其它单据。


赞 11