Change Request Workflow primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase Set State Implementation primaryBusinessObject aState Change Request Rejected by Change Admin I subject message primaryBusinessObject Change Request Reassigned subject message primaryBusinessObject Set State Under Review primaryBusinessObject aState Change Request Rejected by CRB subject message primaryBusinessObject Change Request Resolved subject message primaryBusinessObject Set State Resolved primaryBusinessObject aState Change Request Cancelled subject message primaryBusinessObject Set State primaryBusinessObject aState Change Request - Fast Track subject message primaryBusinessObject Change Request Approved subject message primaryBusinessObject Set Submit Date primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ submitDate=new java.sql.Timestamp(System.currentTimeMillis()); Set PRAuthors primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ String role=new String("wt.project.role.PR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECR((wt.change2.WTChangeRequest2)primaryBusinessObject,role); Force PRs to Completion primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.forcePRsToResolved((wt.change2.WTChangeRequest2)primaryBusinessObject); Set PRAuthors primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ String role=new String("wt.project.role.PR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECR((wt.change2.WTChangeRequest2)primaryBusinessObject,role); Set PRAuthors primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ String role=new String("wt.project.role.PR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECR((wt.change2.WTChangeRequest2)primaryBusinessObject,role); Set PRAuthors primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _ROBOT_EXPRESSION_ String role=new String("wt.project.role.PR AUTHOR"); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setRoleToECR((wt.change2.WTChangeRequest2)primaryBusinessObject,role); Submit Now primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _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 Change Notice Completion primaryBusinessObject Analysis_Comments PR_Group approvalDate submitDate proposedSolution businessDecisionSummary AnalyzeClarify_Comments ReviewClarify_Comments inInitialPhase _SYNCH_EXPRESSION_ // The method ProcessHelper.checkOrdersFinished // returns ProcessHelper.COMPLETE if at least one Change Order is in state // "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 checkOrdersFinished = null; checkOrdersFinished = com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.checkOrdersFinished((wt.change2.ChangeRequest2)primaryBusinessObject); if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.RESOLVED)) result = "Resolved"; else if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.CANCELLED)) result = "Cancelled"; else if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.NOT_FINISHED)) result = null; _INITIAL_SYNCH_EXPRESSION_ // The method ProcessHelper.checkOrdersFinished // returns ProcessHelper.COMPLETE if at least one Change Order is in state // "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 checkOrdersFinished = null; checkOrdersFinished = com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.checkOrdersFinished((wt.change2.ChangeRequest2)primaryBusinessObject); if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.RESOLVED)) result = "Resolved"; else if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.CANCELLED)) result = "Cancelled"; else if (checkOrdersFinished.equals(com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.NOT_FINISHED)) result = null; Clarify primaryBusinessObject Analysis Clarification COMPLETE Analysis=""; Schedule CRB Review primaryBusinessObject approval_date Clarification Comments Approve approval_date=new Timestamp(System.currentTimeMillis()); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.processBusinessDecision((wt.change2.WTChangeRequest2)primaryBusinessObject,wt.change2.BusinessDecisionCategory.APPROVED, "COMPLEX", Comments); Reject approval_date=new Timestamp(System.currentTimeMillis()); com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.processBusinessDecision((wt.change2.WTChangeRequest2)primaryBusinessObject,wt.change2.BusinessDecisionCategory.REJECTED, "COMPLEX", Comments); Modify Roles primaryBusinessObject Comment Clarify_Comments COMPLETE Comment="";Clarify_Comments=""; Analyze Change Request primaryBusinessObject Clarification Comment Fast_Track com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setTrack((wt.change2.WTChangeRequest2)primaryBusinessObject, "SIMPLE"); Full_Track com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setTrack((wt.change2.WTChangeRequest2)primaryBusinessObject,"COMPLEX"); Reject com.ptc.windchill.pdmlink.change.server.impl.WorkflowProcessHelper.setTrack((wt.change2.WTChangeRequest2)primaryBusinessObject, "SIMPLE"); Create Change Notice primaryBusinessObject Submit Change Request primaryBusinessObject approvalDate inInitialPhase START result = inInitialPhase; Clarify primaryBusinessObject Review Clarification COMPLETE Review="";