如何查询基础资料对象被哪些单据所引用原创
金蝶云社区-Running
Running
36人赞赏了该文章 263次浏览 未经作者许可,禁止转载编辑于2023年12月23日 11:44:18

1、可先通过 T_Meta_LookupClass 基础资料查询接口表格获取基础资料对象的关联内码。

  • 以 物料 对象为例,示例脚本如下:

select * from T_Meta_LookupClass where FFormId = 'BD_MATERIAL';


  • 查询结果:

image.png


2、查询得到关联内码后,在通过 T_Meta_ObjectType 元数据表格,以 LookUpObjectID 元数据节点进行查询。

  • 示例脚本如下:

--根据基础资料关联内码查询引用,MS SQL Server
select FID, (select FNAME from T_Meta_ObjectType_L where FID = T_Meta_ObjectType_Temp.FID and FLOCALEID = 2052) FNAME, FKERNELXML, Item 
  from (select FKERNELXML.query('//LookUpObjectID') 'Item', * from T_META_OBJECTTYPE) T_META_OBJECTTYPE_Temp 
  where convert(varchar(max), Item) like '%624b39cf-5504-42e0-9124-7d75e64a05f1%'


  • 查询结果:

image.png


3、此外,通过 T_META_ObjectTypeRef 业务对象引用关系表格,也可进行查询,但需留意可能存在的脏数据。

  • 示例脚本如下:

--查询基础资料业务对象被哪些业务对象引用了。
SELECT * FROM T_META_ObjectTypeRef WHERE FRefObjectTypeId = 'BD_MATERIAL';


  • 查询结果:

image.png

赞 36