Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ Asset Information Management

Ingestion API Input

  • Last UpdatedApr 10, 2025
  • 4 minute read

APCM integration with the Data Pipeline and the Ingestion API must be enabled. If the integration is not enabled, then any APCM registers will be rejected by the Ingestion API. If the integration is enabled, then the following data can be passed for processing.

Important

  • Any csv file sent to the Ingestion API for APCM integration must be a UTF-8 encoded file with CRLF line endings. For samples of each of the three APCM registers, see the Sample APCM Registers section. Please ensure conformance to enable smooth processing.

  • The ISM Class Library must be loaded into the AIM system before any register can be sent for processing to make sure any required classes and associations are available in the system.

APCM/Projects

This register is responsible for creating an object for an APCM project in AIM. This creates a document object of type APCM Viewer Project for the project (an alternative class name can be used), creates a FILE object that points to the target APCM project to be opened in AIM and associates the two using an "is fulfilled by" association for viewing. The InfoLocator attribute is set to the APCM Sharelink of the project and InfoType is set to "application/x-lfm", which invokes the APCM Viewer embedded in the AIM Dashboard.

The input register csv contains the following columns:

Column Name

Is Identifier?

Description

ProjectId

Yes

The identifier for the document object for the APCM project. This is the ID that is searchable and viewable in AIM. This must be unique for any project in the register.

Sharelink

The URL to the project root in APCM

Register Identifier to send to the Ingestion API: APCM/Projects

The register definition for the same in an ISM Class Library is as follows:

<APCM geicl:id="APCM" nomenclature="APCM">

<Projects geicl:id="Projects" Category="General" IDColumn="ProjectId" RegisterType="Primary" MaxRequiredFieldErrors="0" DeleteWhere="{{ @Action starts 'd' }}" CaptureMethod="partial" ClassDefault="APCM Viewer Project">

<Columns geicl:id="Columns">

<ProjectId geicl:id="ProjectId" Description="{geicl:null}" required="true" />

<Sharelink geicl:id="Sharelink" Description="{geicl:null}" required="true" />

<Ref_Visual ValueExpression="{{ concat('.'.join('File', @ProjectId)) }}" AssociationType="is fulfilled by" AssociationClass="{geicl:null}" />

</Columns>

</Projects>

<Projects.Files geicl:id="Projects.Files" Category="General" IDExpression="FILE.{{@ProjectId}}" ClassDefault="FILE" FromRegister="APCM/Projects" RegisterType="Primary">

<Columns geicl:id="Columns">

<Sharelink geicl:id="Sharelink" Description="{geicl:null}" />

<Calc_InfoType ValueExpression="application/x-lfm" />

<Calc_InfoLocator From="Sharelink" ValueExpression="{{ $[attr.value] }}" />

</Columns>

</Projects.Files>

</APCM>

APCM/Visuals

This register is responsible for creating an object for an APCM Scan in AIM. This creates a document object of type LASER VISUAL for the scan and associates it with the respective Project using an "is referenced in" association for viewing. The input register csv contains the following columns:

Column Name

Is Identifier?

Description

VisualId

Yes

The identifier for the APCM scan object in AIM. This must be unique.

ProjectId

The identifier for the document object for the APCM project.

EntityType

The Entity Type for the visual in APCM database. Required for performance improvement. [Optional]

ViewId

The identifier of the visual in APCM database.

Sharelink

The URL to the APCM scan in APCM.

Register Identifier to send to the Ingestion API: APCM/Visuals

The register definition for the same in an ISM Class Library is as follows:

<APCM geicl:id="APCM" nomenclature="APCM">

<Visuals geicl:id="Visuals" Category="General" IDColumn="VisualId" RegisterType="Primary" MaxRequiredFieldErrors="0" DeleteWhere="{{ @Action starts 'd'}}" CaptureMethod="partial" ClassDefault="LASER VISUAL">

<Columns geicl:id="Columns">

<VisualId geicl:id="VisualId" Description="{geicl:null}" required="true" />

<ProjectId geicl:id="ProjectId" Description="{geicl:null}" required="true" />

<ViewId geicl:id="ViewId" Description="{geicl:null}" required="true" />

<Sharelink geicl:id="Sharelink" Description="{geicl:null}" required="true" />

<Ref_Project ValueExpression="{{ @ProjectId }}" AssociationType="is referenced in" AssociationClass="{geicl:null}" />

</Columns>

</Visuals>

</APCM>

APCM/TagAssociations

This register is responsible for creating associations between an APCM Scan or Project with any existing AIM tag object. This creates an association of type "is located in" between a LASER VISUAL and the existing tag. It also creates the association "is referenced in" between the APCM project and the existing tag.

Note: If the tag is not already available in AIM, the object is classified as UNKNOWN and it is not directly searchable from AIM.

The input register csv contains the following columns:

Column Name

Is Identifier?

Description

Id

Yes

The identifier of the tag in AIM. This must be unique.

VisualId

The identifier for the APCM scan object in AIM. This is used to create the "is located in" association between the tag and the APCM scan

ProjectId

The identifier for the document object for the APCM project. This is used to create the "is referenced in" association between the tag and the APCM project

EntityType

The Entity Type for the visual in APCM database. Required for performance improvement. [Optional]

ViewId

The identifier of the visual in APCM database.

Sharelink

The URL to the tag in APCM.

ObjectFileName

Multiple object files are allowed in the viewer, though only one can be loaded at a time. Each object file is identified with an ObjectFileName value.

Register Identifier to send to the Ingestion API: APCM/TagAssociations

The register definition for the same in an ISM Class Library is as follows:

<APCM geicl:id="APCM" nomenclature="APCM">

<TagAssociations geicl:id="TagAssociations" Category="Tags" IDColumn="Id" RegisterType="Secondary" MaxRequiredFieldErrors="0" DeleteWhere="{{ @Action starts 'd' }}" CaptureMethod="Partial">

<Columns geicl:id="Columns">

<Id geicl:id="Id" Description="{geicl:null}" required="true"/>

<VisualId geicl:id="VisualId" Description="{geicl:null}" required="true"/>

<ProjectId geicl:id="ProjectId" Description="{geicl:null}" required="true"/>

<ViewId geicl:id="ViewId" Description="{geicl:null}" required="true"/>

<Sharelink geicl:id="Sharelink" Description="{geicl:null}" required="true"/>

<Ref_Project ValueExpression="{{ @ProjectId }}" AssociationType="is referenced in" AssociationClass="APCM Viewer Project"/>

<Ref_Visual ValueExpression="{{ @VisualId }}" AssociationType="is located in "AssociationClass="LASER VISUAL"/>

<ObjectFileName geicl:id="ObjectFileName" Description="{geicl:null}" />

</Columns>

</TagAssociations>

</APCM>

In This Topic
TitleResults for “How to create a CRG?”Also Available in