Change Notice Workflow =================== primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable =================== Set State Implementation primaryBusinessObject aState =================== Set State Under Review primaryBusinessObject aState =================== Change Notice Submitted subject message primaryBusinessObject =================== Set State Released primaryBusinessObject aState =================== Set State Resolved primaryBusinessObject aState =================== Change Notice Rejected subject message primaryBusinessObject =================== Change Notice Complete Notification subject message primaryBusinessObject =================== Set State Cancelled primaryBusinessObject aState =================== Change Notice Approved subject message primaryBusinessObject =================== Set ECRAuthors primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ String role=new String("wt.project.role.ECR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject,role); =================== Set ECRAuthors primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ String role=new String("wt.project.role.ECR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject,role); role=new String("wt.project.role.PR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject,role); =================== Set CAI and CAII primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ java.lang.String role="wt.project.role.CHANGE ADMINISTRATOR I"; com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject, role); role="wt.project.role.CHANGE ADMINISTRATOR II"; com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject, role); =================== Set Changeables to Released primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.promoteChangeables((wt.change2.WTChangeOrder2)primaryBusinessObject); =================== Set Change Notice Resolution Date primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setECNResolutionDate((wt.change2.WTChangeOrder2)primaryBusinessObject); =================== Set ECRAuthors primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ String role=new String("wt.project.role.ECR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECN((wt.change2.WTChangeOrder2)primaryBusinessObject,role); =================== Set Submit Date primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ submitDate=new Timestamp(System.currentTimeMillis()); =================== Set Unpromotable primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _ROBOT_EXPRESSION_ wt.fc.collections.WTHashSet unpromChanges = (wt.fc.collections.WTHashSet) com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.getUnpromotableChangeables((wt.change2.WTChangeOrder2)primaryBusinessObject); java.util.Iterator i = unpromChanges.persistableIterator(); wt.enterprise.RevisionControlled p = null; String unpromotables = ""; if (i.hasNext()){ p = (wt.enterprise.RevisionControlled)i.next(); unpromotables = unpromotables + p.getDisplayIdentity(); } while (i.hasNext()){ p = (wt.enterprise.RevisionControlled)i.next(); unpromotables = unpromotables + "; " + p.getDisplayIdentity(); } if (unpromotables.length()!=0){ unpromotable = "- The following Resulting Data will not be promoted because there is no change transition defined: \n"; java.util.StringTokenizer s = new java.util.StringTokenizer( unpromotables, ";" ); while (s.hasMoreTokens()){ unpromotable += "- - " + s.nextToken() + "\n"; } unpromotable += "\n There are two ways to resolve the issue: \n 1. If you did not intend to promote the resulting data, then simply complete the task. \n 2. If you did intend to promote the resulting data, there may be a problem with the configuration of lifecycle templates. Select the Rework option and enter comments for Change Administrator II."; unpromotable += ""; } =================== Submit Now primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _SYNCH_EXPRESSION_ // Continue if the primaryBusinessObject has progressed past the initial state inInitialPhase =wt.lifecycle.LifeCycleHelper.service.isInInitialPhase((wt.lifecycle.LifeCycleManaged)primaryBusinessObject) ; if (inInitialPhase != true) result = "Go"; else result = null; _INITIAL_SYNCH_EXPRESSION_ // Continue if the primaryBusinessObject has progressed past the initial state inInitialPhase =wt.lifecycle.LifeCycleHelper.service.isInInitialPhase((wt.lifecycle.LifeCycleManaged)primaryBusinessObject) ; if (inInitialPhase != true) result = "Go"; else result = null; =================== Synch on CA Complete primaryBusinessObject cibComments auditComments submitDate approvalDate fastTrack amendComments inInitialPhase unpromotable _SYNCH_EXPRESSION_ // "Complete" and the rest are in state "Complete" or "Cancel." // It returns ProcessHelper.CANCELLED if all Change Orders are in state "Cancelled" or // ProcessHelper.NOT_FINISHED if at least one Change Order is pending // (i.e. has not reached either state "Complete" or "Cancelled"). String checkActivitiesFinished = null; checkActivitiesFinished = com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.checkActivitiesFinished((wt.change2.WTChangeOrder2)primaryBusinessObject); if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.RESOLVED)) result = "Resolved"; else if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.CANCELLED)) result = "Cancelled"; else if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.NOT_FINISHED)) result = null; _INITIAL_SYNCH_EXPRESSION_ // "Complete" and the rest are in state "Complete" or "Cancel." // It returns ProcessHelper.CANCELLED if all Change Orders are in state "Cancelled" or // ProcessHelper.NOT_FINISHED if at least one Change Order is pending // (i.e. has not reached either state "Complete" or "Cancelled"). String checkActivitiesFinished = null; checkActivitiesFinished = com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.checkActivitiesFinished((wt.change2.WTChangeOrder2)primaryBusinessObject); if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.RESOLVED)) result = "Resolved"; else if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.CANCELLED)) result = "Cancelled"; else if (checkActivitiesFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.NOT_FINISHED)) result = null; =================== Submit Change Notice primaryBusinessObject inInitialPhase =================== START result = inInitialPhase; =================== Audit Change Notice primaryBusinessObject Comments Unpromotables Rework Change Notice Task primaryBusinessObject Comments unpromotable2 =================== COMPLETE wt.fc.collections.WTHashSet unpromChanges = (wt.fc.collections.WTHashSet) com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.getUnpromotableChangeables((wt.change2.WTChangeOrder2)primaryBusinessObject); java.util.Iterator i = unpromChanges.persistableIterator(); wt.enterprise.RevisionControlled p = null; String unpromotable1=""; if (i.hasNext()){ p = (wt.enterprise.RevisionControlled)i.next(); unpromotable1 = unpromotable1 + p.getName(); } while (i.hasNext()){ p = (wt.enterprise.RevisionControlled)i.next(); unpromotable1 = unpromotable1 + "; " + p.getName(); } if (unpromotable1.length()!=0){ unpromotable2 = "- The following Resulting Data will not be promoted because there is no change transition defined: \n"; java.util.StringTokenizer s = new java.util.StringTokenizer( unpromotable1, ";" ); while (s.hasMoreTokens()){ unpromotable2 += "- - " + s.nextToken() + "\n"; } unpromotable2 += "\n There are two ways to resolve the issue: \n 1. If you did not intend to promote the resulting data, then simply complete the task. \n 2. If you did intend to promote the resulting data, there may be a problem with the configuration of lifecycle templates. Select the Rework option and enter comments for Change Administrator II."; unpromotable2 += ""; } =================== Amend Change Notice Plan primaryBusinessObject Comments =================== Schedule CIB Review primaryBusinessObject approval_date Comments =================== Approve approval_date=new Timestamp(System.currentTimeMillis());