在Windchill10.0 系统的默认变更流程中,ECO和ECA的状态同步,是通过同步机来完成,同步的触发是在ECA状态更改时会执行相应代码。这个代码用的非常普遍,但是里面有个细节很值得注意,所以专门写篇文章来记录这个问题。
在同步的代码中使用了这个函数来做同步。WorkflowProcessHelper.checkActivitiesFinished(ChangeOrder2 changeOrder) 传入的参数是ECO对象。这个方法从字面理解的意思是通过ECO来判断ECA是否完成。我们来看看代码。
public static String checkActivitiesFinished(ChangeOrder2 paramChangeOrder2)
throws WTException
{
String str = "NOT_FINISHED";
if ((ChangePlanningHelper.isPlanningSupported()) && (ChangePlanningHelper.getService().hasPlan(paramChangeOrder2))) {
if (ChangePlanningHelper.getService().evaluatePlan(paramChangeOrder2)) {
str = getLatestChangeActivityState(paramChangeOrder2);
}
}
else if (!changeActivitiesExecuting(paramChangeOrder2))
ChangeHelper2.service.emi