通过SQL查询出单据元数据的Python脚本
Python脚本插件可以将一个功能快速复用到多个单据上,提升我们的开发效率。
那么问题来了:
我们多次应用Python脚本之后,突然哪天想看下哪些单据配置了这个脚本怎么办呢?
遇到一个新的开发,想起之前好像用Python实现过类似的功能,但就是想不起是哪个单据上开发的,想找出来参考一下?
...
最近,小弟就遇到了这个问题,最开始是打开BOS一个单据一个一个脚本去点去看去找,找了半天都没找到。
就为了找那一句代码的写法,有时候点开了脚本都没发现,这样找下去不是个办法....
于是,我就想到Python脚本是与单据的元数据XML存在一起的,能不能通过SQL查询出元数据中的Python脚本 ,包含某个关键字的单据呢?经过研究尝试,终于实现了,在此记录下来,以后备用。
--数据库:SqlServer
--参考SQL如下:
select FID,FKERNELXML ,
(select FNAME
from T_META_OBJECTTYPE_L
where FID = T_META_OBJECTTYPE_Temp.FID and FLOCALEID = '2052'
) FNAME
,Item 单据中的所有Python脚本
from
(select FKERNELXML.query('//PyScript') 'Item', * from T_META_OBJECTTYPE) T_META_OBJECTTYPE_Temp
where convert(varchar(max),FKERNELXML.exist('//PyScript'))='1'
and convert(nvarchar(max),Item) like '%Variables%'
相关参考:查询插件被哪些单据使用(sql)
发现查询语句貌似执行有点小问题,我改了一下查询语句,请见谅:
select Fname as 单据,Item as Python脚本
from T_META_OBJECTTYPE_L t0
left join (select FKERNELXML.query('//PyScript') 'Item', * from T_META_OBJECTTYPE) t1 on t0.FID = t1.FID and FLOCALEID = '2052'
where convert(varchar(max),FKERNELXML.exist('//PyScript'))='1'
--and convert(nvarchar(max),Item) like '%Variables%'
通过SQL查询出单据元数据的Python脚本
本文2024-09-16 17:17:49发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14794.html