Customization Upgrade

The impact of the changes from one release to another may require to reengineer or update your customization.

Note: If you want to upgrade from release N to release N+M, you must apply all the modifications mentioned in the N+1 release to N+M. This topic is completely independent of the typing mode.

This page discusses:

R2016x, R2017x, and R2018x

R2014xR2015xR2016x and beyond
R2013To upgrade to R2014x, perform the steps described in R2014x.To upgrade to R2015x, perform the steps described in R2014x and in R2015x.To upgrade to 2016x, perform the steps described in R2014x and in R2015x.
R2014xN/ATo upgrade to R2015x, perform the steps described in R2015x.To upgrade to 2016x, perform the steps described in R2015x.
R2015xN/AN/ATo upgrade to 2016x, you have nothing to do.

R2015x

Naming for Basic Attributes

The basic attributes are the standard attributes available on any database object and used to support basic operations (for example, transfer ownership, revise, maturity change, and lock). The table below lists the new names of the impacted attributes.

Type Holding the AttributePrevious NamePrevious TypeNew NameNew Type
PLMEntityV_userStringownerString
V_organizationStringorganizationString
V_projectStringprojectString
C_createdDateoriginatedDate
C_modifiedDatemodifiedDate
LOCKSTATUS (Y or N)StringreservedBoolean
LOCKUSERStringreservedbyString
PLMCoreReference V_maturityStringcurrentString
PLMCoreRepReferenceV_versionStringmajorrevisionString
Note: The type of the LOCKSTATUS attribute was changed from string to Boolean. This change occurred to align the server side and the client side views of the data model that are used in the customization tools and through the programming APIs.

Impacts on Masks
If you customized your masks in an earlier version, they may contain one or more previous basic attribute names. Replace those names by new ones.
Example of Mask in an Earlier VersionExample of Current Mask
ENTITY VPMReference

ATTR V_Name;N;N;$
ATTR PLM_ExternalID;Y;N;$
ATTR revision;N;N;$   
ATTR V_version;N;N;$
ENTITY VPMReference

ATTR V_Name;N;N;$
ATTR PLM_ExternalID;Y;N;$
ATTR majorrevision;N;N;$
Impacts on Business Rules and EKL Scripts
EKL was made upward compatible regarding this modification. You do not need to modify EKL scripts. However, it is recommended that you use the new names to access the basics attribute values.

Type Hierarchy

The type hierarchy was modified to align the server side and client side views that are exploited by the customization tools and the programming APIs. PLMEntity used to be the root type for all VPM applications, whereas BusinessType and RelationType were the root types for all Governance applications.

Hierarchies are unified (thus suppressing the distinction between VPM and Governance applications) by:

  • Introducing the inheritance between PLMEntity and BusinessType (this change is upward compatible).
  • Making PLMCoreInstance and PLMCoreRepInstance inherit from RelationType instead of PLMEntity (this change is not upward compatible).

Impacts on Business Rules and EKL Scripts
Most of the business rules are insensitive to these changes. Some business rules handle objects that are sub types of PLMCoreInstance or PLMCoreRepInstance. Business rules must manipulate the objects with typed variables to work properly.
Example of Use
Let variable (PLMCoreInstance)
variable = ThisObject

However, if instances are manipulated with variables of PLMEntity type, the variable is NULL now whereas it worked fine in earlier versions.

Example of Invalid Use
Let variable (PLMEntity)
	variable = ThisObject
	/* The variable is NULL if ThisObject was an instance */

If this case occurs in your customization, you can simply replace the declaration of the variable by:

Let variable (DatabaseObjectType)
variable = ThisObject
/* The variable is not NULL if ThisObject was an instance */

R2014x

In R2014x, the mechanism used to enable users to choose new policies for objects has changed.

Policy

In the previous releases, the choice of policies was defined through the PolicyChooser file. A user may have modified the PLMPolicyChooser.xml file. This mechanism is replaced by business rules.

Therefore, you must migrate the content of the policy chooser file (related to policies) to business rules. The file is organized by type of objects and for each type, there is a section that defines the policy to use when creating a new object.

Example

<entity name="VPMReference">
		<default>
			<policy name=" "/>
		</default>
	</entity>

Business Rule

For each type defined in the policy chooser, an equivalent business rule should be created in Data Setup and associated to the type. If several types have the same specification for policy name, a single business rule can be created and linked to the different types.

The equivalent of this section of policy chooser is a business rule like this one : Parameters->SetAttributeString("PolicyName"," CustomPolicy ").

If the policy choice does not depend on the collaborative space (project), which is usually the case, the business rule association in Data Setup must be done at the Corporate node level. If the policy choice depends on the collaborative space, the association must be done at the collaborative space level.

The policy chooser enabled you to associate a policy to objects that had particular attribute values. This is not supported any longer.