Ownership and Maturity Mapping

When objects are transferred between X-PDM and 3DEXPERIENCE platformthe ownership and maturity information is not generally map one-to-one between the two systems.

By default the values of attributes Owner, Organisation and Project present in the XPDMXML file are used as it is to set the ownership information of an imported object. For more information about how to deploy Business Logic, refer Configuration and Development | 3DEXPERIENCE Open | Common Tools | Objects Specialization | PLM Customization by Rules

Important: In this default case, if the attribute Owner, Organisation or Project have no value in the XPDMXML file the object is owned by the administrator who created the connection parameter file.

This sections describes how to override the default mapping of Owner, Organisation and Project.

This page discusses:

Ownership and Maturity Mapping

The Business Logic openness integrates customer rules based on knowledge view of an object.

When exchanging the objects between X-PDM and 3DEXPERIENCE platform the PLMAttributeMapping Business Logic enables to create procedures to map the ownership and maturity information while transferring data from 3DEXPERIENCE platform to X-PDM and vice-versa.

The business logic consist of two files:

  1. CATRule : In this file, user writes the business logic mapping of ownership and maturity.
  2. CATRuleExit : In this file, user defines the opening ID for each domain and their respective CATRule file name to be executed.

These files should be present at $InsallPath/OS/resources/knowledge/scripts

Where, OS is the name of the operating system on which the 3DEXPERIENCE platform is installed.

Sample Business Logic Mapping

The sample CATRule and CATRuleExit files provided here are for mapping of ownership and maturity in two cases:

  1. 3DEXPERIENCE platform to X-PDM Business Rule Mapping
  2. X-PDM to 3DEXPERIENCE platform Business Rule Mapping

Following table provides the description of the mapping entities:

Mapping Entity

3DEXPERIENCE platform

X-PDM

P & O Mapping

User

USER1

XPDM_USER1

Organization

My Company

xpdm_Company

Project

3DEXPERIENCE_Project

xpdm_Project

Maturity Mapping MaturityIN_WORK working
  1. If the name of the user coming from 3DEXPERIENCE platform is USER1, we want to have corresponding user in X-PDM as XPDM_USER1.
  2. The Organization of the user coming from 3DEXPERIENCE platform is My Company, we want to have corresponding Organization in X-PDM as xpdm_Company.
  3. The Project of the user coming from 3DEXPERIENCE platform is 3DEXPERIENCE_Project we want to have corresponding project in X-PDM as xpdm_Project.
  4. The maturity of the entity in 3DEXPERIENCE platform is IN_WORK, we want to have the corresponding maturity in X-PDM as working.

3DEXPERIENCE platform to X-PDM Business Logic Mapping

A sample code for CATRule script for 3DEXPERIENCE platform to X-PDM:

Let SourceObject(DatabaseObjectType)
Let excObject(TEBLExchangeObject)
Let SourceObjectPLM_User(String)
Let SourceObjectPLM_Project(String)
Let SourceObjectPLM_Organization(String)
Let SourceObjectPLM_Maturity(String)

set SourceObject = Parameters->GetAttributeObject("SourceObject")
set excObject = Parameters->GetAttributeObject("ExchangeObject")

if(SourceObject->IsSupporting("VPMReference") == true and ThisObject -> IsSupporting("PLMProductDS") == true)
{
     	SourceObjectPLM_User = SourceObject->GetAttributeString("owner")
	if(SourceObjectPLM_User == "USER1")
	{
		excObject.MappedUser = "XPDM_USER1"
		excObject.MappedProject = "xpdm_project"
		excObject.MappedOrganization = "xpdm_Company"
	}
	SourceObjectPLM_Maturity = SourceObject->GetAttributeString("V_maturity")
	if(SourceObjectPLM_Maturity == "IN_WORK")
	{
		excObject.MappedMaturity = "working"
	}
}
Note: The file name should be same as the value specified in the CATRuleExit script under ScriptName attribute.

A sample code for CATRuleExit script for 3DEXPERIENCE platform to X-PDM:

<Scripts>
  <Script OpeningID="PLMAttributesMapping" Type="VPMReference" ScriptName="AttributesMapping_Sample_XPDMXML_V6">
    <Condition Attribute="OperationId" Value="Coexistence"/>
    <Condition Attribute="Source" Value="PLM1"/>
    <Condition Attribute="Target" Value="XPDMXML"/>
  </Script>
</Scripts>
Note: The filename should be PLMBusinessLogicProduct_MappingAttributes_XPDMXML_V6.CATRuleExit

X-PDM to 3DEXPERIENCE platform Business Logic Mapping

A sample code for CATRule script for XPDM to 3DEXPERIENCE platform:

Let SourceObject(DatabaseObjectType)
Let excObject(TEBLExchangeObject)
Let SourceObjectPLM_User(String)
Let SourceObjectPLM_Project(String)
Let SourceObjectPLM_Organization(String)
Let SourceObjectPLM_Maturity(String)

set SourceObject = Parameters->GetAttributeObject("SourceObject")
set excObject = Parameters->GetAttributeObject("ExchangeObject")

if(SourceObject->IsSupporting("VPMReference") == true and ThisObject -> IsSupporting("PLMProductDS") == true)
{
     	SourceObjectPLM_User = SourceObject->GetAttributeString("owner")
	if(SourceObjectPLM_User == "XPDM_USER1")
	{
		excObject.MappedUser = "USER1"
		excObject.MappedProject = "Default"
		excObject.MappedOrganization = "Company Name"
	}
	SourceObjectPLM_Maturity = SourceObject->GetAttributeString("V_maturity")
	if(SourceObjectPLM_Maturity == "working")
	{
		excObject.MappedMaturity = "IN_WORK"
	}
}

A sample code for CATRuleExit script XPDM to 3DEXPERIENCE platform:


<Scripts>
  <Script OpeningID="PLMAttributesMapping" Type="VPMReference" ScriptName="AttributesMapping_Sample_XPDMXML_V6">
    <Condition Attribute="OperationId" Value="Coexistence"/>
    <Condition Attribute="Source" Value="XPDMXML"/>
    <Condition Attribute="Target" Value="PLM1"/>
  </Script>
</Scripts>

Description of The CATRule file

OpeningID:PLMAttributeMapping

Possible script actions to manage ownership and maturity:

  • read owner on input proxy SourceObject
  • read V_organization on input proxy SourceObject
  • read V_project on input proxy SourceObject
  • read V_maturity on input proxy SourceObject
  • Write mapped ownership and maturity information on the output object TEMappingObject

Context object Parameters:

  • SourceObject: The PLMProxy corresponding to the source object.
  • OutputMappingObject: The instance of TEMappingObject that holds the values of the mapped owner, V_organization, V_project and V_maturity on their corresponding attributes MappedUser, MappedOrganization, MappedProject and MappedMaturity respectively.
  • ThisObject: The PLMProxy corresponding to the target object.
  • OperationId: The context in which this PLMRule should be used .
  • Source: The name of the source provider.
  • Target: The name of the target provider.