Community Tip - If community subscription notifications are filling up your inbox you can set up a daily digest and get all your notifications in a single email. X
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.
Solved! Go to Solution.
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.
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.
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.
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.
Thank you Marco.
Originally I was hoping for all in one solution, meaning capability of searching multiple levels of the assembly, but unfortunately I have no that much experiences with Java coding, so that is why I "lowered" my expectations for reporting for now, as even simpler solution would be available.
I am sure, that we will come to the point, where I will have to create such a tool using Java customizations, however currently I´m busy with other assignments in Windchill.
I will definitely try the report you suggested. Do you happen to have any reference regarding Java customizations that you find useful for multiple level uniqueness identification?
I'm sorry, but I'm an administrator, not a Java developer.
Same here, but I will definitely dig deeper into this, when I will have some time available to do so.
Thank you.
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:
You would need more criteria, but here's what you're missing:
And here's the sub-select:
This is referring back to the same parameter as before: