oracle PTC WindChill查询也读取已删除的链接

nimxete2  于 2023-05-06  发布在  Oracle
关注(0)|答案(2)|浏览(165)

我试图查询WindChill数据库以获取给定部件(装配)的所有子部件。我现在的情况是

-- this is how sql server management studio rewrites an oracle join
SELECT    M1.WTPARTNUMBER AS COMPONENT, M2.WTPARTNUMBER AS ASSEMBLY, MAX(WTPARTUSAGELINK.AMOUNTA7) AS AMOUNT
FROM      WTPART, WTPARTMASTER M2, WTPARTUSAGELINK, WTPARTMASTER M1
WHERE     WTPART.IDA3MASTERREFERENCE = M2.IDA2A2 
                   AND WTPART.IDA2A2 = WTPARTUSAGELINK.IDA3A5
                   AND WTPARTUSAGELINK.IDA3B5 = M1.IDA2A2
GROUP BY  M2.WTPARTNUMBER, M1.WTPARTNUMBER
order by  M2.WTPARTNUMBER, M1.WTPARTNUMBER

它的工作原理是,我可以获得每个组件及其部件的列表,稍后在构建树时可以对其进行过滤。这很好,总共有1000个组件。
问题是,我也得到了我从WindChill删除的行(它们不会显示在WindChill Web应用程序中)。我意识到这是一个很长的机会,但是是否需要加入另一个表或其他东西来确定是否实际包含一个潜在的子部分?

osh3o9ms

osh3o9ms1#

我相信你应该使用零件的特定版本,而不是零件母版。
在windchill中处理BOM和组件的方式是,在每次修订零件时都会拍摄相关零件的快照。如果未引用特定部件“version”,则将获得“all”。
我不知道如何使用SQL来实现这一点,因为我一直使用信息引擎任务来实现相同的结果,避免了与数据库的直接接触。有一个内置的webject称为'Query-Tree',给定一个对象,将返回所有相关的子对象。因此,如果我想要一个部件的完整物料清单,我只需运行webject并将该部件对象传递给它。

0vvn1miw

0vvn1miw2#

在WTPART中添加条件LATESTITERATIONINFO = 1

相关问题