查找未使用的标签

时间:2019-06-20 14:25:59

标签: axapta dynamics-365-operations

有什么办法可以找到D365 FO中未使用的标签(没有引用的标签)?

1 个答案:

答案 0 :(得分:2)

交叉引用存储在数据库DYNAMICSXREFDB中。您可以使用查询来生成没有引用的标签列表。

此查询使用数据库中的两个表:

  • Names包含应用程序中每个可以引用的对象的条目。
    • 表的Path字段保存对象的名称(例如/Labels/@FormRunConfiguration:ViewDefaultLabelViewDefaultLabel标签文件中FormRunConfiguration的路径。
    • 字段Id用于引用该表中其他表中的一条记录。
  • References保存连接对象的实际引用。
    • 字段SourceId包含对象的Id记录的Names,该记录引用了由字段TargetId标识的另一个对象。

实际查询如下:

SELECT LabelObjects.Path AS UnusedLabel 
FROM [dbo].[Names] AS LabelObjects
WHERE LabelObjects.Path LIKE '/Labels/%' 
AND NOT EXISTS 
    (SELECT * 
        FROM [dbo].[References] AS LabelReferences 
        WHERE LabelReferences.TargetId = LabelObjects.Id)

确保编译应用程序以更新交叉引用数据。否则查询可能会给您错误的结果。当我在10.0.3 PU27版本的环境上运行此查询时,它会返回一个标准标签。

ResultOfQueryForUnusedLabels