Skip to main content
8-Gravel
August 28, 2025
Solved

Unique objects related to specified assembly Number - Report

  • August 28, 2025
  • 2 replies
  • 772 views

Version: Windchill 12.0

 

Use Case: Hello, I´m trying to build a report, that will allow me to enter a assembly Number and the result of the report should be a list of unique objects, only used in defined assembly Number. I have managed to build a report reporting items used in assembly, but I´m having trouble setting Criteria to only report unique items.


Description:

I´m currently getting a result with the list of the objects, but report is simply listing objects used in specific assembly, whether they are unique or not. I can´t manage to set Criteria correctly, so it will only report unique objects. Can anyone point me to some guide or assist with setting correct criteria to achieve desired result (only report unique objects used in one assembly)? 

 

Thank you very much in advance. 

Best answer by Marco Tosin

To summarize, your request is to have a report that, when you enter the code of an assembly in the search, returns a list of the components of that assembly, but only those NOT used in other assemblies.

 

Have I understood correctly?

 

The first limitation, using Windchill's standard reporting tool, is that in assemblies, the search is only performed at the first level and is NOT recursive, so it does not find objects that are at the second, third, fourth, etc. level.

 

Furthermore, I do not believe it is possible to have what you are asking for in a single report, again using standard tools and not specifically written Java code, but at least two would be needed.

 

In the first one, you could extract the list of the first levels of a given assembly, and in the second one, you could check in which assemblies a component is used and, using a database function, count the number of uses so that it returns only the list of those with a number equal to 1.

 

Finally, you would have to cross-reference the data from the two lists to obtain your final result.

 

 

2 replies

Marco Tosin
21-Topaz I
21-Topaz I
August 28, 2025

To summarize, your request is to have a report that, when you enter the code of an assembly in the search, returns a list of the components of that assembly, but only those NOT used in other assemblies.

 

Have I understood correctly?

 

The first limitation, using Windchill's standard reporting tool, is that in assemblies, the search is only performed at the first level and is NOT recursive, so it does not find objects that are at the second, third, fourth, etc. level.

 

Furthermore, I do not believe it is possible to have what you are asking for in a single report, again using standard tools and not specifically written Java code, but at least two would be needed.

 

In the first one, you could extract the list of the first levels of a given assembly, and in the second one, you could check in which assemblies a component is used and, using a database function, count the number of uses so that it returns only the list of those with a number equal to 1.

 

Finally, you would have to cross-reference the data from the two lists to obtain your final result.

 

 

Marco
RUK18-GravelAuthor
8-Gravel
September 1, 2025

Yes, you are correct with your assumption. 

 

I understand, I do not necessarily need multi level check (ideally yes, but it´s not a must, if that is too difficult). Currently we are manually searching for each component and inspecting them individually in Where used. Then it´s all manual work to identify and either export to excel or mark down parts, that are unique. So anything simpler that that would be a great achievement.

 

I was thinking of exporting whole list of components (asm + prt) and then entering them one by one into report, so the outcome would be :  is unique? : Yes/No, for single level. Do you find that achievable with "simple" report? 

 

Thank you for your feedback. 

Marco Tosin
21-Topaz I
21-Topaz I
September 1, 2025

Since, without customizations written in Java, a report cannot be recursive, it also becomes difficult to know whether the component being searched for is used in multiple assemblies or not.

 

I found this article that might give you some ideas for a report.

 

Query builder report that shows Child objects and its count for Parent object for EPMDocument

 

I tried using it, but the result wasn't what I expected after reading the article description.

 

Marco
joe_morton
18-Opal
18-Opal
September 5, 2025

You could do this in Query Builder, with some more advanced criteria.

 

You would need to add a criteria that the Part B Master Number is NOT in a Subselect.

The subselect would be Assemblies using Parts, with the additional criteria that the assembly's number is NOT Part A's number

 

So in English: Return all the part numbers in this assembly that are NOT in any other assembly

 

I'd recommend using a Parameter to enter the Assembly's Part Number for performance reasons. That would look like this:

joe_morton_0-1757106119622.png

You would need more criteria, but here's what you're missing: 

joe_morton_1-1757106170824.png

 

And here's the sub-select:

joe_morton_2-1757106194599.png

 

joe_morton_3-1757106208116.png

 

This is referring back to the same parameter as before:

joe_morton_4-1757106231343.png