Coexistence Check Mode Business Logic (PLMCoexCheckMode)

This article describes how to define and integrate the customer Business Logic to give you some decision capability regarding the objects to be transferred with a check mode based on the Enterprise Knowledge scripting technology.

This page discusses:

Business Logic Intent

The purpose of this Business Logic is to provide you with a check mode in V5 to 3DEXPERIENCE coexistence and migration transfers i.e. to give you some decision support regarding the objects to be transferred from the V5 to the 3DEXPERIENCE repository with the current input scope of objects.

PLM Opening Definition

This section describes the objects defining the PLM opening: its global information, its input object type, and its context object parameters.

General Information

PLM Opening ID PLMCoexCheckMode
Customization IntentValidation
Execution ContentClient

Input Objects

The Business Logic can be invoked for any PLM component type.

Context Object Parameters

The result of the business logic should be:

  • TRUE if the transfer should go on with the current selected data and options
  • FALSE if the transfer process should stop, so that you can change the input selection for example. In that case the transfer should be run again from the start, either in check mode or as a regular transfer process.

Implementation Sample

The following script samples illustrate how to provide the check mode in a V5 to 3DEXPERIENCE coexistence context. To complete this particular Business Logic implementation you must associate a script (for example "MyCoexCheckModeScript") with the <OpeningID, Type> pair in a CATRuleExit file:

<Scripts>
     <Script OpeningID="PLMCoexCheckMode"
             ScriptName="TETestBLCoexCheckMode">
     </Script> 
</Scripts>

You must then create a CATRule file (for example MyCoexCheckModeScript.CATRule) to define your Business Logic:

Let CoexParams(feature)
Let NbObjectsInScope(integer)
Let NbObjectsToCreate(integer)
Let NbObjectsToUpdate(integer)
Let NbRepToMigrate(integer)

if (Parameters->HasAttribute("CoexCheckParams") == true)
{
	Set CoexParams = Parameters->GetAttributeObject("CoexCheckParams")

	if(CoexParams->HasAttribute("nbObjectsInScope") == true)
{
		NbObjectsInScope = CoexParams->GetAttributeInteger("nbObjectsInScope")
	}
	if(CoexParams->HasAttribute("nbObjectsToCreate") == true)
{
		NbObjectsToCreate = CoexParams->GetAttributeInteger("nbObjectsToCreate")
	}
	if(CoexParams->HasAttribute("nbObjectsToUpdate") == true)
{
		NbObjectsToUpdate = CoexParams>GetAttributeInteger("nbObjectsToUpdate")
	}
	if(CoexParams->HasAttribute("nbRepToMigrate") == true)
{
		NbRepToMigrate = CoexParams->GetAttributeInteger("nbRepToMigrate")
	}	
}

if (NbObjectsInScope<3)
Validation = true
else
	Validation = false