Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
Hello
We have Customized BOM Management in that we are facing issue to get the non-latest version Structure.
When the new object is added to the latest version it will show in the non-latest version also by default windchill functionality to overcome this we have to take baseline before revise the cad objects.
Article
As per the article we tried baseline and filter to the older version.
We could not be able to get it via code, whenever we tried to download a non-latest version. we get the latest structure only.
Help us with a code to get the filtered structure.
Hi,
The behaviour of the structure is completely governed by Config Spec Filter, as you already know.
There are 2 possible solutions using the config filter method
1. You could create baseline going to the older version of the Parent Part.
Call the config filter to use this baseline (It may work even if you call it from the latest version of parent part, as baselines are tied to the specific version of the parent part).
2. If the old version of parent part is in a Released state, then you can use "As Matured" Config FIlter. This will reflect the config of the parent part at the time of its Release (by ECN).
Both the above options should work for you , try this manually. Then start coding.
I assume that the newer version of the Parent part was created via ECN (Best practice). You need to look into preventing Free Revise by users if its not done by ECN. There are preferences in Windchill to do that.
Cheers
Hari
Hello
Thanks Hari
Here we need a code/API to get a filtered option (Baseline) Structure.
Is there any code please let us know.
Thank you!
Hi @Nandha
You need to find the baseline you want to use and then just create a ConfigSpec
BaselineConfigSpec baselineConfigSpec = BaselineConfigSpec.newBaselineConfigSpec(baseline);
List<ConfigSpec> configSpecList = new ArrayList<ConfigSpec>();
configSpecList.add(baselineConfigSpec);
QueryResult qr = ConfigHelper.service.filteredIterationsOf(wtpMaster, configSpecList);
PetrH
Dear PetrH
After using the code, we are able to get the 1st level objects only. Is there any other code to get all level objects.
Sure,
This code search for the wtpart version that you provide the master.
So this code does not go through the BOM.
You need to use another method do get the BOM. with config
List<ConfigSpec> configSpecList = new ArrayList<ConfigSpec>();
configSpecList.add(baselineConfigSpec);
NavigationCriteria navCriteria = new NavigationCriteria();
navCriteria.setConfigSpecs(configSpecList);
WTPartHelper.service.getUsesWTParts(wtPart, navCriteria);
PetrH
Hi PetrH
If you are able to share another method, please share the code.
Thanks
Hi @Nandha
I did.
List<ConfigSpec> configSpecList = new ArrayList<ConfigSpec>();
configSpecList.add(baselineConfigSpec);
NavigationCriteria navCriteria = new NavigationCriteria();
navCriteria.setConfigSpecs(configSpecList);
WTPartHelper.service.getUsesWTParts(wtPart, navCriteria);
What method do you need?
PetrH
Hello,
Sure, we will try and update.
Thanks for supporting!