前言
概要
本文主要介绍如何查找单据上的插件,以及如何按插件查找使用它的单据。
插件类型
星空系统中插件按语言分为两类:C#插件、Python插件。
C#插件是指由C#.NET编写后编译成的dll文件,初次挂载需要重启服务器,本地环境可以热部署,但公有云环境每次改动C#插件必须重启服务器。
Python插件是指直接编写Python脚本,保存即可生效
星空系统中插件按类型可分为:表单插件、列表插件、单据转换插件、操作服务插件、计划任务插件、接口插件等,常见的就是前四个。
插件命名
一般Kingdee开头的都是标准产品,不可更改,不可取消
RHTW开头的为华海二开
如图,注册后的插件名称以逗号隔开,前面部分为插件的完整名称,后面是所属dll文件的名称。
在BOS中查看挂载的插件
表单/列表插件
如图,打开某单据元数据,打开属性面板,可以查看“表单插件”,“列表插件”列表
操作服务插件
如图,打开操作列表,每个操作都可能挂载操作服务插件。
单据转换插件
如图,打开单据转换列表,找到某个单据转换,点进去,查看插件列表。
捷径: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
--根据插件名称查看它绑定的业务对象
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
应用场景
改别人的插件时,不确定这个插件被哪些单据绑定过,防止影响其它单据。
推荐阅读