This section helps you understand how metadata and mapping files work.
Metadata files define the VPM V5 object types and the attributes available
for you to see. These metadata files are in the client metadata file format
and are located on the VPM V5 side, in the ..\resources\3dlive\release_folder directory. The order of preference governing release folder selection is as follows (assuming that the request is made in R2019x):
- the folder for the current release: 3dlive\R2019x
- the folder for the previous release: 3dlive\R2018x
- the folder for the release prior to the previous one: 3dlive\R2017x release folder
- the 3dlive folder.
There is also an XML mapping file that correlates the VPM V5 objects and
the attributes to those defined in the metadata. A default set of metadata and
mapping files is provided. Administrators must make additions for any customization
required by client users. The metadata and mapping files reside in VPM
V5. The types and attributes seen in the client are specified in one or more
metadata files. For example:
Metadata Files
VP5ProductDS.metadata.xml contains the definition for the VP5ProductReference
type. (Seen as "Product" in the CoexistenceBatch search window.)
<?xml version="1.0" ?>
<Package xmlns="PLMDictionaryCustoVP5"
Name="VP5ProductDS" Uuid="60B776EB-0000-0F58-4534DB3700000000" UseNames="PRODUCTCFG"
Alias="DS Product Classes" ModelerType="Custo">
<!-- *********************************************
- >
<!-- * VP5ProductReference
* - >
<!-- *********************************************
- >
<Class Name="VP5ProductReference"
Uuid="60B776EB-0000-0E04-4534DB4100000000" SuperName="VPMReference" SuperRef="6FBC0B4F-5F11-432F-A56B8EFC7001CA9B"
CAAExposition="L1">
<Simple Name="V_description2" Uuid="caf938db-c298-0000-020a100536000000"
Type="String" MaxLength="256" Mandatory="No" MultiValuated="No" CAAExposition="L1"
Protection="User">
<CAAComment>
<ShortRole>Second Description - free field</ShortRole>
</CAAComment>
</Simple>
<IdentifierSet
Name="Identifier"
Uuid="60B776EB-0000-0AD8-4534DB7700000000"
IdentifierUuids="86A2CB5C-4D50-4593-8489DF068C40FAAB 9528ED8F-6280-43E0-AD67CCB0D32A0755"
IdentifierNames="PLM_ExternalID V_version"/>
</Class>
</Package>
Here is a sample metadata file for the VP5ProductReference that has been customized:
<?xml version="1.0" ?>
<Package xmlns="PLMDictionaryCustoVP5"
Name="VP5ProductXX" Uuid="60B776EB-0000-0258-456D9EFD00000000" UseNames="PRODUCTCFG"
Alias="XX Product Classes" ModelerType="Custo">
<!-- *********************************************
- >
<!-- * VP5ProductReferenceXX
* - >
*********************************************
- >
<Class Name="VP5ProductReferenceXX"
Uuid="60B776EB-0000-03FC-456D9F4700000000" SuperName="VPMReference" SuperRef="6FBC0B4F-5F11-432F-A56B8EFC7001CA9B"
CAAExposition="L1">
<Simple Name="V508_AppType"
Uuid="60B776EB-0000-0A6C-456D9F5E00000000" Type="String" MaxLength="30"
Mandatory="No" MultiValuated="No" CAAExposition="L1" Protection="User">
</Simple>
<IdentifierSet
Name="Identifier"
Uuid="cae8e256-c84d-0000-020a100536000000"
IdentifierUuids="86A2CB5C-4D50-4593-8489DF068C40FAAB 9528ED8F-6280-43E0-AD67CCB0D32A0755"
IdentifierNames="PLM_ExternalID
V_version"/>
</Class>
</Package>
Mapping Files
VPM V5 object types
are mapped to the Coexistence Batch search window by VP5BaseProductDS.mapping.xml and VP5BasePartDS.mapping.xml.
In the example below for VP5ProductReference, the PlmAttr is an attribute
name. LCAttr contains the VPM V5 object type and attribute that are the
source for the data seen.
<?xml version="1.0"?>
<TypeMappings>
<!--
This file describes the type and attribute
mappings for the exposure of ENOVIA LCA data.
Notes:
(1) If the mapping occurs on a business object,
then the "TYPE" for the "LcaType" is the name
of the business object, regardless of customization.
If the mapping does not occur on a business object, then the "TYPE" is the name of the customized class.
(2) The attribute name syntax is "baseType.attrId".
This is necessary for the xml query translation since the attribute name
is interpreted by the predicate translator, and not by us.
(3) The attribute access name syntax is "pathAttr.pathAttr.attrId" where
"pathAttr.pathAttr" defines
the relationship attributes to follow
from the root object to
access the value of the attribute "attrId"
- >
<!-- **************************************************
- >
<!--
PLMCoreReference
- >
<!-- PRODUCT / ENOVIA_VPMProductRootClass
- >
<!-- **************************************************
- >
<TypeMapping>
<PlmType CUSTO="VP5BaseProductDS"
MODELER="PRODUCT" CORETYPE="PLMCoreReference"/>
<LcaType DOMAIN="NONE" TYPE="NONE"/>
<!--LcaType DOMAIN="PRODUCT"
TYPE="ENOVIA_VPMProductRootClass"/- >
<AttributeMaps>
<AttributeMap
PlmAttr="PLM_ExternalID" LcaAttr="ENOVIA_VPMProductRootClass@V_ID"
LcaAccess="V_ID"/>
<AttributeMap
PlmAttr="V_Name" LcaAttr="ENOVIA_VPMProductRootClass@V_name"
LcaAccess="V_name"/>
<AttributeMap PlmAttr="V_description"
LcaAttr="ENOVIA_VPMProductRootClass@V_description" LcaAccess="V_description"/>
<AttributeMap PlmAttr="V_maturity"
LcaAttr="ENOVIA_VPMProductRootClass@V_status"
LcaAccess="V_status"/>
<AttributeMap
PlmAttr="C_created" LcaAttr="ENOVIA_VPMProductRootClass@C_created"
LcaAccess="C_created"/>
<AttributeMap
PlmAttr="C_modified" LcaAttr="ENOVIA_VPMProductRootClass@C_modified"
LcaAccess="C_modified"/>
<AttributeMap
PlmAttr="V_user" LcaAttr="ENOVIA_VPMProductRootClass@V_user"
LcaAccess="V_user"/>
<AttributeMap
PlmAttr="V_organization" LcaAttr="ENOVIA_VPMProductRootClass@V_organization"
LcaAccess="V_organization"/>
<AttributeMap
PlmAttr="V_project" LcaAttr="ENOVIA_VPMProductRootClass@V_project"
LcaAccess="V_project"/>
</AttributeMaps>
</TypeMapping>
</TypeMappings>
Here is a sample mapping file for the VP5ProductReference that
has been customized:
<?xml version="1.0"?>
<TypeMappings>
<!--
This file describes the type and attribute
mappings for the
exposure of ENOVIA LCA data.
Notes:
(1) If the mapping occurs on a business object,
then the "TYPE" for the "LcaType" is the name of the business object,
regardless of customization. If the mapping does not occur on a business
object, then the "TYPE" is the name of the customized class.
(2) The attribute name syntax is "baseType.attrId".
This is necessary for the xml query translation because the attribute name
is interpreted by the predicate translator, and not by us.
(3) The attribute access name syntax is "pathAttr.pathAttr.attrId" where "pathAttr.pathAttr" defines the
relationship attributes to follow from the root object to access the value
of the attribute "attrId"
- >
<!-- **************************************************
- >
<!--
PLMCoreReference
- >
<!-- EN_XX / ENOVIA_XX_VPMProductRootClass
- >
<!-- **************************************************
- >
<TypeMapping>
<PlmType CUSTO="VP5ProductXX"
MODELER="PRODUCT" CORETYPE="PLMCoreReference"/>
<LcaType DOMAIN="EN_XX"
TYPE="ENOVIA_XX_VPMProductRootClass"/>
<ParentMapping CUSTO="VP5BaseProductDS" MODELER="PRODUCT" CORETYPE="PLMCoreReference"/>
<AttributeMaps>
<AttributeMap
PlmAttr="V508_AppType" LcaAttr="ENOVIA_VPMProductRootClass@V508_AppType"
LcaAccess="V508_AppType"/>
</AttributeMaps>
</TypeMapping>
</TypeMappings>