ERMClient
- Last UpdatedJul 27, 2026
- 1 minute read
- Engineering
- Integration Service 4.1
- Integrators
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
}
}