ETAPClient
- Last UpdatedJul 27, 2026
- 2 minute read
- Engineering
- Integration Service 4.1
- Integrators
Namespace: AVEVA.IntegrationService.DataAPI.SDK
Interface: IETAPClient
Description: ETAPClient is used to communicate with ETAP ProductCategory products for electrical power system analysis.
Methods
GetEtapData
Retrieves ETAP data with optional filtering.
Signature:
Task<DataSet> GetEtapData(string datasourceName, string filter = "")
Example:
// Create the ETAP client
string host = "https://your-server/integration/v1";
string token = "your-access-token";
var etapClient = DataApiClientFactory.CreateDataApiClient<ETAPClient>(
host: host,
authType: AuthenticationType.Connect,
waitingTimeInMinutesForLiveData: 60,
token: token,
hubCancellationToken: null
);
// Get all ETAP data
DataSet etapData = await etapClient.GetEtapData("MyETAPDataSource");
foreach (DataTable table in etapData.Tables)
{
Console.WriteLine($"Table: {table.TableName}, Rows: {table.Rows.Count}");
}
// Get filtered ETAP data
DataSet filteredData = await etapClient.GetEtapData(
"MyETAPDataSource",
filter: "Voltage gt 100"
);
GetEtapSchema
Retrieves ETAP schema (column information only).
Signature:
Task<DataSet> GetEtapSchema(string datasourceName)
Example:
DataSet etapSchema = await etapClient.GetEtapSchema("MyETAPDataSource");
foreach (DataTable table in etapSchema.Tables)
{
Console.WriteLine($"Table: {table.TableName}");
foreach (DataColumn col in table.Columns)
{
Console.WriteLine($" Column: {col.ColumnName}, Type: {col.DataType}");
}
}
PostEtapData
Posts ETAP data to the datasource.
Signature:
Task<AcknowledgementResult> PostEtapData(
string datasourceName,
DataSet data,
string AckId,
string Context = "",
string Topic = "",
int expiryDuration = 0
)
Example:
// Create ETAP data
DataSet etapData = new DataSet();
DataTable busData = new DataTable("Buses");
busData.Columns.Add("BusID", typeof(string));
busData.Columns.Add("Voltage", typeof(double));
busData.Columns.Add("Type", typeof(string));
busData.Rows.Add("BUS001", 132.0, "Swing");
busData.Rows.Add("BUS002", 33.0, "Load");
etapData.Tables.Add(busData);
DataTable lineData = new DataTable("Lines");
lineData.Columns.Add("LineID", typeof(string));
lineData.Columns.Add("FromBus", typeof(string));
lineData.Columns.Add("ToBus", typeof(string));
lineData.Rows.Add("LINE001", "BUS001", "BUS002");
etapData.Tables.Add(lineData);
AcknowledgementResult result = await etapClient.PostEtapData(
datasourceName: "MyETAPDataSource",
data: etapData,
AckId: "",
Context: "{\"Analysis\":\"LoadFlow\"}",
expiryDuration: 24
);
Console.WriteLine($"Posted ETAP data. AckId: {result.AcknowledgementId}");
PostEtapSchema
Posts ETAP schema to the datasource.
Signature:
Task<AcknowledgementResult> PostEtapSchema(
string datasourceName,
DataSet data,
string AckId,
string Context = "",
string Topic = "",
int expiryDuration = 0
)
Example:
// Create schema definition
DataSet schemaData = new DataSet();
DataTable busSchema = new DataTable("Buses");
busSchema.Columns.Add("BusID", typeof(string));
busSchema.Columns.Add("Voltage", typeof(double));
busSchema.Columns.Add("Type", typeof(string));
schemaData.Tables.Add(busSchema);
AcknowledgementResult result = await etapClient.PostEtapSchema(
"MyETAPDataSource",
schemaData,
""
);