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

AF SDK Reference

AFSearch.SummaryAsync Method (String, AFSummaryTypes, CancellationToken)

AFSearch.SummaryAsync Method (String, AFSummaryTypes, CancellationToken)

  • Last UpdatedNov 18, 2025
  • 4 minute read
AFSearch.SummaryAsync Method (String, AFSummaryTypes, CancellationToken)
Summarizes the result of this search asynchronously.

Namespace:  OSIsoft.AF.Search
Assembly:  OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182

Syntax

public Task<AFSummaryResult> SummaryAsync(
	string field,
	AFSummaryTypes summaryTypes,
	CancellationToken cancellationToken
)
Public Function SummaryAsync ( 
	field As String,
	summaryTypes As AFSummaryTypes,
	cancellationToken As CancellationToken
) As Task(Of AFSummaryResult)

Dim instance As AFSearch
Dim field As String
Dim summaryTypes As AFSummaryTypes
Dim cancellationToken As CancellationToken
Dim returnValue As Task(Of AFSummaryResult)

returnValue = instance.SummaryAsync(field, 
	summaryTypes, cancellationToken)
public:
Task<AFSummaryResult^>^ SummaryAsync(
	String^ field, 
	AFSummaryTypes summaryTypes, 
	CancellationToken cancellationToken
)
member SummaryAsync : 
        field : string * 
        summaryTypes : AFSummaryTypes * 
        cancellationToken : CancellationToken -> Task<AFSummaryResult> 

Parameters

field
Type: SystemString
The field that should be summarized.
summaryTypes
Type: OSIsoft.AF.DataAFSummaryTypes
The summaries that should be performed on the field.
cancellationToken
Type: System.ThreadingCancellationToken
A token to control cancellation of the aggregation request.

Return Value

Type: TaskAFSummaryResult
A result containing the requested summaries or an error if the summaries could not be performed.

Remarks

Note Notes to Callers
This call might use a background task to complete some of its work. See the Threading Overview for some matters to consider when execution transitions to another thread.

Examples

// Get the Database
PISystems myPISystems = new PISystems();
PISystem myPISystem = myPISystems.DefaultPISystem;
if (myPISystem == null)
    throw new InvalidOperationException("Default PISystem was not found.");
AFDatabase myDB = myPISystem.Databases[dbName];
if (myDB == null)
    throw new InvalidOperationException("Database was not found.");

// Create a search to find all the event frames created from the 'Event'
// template in the last year.
using (AFEventFrameSearch eventSearch = new AFEventFrameSearch(myDB, "EventFrameSearch", @"Template:'Event' Start:>'t-1y'"))
{
    eventSearch.CacheTimeout = TimeSpan.FromMinutes(10);
    // Summarize the Minimum, Average, and Maximum duration for items meeting the search criteria
    AFSummaryResult summaryResult = await eventSearch.SummaryAsync("Duration", AFSummaryTypes.Minimum | AFSummaryTypes.Maximum | AFSummaryTypes.Average, CancellationToken.None);
    Console.WriteLine("Minimum: {0}, Average: {1}, Maximum: {2}",
        summaryResult.SummaryResults[AFSummaryTypes.Minimum],
        summaryResult.SummaryResults[AFSummaryTypes.Average],
        summaryResult.SummaryResults[AFSummaryTypes.Maximum]);
}
' Get the Database
Dim myPISystems As New PISystems()
Dim myPISystem As PISystem = myPISystems.DefaultPISystem
If myPISystem Is Nothing Then
    Throw New InvalidOperationException("Default PISystem was not found.")
End If
Dim myDB As AFDatabase = myPISystem.Databases(dbName)
If myDB Is Nothing Then
    Throw New InvalidOperationException("Database was not found.")
End If

' Create a search to find all the event frames created from the 'Event'
' template in the last year.
Using eventSearch As New AFEventFrameSearch(myDB, "EventFrameSearch", "Template:'Event' Start:>'t-1y'")
    eventSearch.CacheTimeout = TimeSpan.FromMinutes(10)


    ' Summarize the Minimum, Average, and Maximum duration for items meeting the search criteria
    Dim summaryResult As AFSummaryResult = Await eventSearch.SummaryAsync("Duration", AFSummaryTypes.Minimum Or AFSummaryTypes.Maximum Or AFSummaryTypes.Average, CancellationToken.None)
    Console.WriteLine("Minimum: {0}, Average: {1}, Maximum: {2}", summaryResult.SummaryResults(AFSummaryTypes.Minimum), summaryResult.SummaryResults(AFSummaryTypes.Average), summaryResult.SummaryResults(AFSummaryTypes.Maximum))

    Return True
End Using

No code example is currently available or this language may not be supported.

No code example is currently available or this language may not be supported.

Version Information

AFSDK

Supported in: 3.1.1, 3.1.0, 3.0.2, 3.0.1, 3.0.0, 2.10.11, 2.10.5, 2.10.0, 2.10, 2.9.5, 2.9

See Also

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