Export objects configured with ENS in the target system - SmartPlant Foundation - IM Update 48 - Help - Hexagon

SmartPlant Foundation Help

Language
English
Product
SmartPlant Foundation
Search by Category
Help
SmartPlant Foundation / SDx Version
10
SmartPlant Markup Plus Version
10.0 (2019)
Smart Review Version
2020 (15.0)

The Engineering Numbering System (ENS) provides automated object identification, which allows project-specific identification formats to be configured as templates. These templates guide the user when creating new objects.

The ENS definition is composed of various components called ENS items that can extract data from constants and from other properties on the object or related objects. These components are configured in sequence with additional delimiter characters to define the required format.

If a class definition is configured to use ENS in the target system database, then the object name is set by the ENS definition instead of using the actual name of the object provided in the CSV file during export.

If the ENS definition is related to a property definition, such as Name, and this property definition is referred to in a UID or unique key, then Data Validator fails to identify the object and leads to export failures. This is because the relationships are processed as the UIDs or unique keys and these get changed according to the ENS definition.

It is not recommended to run jobs in parallel when using ENS because it might lead to data corruption and unexpected results.

Configuration for a tag object

To map a tag object available in the CSV file with the tag object in the target system database, do the following:

  • Ensure the DevTag class definition optionally realizes the ISPFENSRefDetails interface. This interface exposes the ENSRefName property to store the tag name from the CSV file.

<Rel>

<IObject UID="DEVTag.Realizes.ISPFENSRefDetails" />

<ISchemaObj />

<IRel UID1="DEVTag" DefUID="Realizes" UID2="ISPFENSRefDetails" />

</Rel>

  • Create an import mapping with a computed column, as shown in the example below.

    • Map the tag name from the CSV file to the ENSRefName property of the tag object.

    • Get the actual tag name from the target system, and map it to the Name property.

The ENSRefName property definition is used to store the original name of the tag object from the CSV file and helps Data Validator identify the tag object within the target system during the update, delete, and terminate object actions.

For example, if ENS is configured on the Name property of a tag, such as [Current Config][-][TG][-][Sequence], and TAG1 is exported to the target system where the configuration is PlantA and 'TG' is a constant, then the name of the tag in the target system is set to PlantA-TG-00001 and the ENSRefName property to TAG1.

Example CSV file

Object mapping example

Column header

Column type

Object mappings

Object name

TAG NAME

Physical

DevTag

DevTag

CLASS

Physical

SPFEquipmentClass

SDVEquipmentClass

AREA

Physical

SPFFunctionalArea

SDVFunctionalArea

SYSTEM

Physical

SPFSystem

SDVSystem

CONTRACT

Physical

SPFContract

SDVContract

Property mapping example

Column header

Column type

Property mappings

Parent objects

COMP_Actual_TS_Tag_Name

Computed

Name (Create Update action)

TAG NAME

COMP_Tag_Ref_Name

Computed

ENSRefName (Create Update action)

TAG NAME

Computed column for COMP_Actual_TS_Tag_Name

func.GetTargetSystemValueIfEmptyReturnDefault("true", [TAGNAME], "#DEVTag,.ENSRefName=[TAGNAME]", ".Name")

Computed column for COMP_Tag_Ref_Name

func.Concat({[TAG NAME]})

Configuration for a document object

If you have configured ENS for a document master, revision, and/or version, the SPFDesignDocMaster and the SPFDesignDocRevision class definitions must optionally realize the ISPFENSRefDetails interface definition, which exposes the ENSRefName property. The document number value must be set on the master object’s ENSRefName property. The document number, major revision, and minor revision must be set on the ENSRefName property of the revision object.

To map a document object available in the CSV file with the document object in the target system database, do the following:

  • Ensure the ISPFENSRefDetails interface is optionally realized by the SPFDesignDocMaster and SPFDesignDocRevision class definitions. This interface exposes the ENSRefName property to store the document name and revision code from the CSV file.

<Rel>

<IObject UID="SPFDesignDocMaster.Realizes.ISPFENSRefDetails" />

<ISchemaObj />

<IRel UID1="SPFDesignDocMaster" DefUID="Realizes" UID2="ISPFENSRefDetails" />

</Rel>

<Rel>

<IObject UID="SPFDesignDocRevision.Realizes.ISPFENSRefDetails" />

<ISchemaObj />

<IRel UID1="SPFDesignDocRevision" DefUID="Realizes" UID2="ISPFENSRefDetails"/>

</Rel>

  • Create an import mapping with a computed column, as shown in the example below.

    • Map the document name from the CSV file to the ENSRefName property of the document master object.

    • Map the document name and the revision code to the ENSRefName property of the document revision object.

    • Get the actual document name from the target system, and map it to the Name property of the document master and revision object.

    The files attached to the document can be identified using the query definition, +SPFFileComposition.ENSRefName,.Name. This query definition needs to be modified, for your staging schema.

Example CSV file

Object mapping example

Column header

Column type

Object mappings

Property mappings

Object name

DOCUMENT_NUMBER

Physical

SPFDesignDocMaster

SDVSPFDesignDocMaster

REVISION_CODE

Physical

SPFExternalRevision

SDVSPFExternalRevision

ISSUE_DATE

Physical

DOCUMENT_TYPE

Physical

SPFDocumentClass

SDVSPFDocumentClass

DOCUMENT_TITLE

Physical

REVISION_SCHEME

Constant

SPFRevisionScheme

SDVSPFRevisionScheme

OWNING_GROUP

Constant

SPFDataAccessGroup

SDVSPFDataAccessGroup

ISSUE_DATE_CONV

Computed

SPFRevIssueDate

SDVRevIssueDate

COMP_DOC_REVISION

Computed

SPFDesignDocRevision

SDVSPFDesignDocRevision

MAJORREVISION

Computed

SPFMajorRevision

SDVSPFDesignDocRevision

MINORREVISION

Computed

SPFMinorRevision

SDVSPFDesignDocRevision

Property mapping example

Column header

Column type

Property mappings

Parent objects

COMP_Master_Actual_TS_Name

Computed

Name (Create Update action)

COMP_DOC_REVISION and DOCUMENT_NUMBER

COMP_Master_Ref_Name

Computed

ENSRefName (Create Update action)

DOCUMENT_NUMBER

COMP_Revision_Ref_Name

Computed

ENSRefName (Create Update action)

COMP_DOC_REVISION

Computed column for COMP_Master_Actual_TS_Name

func.GetTargetSystemValueIfEmptyReturnDefault("true", [DOCUMENT_NUMBER],"#SPFDocumentMaster,.ENSRefName=[DOCUMENT_NUMBER]", ".Name")

Computed column for COMP_Master_Ref_Name

func.Concat({[DOCUMENT_NUMBER]})

Computed column for COMP_Revision_Ref_Name

func.Concat({[DOCUMENT_NUMBER], "_", [MAJOR_REVISION],"_", [MINOR_REVISION]})