EngineeringClient
- Last UpdatedJul 27, 2026
- 2 minute read
- Engineering
- Integration Service 4.1
- Integrators
Namespace: AVEVA.IntegrationService.DataAPI.SDK
Interface: IEngineeringClient
Description
EngineeringClient is used to communicate with Engineering ProductCategory products via HTTP calls. It provides methods to retrieve and post object information, attributes, and published tags.
Methods
GetObjectInfo
Retrieves required object info by supplying comma-separated element names.
Signature:
Task<DataTable> GetObjectInfo(string datasourceName, string elementName)
Example:
using AVEVA.IntegrationService.DataAPI.SDK;
using System.Data;
// Create the Engineering client
string host = "https://your-server/integration/v1";
string token = "your-access-token";
var engineeringClient = DataApiClientFactory.CreateDataApiClient<EngineeringClient>(
host: host,
authType: AuthenticationType.Connect,
waitingTimeInMinutesForLiveData: 60,
token: token,
hubCancellationToken: null
);
// Get object info for specific elements
DataTable objectInfo = await engineeringClient.GetObjectInfo(
"MyEngineeringDataSource",
"/SITE,/ZONE"
);
// Process the returned data
foreach (DataRow row in objectInfo.Rows)
{
Console.WriteLine($"Element: {row["Name"]}, Type: {row["Type"]}");
}
GetObjectInfoAttribute
Retrieves object info for specific elements and their attributes.
Signature:
Task<DataTable> GetObjectInfoAttribute(string datasourceName, string elementName, string attribute)
Example:
// Get specific attributes for elements
DataTable attributeData = await engineeringClient.GetObjectInfoAttribute(
"MyEngineeringDataSource",
"/SITE,/ZONE",
"Name,Description,Type"
);
foreach (DataRow row in attributeData.Rows)
{
Console.WriteLine($"Name: {row["Name"]}, Description: {row["Description"]}");
}
GetPublishedTags
Retrieves published tags information from the datasource.
Signature:
Task<DataSet> GetPublishedTags(string datasourceName, string key)
Example:
// Get published tags by key
DataSet publishedTags = await engineeringClient.GetPublishedTags(
"MyEngineeringDataSource",
"TagGroup1"
);
// Access different tables in the dataset
foreach (DataTable table in publishedTags.Tables)
{
Console.WriteLine($"Table: {table.TableName}, Rows: {table.Rows.Count}");
}
GetPublishedTagDataByAcknowledgementId
Retrieves published tags using an acknowledgement ID.
Signature:
Task<DataSet> GetPublishedTagDataByAcknowledgementId(string datasourceName, string acknowledgementId)
Example:
DataSet tagData = await engineeringClient.GetPublishedTagDataByAcknowledgementId(
"MyEngineeringDataSource",
"ack-12345-67890"
);
PostObjectInfo
Posts object information to the datasource.
Signature:
Task<AcknowledgementResult> PostObjectInfo(
string datasourceName,
string Element,
string data,
string AckId,
string Context = "",
string Topic = "",
int expiryDuration = 0
)
Example:
using Newtonsoft.Json;
// Prepare data to post
var objectData = new
{
Name = "NewEquipment",
Type = "Pump",
Description = "New pump installation"
};
string jsonData = JsonConvert.SerializeObject(objectData);
// Post object info
AcknowledgementResult result = await engineeringClient.PostObjectInfo(
datasourceName: "MyEngineeringDataSource",
Element: "/SITE/ZONE/NewEquipment",
data: jsonData,
AckId: "", // Empty for new post
Context: "{\"Operation\":\"Create\"}",
Topic: "EngineeringUpdates",
expiryDuration: 24 // 24 hours
);
Console.WriteLine($"Posted successfully. AckId: {result.AcknowledgementId}");
PostObjectInfoAttribute
Posts object information with specific attributes.
Signature:
Task<AcknowledgementResult> PostObjectInfoAttribute(
string datasourceName,
string Element,
string Attr,
string data,
string AckId,
string Context = "",
string Topic = "",
int expiryDuration = 0
)
Example:
var attributeData = new
{
Description = "Updated description",
Status = "Active"
};
AcknowledgementResult result = await engineeringClient.PostObjectInfoAttribute(
"MyEngineeringDataSource",
"/SITE/ZONE/Equipment1",
"Description,Status",
JsonConvert.SerializeObject(attributeData),
""
);