Advanced Customization > Business Logic Customization > Customizing Workflow Administration > Enhanced Promotion Process > Solution
  
Solution
The out-of-the-box promotion request process templates illustrate how to implement both the auto-refresh and the automatic revise functionality. Also included in the template is the review validation.
Prerequisite knowledge
To achieve this result, you need to have an understanding of the following:
Basic Java development
Workflow process modification including tally expressions and robot expressions
The management of resource bundle file.
Windchill Preference Management utility
* 
The workflow process templates provided out-of-the-box should not be modified directly. These process templates should be renamed prior to modification.
Solution Elements
Element
Type
Description
wt.maturity.MaturityServerHelper.service.unlockTargets (pn)
method
This method call can be added to a workflow expression that will unlock the promotion targets in this case for rework. The result of this is the promotion targets will be at the state they were at, at the moment the promotion request was created. Unlocking the promotion targets may allow the user assigned to rework to perform updates on the objects (subject to access control).
wt.workflow.work.WfTally
class
This class is used to tally votes of a workflow task. For example if a task is assigned to the approval role multiple users could receive that task and vote differently. This class provides methods that define which route to take based on if ‘all have to vote for that option” or any have to vote for that option.
com.ptc.windchill.enterprise.maturity.PromotionNoticeWorkflowHelper.refresh(pn);
method
This method can be added to a workflow expression that provides the update handling of promotion objects. Internally this method uses a new preference Latest Iteration Refresh to control the behavior. Here are the values
1. Refresh promotion candidates (default setting). This value only refreshes the promotion candidates.
2. Refresh all objects. This value refreshes all promotion objects: The promotion candidates and the other objects in the Maturity baseline.
3. Do nothing. This option will not refresh any promotion objects.
4. Validate promotion targets. (see Procedure – Validation of Promotion Targets in Rework for more information)
wt.maturity.MaturityServerHelper.service.lockTargets (pn);
method
This method call can be added to a workflow expression that will lock the promotion targets. Only promotion targets that have a lock transition will be subject to locking.
com.ptc.core.ui.validation.UIValidationResultSet set= com.ptc.windchill.enterprise.maturity.PromotionNoticeWorkflowHelper.revisePromotables(pn, pn.getCreator(), locale);
method
This method can be added to a workflow expression to automatically revise promotion objects. Internally this method uses two new preferences :
1. Automatic Revision Mode. There are 3 modes:
a. Do nothing.
This mode will not perform any automatic revisioning.
b. Automatically revise only the promotion candidates.
This mode will automatically revise only promotion candidates
c. Automatically revise only the promotion candidates with versioning scheme changed
This mode will only revise promotion candidates that will be revising to a state that result in a versioning scheme change.
2. Automatic Revision States.
This preference is a multi valued list containing states that are valid for automatic revisioning. This preference only takes effect if the Automatic Revision Mode preference is something besides Do-nothing.