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

AVEVA™ Integration Service

ERMClient

  • Last UpdatedJul 27, 2026
  • 1 minute read

Namespace: AVEVA.IntegrationService.DataAPI.SDK

Interface: IERMClient

Description: ERMClient is used to communicate with ERM (Enterprise Resource Management) ProductCategory products.

Methods

GetTableData

Retrieves table data with optional filtering.

Signature:

Task<DataTable> GetTableData(string datasourceName, string tableName, string filter = "")

Example:

// Create the ERM client

string host = "https://your-server/integration/v1";

string token = "your-access-token";

var ermClient = DataApiClientFactory.CreateDataApiClient<ERMClient>(

host: host,

authType: AuthenticationType.Connect,

waitingTimeInMinutesForLiveData: 60,

token: token,

hubCancellationToken: null

);

// Get all table data

DataTable tableData = await ermClient.GetTableData(

"MyERMDataSource",

"Equipment"

);

foreach (DataRow row in tableData.Rows)

{

Console.WriteLine($"Equipment: {row["Name"]}, Status: {row["Status"]}");

}

// Get filtered table data

DataTable filteredData = await ermClient.GetTableData(

"MyERMDataSource",

"Equipment",

filter: "Status eq 'Active'"

);

PostSpecData

Posts specification data to the datasource.

Signature:

Task<AcknowledgementResult> PostSpecData(

string dataSourceName,

DataSet dataSet,

string ackId,

string context = "",

string topic = "",

int expiryDuration = 0

)

Example:

// Create specification data

DataSet specData = new DataSet();

DataTable equipmentTable = new DataTable("Equipment");

equipmentTable.Columns.Add("EquipmentID", typeof(string));

equipmentTable.Columns.Add("Name", typeof(string));

equipmentTable.Columns.Add("Specification", typeof(string));

equipmentTable.Rows.Add("EQ001", "Pump A", "Centrifugal, 100HP");

equipmentTable.Rows.Add("EQ002", "Tank B", "Storage, 5000L");

specData.Tables.Add(equipmentTable);

DataTable materialsTable = new DataTable("Materials");

materialsTable.Columns.Add("MaterialID", typeof(string));

materialsTable.Columns.Add("Name", typeof(string));

materialsTable.Columns.Add("Grade", typeof(string));

materialsTable.Rows.Add("MAT001", "Steel", "ASTM A36");

specData.Tables.Add(materialsTable);

AcknowledgementResult result = await ermClient.PostSpecData(

dataSourceName: "MyERMDataSource",

dataSet: specData,

ackId: "",

context: "{\"Project\":\"Plant Expansion\"}",

expiryDuration: 72

);

Console.WriteLine($"Posted spec data. AckId: {result.AcknowledgementId}");

GetSpecData

Retrieves specification data using acknowledgement ID.

Signature:

Task<DataSet> GetSpecData(string dataSourceName, string ackId)

Example:

DataSet specData = await ermClient.GetSpecData(

"MyERMDataSource",

"ack-12345-67890"

);

// Process all tables in the spec data

foreach (DataTable table in specData.Tables)

{

Console.WriteLine($"Processing table: {table.TableName}");

foreach (DataRow row in table.Rows)

{

// Process rows

}

}

Related Links