Data Management Capabilities > Managing Part Structures > Windchill Options and Variants Capabilities > Assigning Expressions > Independent Assigned Expressions > Converting Assigned Expressions to Independent Expressions
  
Converting Assigned Expressions to Independent Expressions
This utility allows you to convert previously created assigned expressions to independent expression. The utility also sets the environment to support independent expressions.
* 
The utility to convert to independent assigned expressions is an advanced capability subject to a separate license entitlement.
* 
Once you have successfully run this utility, the system is configured to create independent expressions only.
Consider this information about the conversion utility:
The conversion utility converts only the dependent expressions assigned to usage links and occurrences for the latest iteration of the revisions for parts that have assigned expressions.
To optimize the performance, the utility processes all objects with expressions in chunks.
The utility operates in phases:
Phase 1–Gathers and prepares data for the conversion.
Phase 2–Converts the latest iteration of each revision of assigned expressions to independent assigned expressions.
Phase 3–Cleans up after the conversion and sets the system to independent assigned expression mode.
The utility moves to the next phase only after successfully completing the previous phase. In the event of a failure, it logs the errors, records the phase where the processing has stopped, and starts at this phase on the next run.
The utility attempts to convert as many objects as possible, marking the ones with errors for reprocessing.
The utility provides status and error logs to help debug issues.
The classes that can have independent assigned expressions are WTPart, WTPartUsageLink, and PartUsesOccurrence. The utility converts all existing expressions for these objects to independent assigned expressions.
The utility provides a mechanism for a business administrator to set up a mapping between configurable module lifecycle states and independent assigned expressions lifecycle states.
* 
The system should not be used for new object creation or data manipulation while the conversion is in progress, as it may lead to inconsistent data.
If there are errors during the conversion, it is recommended that you resolve errors and rerun the utility to achieve a successful conversion before making any changes to the existing data.
New parts and expressions created while the conversion is in progress are not processed by the utility, which may lead to inconsistent data.
Running the Utility
1. Set the lifecycle state mapping file with the appropriate state-to-state mapping:
WT_HOME\com\ptc\windchill\option\tools\iae\IAEConversionStateMapping.properties
The left side of the mapping is the state of the parent part whose expressions are being converted, and the right side is the state that must be assigned to the converted expression. The syntax is as follows:
# <Part_Lifecycle_State> = <Independent_Assigned_Expression_Lifecycle_State>
Sample entries are as follows:
STUDY=INWORK
DEFINITION= INWORK
DEVELOP=INWORK
VERIFY=INWORK
IMPLEMENT=INWORK
COMPLETE=RELEASED
CANCEL=CANCEL
This mapping is applied when assigning a state to the converted expressions. In the absence of the file or entries in the file, the tool defaults to the lifecycle state of the parent configurable module. Note that the state values must be in the enumerated type key format, similar to XML import/export file. Precede blank spaces with “\”; for example: PENDING\APPROVAL=PENDING APPROVAL. Note that this is required only on the left portion of the expression before the “=” sign, and is not necessary for the right side of the expression.
2. Ensure that system is ready for the data to be converted.
3. Restart the MethodServer and ServerManager.
4. Run the following command from a windchill shell:
Windchill com.ptc.windchill.option.tools.ConvertToIndependentExpression -u wcadmin -p wcadmin
5. A status is displayed while the conversion is in progress. A confirmation is posted at the end of the process, and failures are also reported.
6. Review the log files:
WT_HOME\logs\ConvertToIndependentExpression\error.log
WT_HOME\logs\ConvertToIndependentExpression\status.log
* 
Because the utility appends the report to the existing log files on each run, it is recommended that older logs are renamed and saved as a record. This allows a new log to be created with each run of the utility.
7. To confirm that the old expressions have been converted to independent expressions, right-click the usage links with expressions. You should see 2 new menu options: View Assigned Expression and Copy Assigned Expression. You can also confirm that newly created assigned expressions are independent by going to the View Assigned Expression page.