The PTC Community is on temporary read only status in preparation for moving our community to a new platform. Learn more here
Hello Team,
I need to programmatically retrieve the Sequence value of a Change Activity (WTChangeActivity2) as it appears in the Change Planning / Execution Plan. Currently, the only method that works is executing a direct SQL query on the CHANGEPLANACTIVITY table.
Example SQL (working):
However, this is not a supported API approach, and I want to avoid SQL.
I also tried using:
Is there any supported Windchill Java API (ChangePlanningHelper, ChangeHelper2, WTChangeActivity2, Info*Engine, etc.) that allows retrieving a Change Activity’s sequence number without using SQL?
If yes, please provide an example.
If not, can PTC confirm that SQL is the only available method?
Thanks in advance.
Solved! Go to Solution.
Hello @SP_12330653
you can use this :
String sequenceNumber = (String) ChangePlanningHelper.getService().getExecutionValues(changeNotice).get(task);
String CNNumber = "CHN00000001";
String taskNumber = "00001";
WTChangeActivity2 task =null;
WTChangeOrder2 changeNotice = null;
QuerySpec qs = new QuerySpec(WTChangeOrder2.class);
qs.appendWhere(new SearchCondition(WTChangeOrder2.class, WTChangeOrder2.NUMBER,
SearchCondition.EQUAL,CNNumber , false),new int[] { 0 });
QueryResult results = PersistenceHelper.manager.find(qs);
if (results.hasMoreElements()) {
changeNotice = (WTChangeOrder2) results.nextElement();
}
QuerySpec qstask = new QuerySpec(WTChangeActivity2.class);
qstask.appendWhere(new SearchCondition(WTChangeActivity2.class,WTChangeActivity2.NUMBER,
SearchCondition.EQUAL, taskNumber),new int[] { 0 });
QueryResult resultsTasks = PersistenceHelper.manager.find(qstask);
if (resultsTasks.hasMoreElements()) {
task = (WTChangeActivity2) resultsTasks.nextElement();
}
String sequenceNumber = (String) ChangePlanningHelper.getService().getExecutionValues(changeNotice).get(task);
Hi @SP_12330653,
There is a API getSequence() in ChangePlanActivity.
Could you check?
changePlanActivity.getSequence();There is no changePlanActivity.class in Windchill.
Which version are you using?
The Class is available in version 13.0
Hi @SP_12330653
Yes there is .
You just need to install a Project Link.
the class is definitely available in Windchill 11.+ I do not have earlier versions now 😄
PetrH
Hello @SP_12330653
you can use this :
String sequenceNumber = (String) ChangePlanningHelper.getService().getExecutionValues(changeNotice).get(task);
String CNNumber = "CHN00000001";
String taskNumber = "00001";
WTChangeActivity2 task =null;
WTChangeOrder2 changeNotice = null;
QuerySpec qs = new QuerySpec(WTChangeOrder2.class);
qs.appendWhere(new SearchCondition(WTChangeOrder2.class, WTChangeOrder2.NUMBER,
SearchCondition.EQUAL,CNNumber , false),new int[] { 0 });
QueryResult results = PersistenceHelper.manager.find(qs);
if (results.hasMoreElements()) {
changeNotice = (WTChangeOrder2) results.nextElement();
}
QuerySpec qstask = new QuerySpec(WTChangeActivity2.class);
qstask.appendWhere(new SearchCondition(WTChangeActivity2.class,WTChangeActivity2.NUMBER,
SearchCondition.EQUAL, taskNumber),new int[] { 0 });
QueryResult resultsTasks = PersistenceHelper.manager.find(qstask);
if (resultsTasks.hasMoreElements()) {
task = (WTChangeActivity2) resultsTasks.nextElement();
}
String sequenceNumber = (String) ChangePlanningHelper.getService().getExecutionValues(changeNotice).get(task);
Thanks, it Worked.
