AFEventFrameSearch Class
- Last UpdatedNov 18, 2025
- 14 minute read
- PI System
- AF SDK 2024 R2
- Developer

Inheritance Hierarchy
OSIsoft.AF.SearchAFSearch
OSIsoft.AF.SearchAFSearchAFEventFrame
OSIsoft.AF.SearchAFEventFrameSearch
Namespace: OSIsoft.AF.Search
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
public sealed class AFEventFrameSearch : AFSearch<AFEventFrame>
Public NotInheritable Class AFEventFrameSearch Inherits AFSearch(Of AFEventFrame) Dim instance As AFEventFrameSearch
public ref class AFEventFrameSearch sealed : public AFSearch<AFEventFrame^>
[<SealedAttribute>] type AFEventFrameSearch = class inherit AFSearch<AFEventFrame> end
The AFEventFrameSearch type exposes the following members.
Constructors
| Name | Description | |
|---|---|---|
| AFEventFrameSearch(AFDatabase, String, IListAFSearchToken) | Obsolete.
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified list of
search tokens.
| |
| AFEventFrameSearch(AFDatabase, String, IListAFSearchTokenBase) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified list of
search tokens.
| |
| AFEventFrameSearch(AFDatabase, String, String) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified search query
string.
| |
| AFEventFrameSearch(AFDatabase, String, AFEventFrameSearchMode, AFTime, IListAFSearchTokenBase) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified AFEventFrameSearchMode,
time and optional search query string.
| |
| AFEventFrameSearch(AFDatabase, String, AFEventFrameSearchMode, AFTime, String) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified AFEventFrameSearchMode,
time and optional search query string.
| |
| AFEventFrameSearch(AFDatabase, String, AFSearchMode, AFTime, AFTime, IListAFSearchTokenBase) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified AFSearchMode,
times and optional search query string.
| |
| AFEventFrameSearch(AFDatabase, String, AFSearchMode, AFTime, AFTime, String) |
Creates an instance of an AFEventFrameSearch to search
for AFEventFrame objects using the specified AFSearchMode,
times and optional search query string.
|
Properties
| Name | Description | |
|---|---|---|
| CacheInterval |
The search's cached automatic refresh interval.
(Inherited from AFSearch.) | |
| CacheTimeout |
The timeout to clean up the cached search in the server if it has not been used.
(Inherited from AFSearch.) | |
| Database |
The AFDatabase to be searched by the query.
(Inherited from AFSearch.) | |
| Identity |
This read-only property specifies the identity of the objects returned
from the search.
(Inherited from AFSearch.) | |
| PISystem |
The PISystem to be searched by the query.
(Inherited from AFSearch.) | |
| SearchName |
The name of the search object.
(Inherited from AFSearch.) | |
| ThrowOnError |
Specifies it an exception will be thrown for missing objects or invalid data in the query.
(Inherited from AFSearch.) | |
| TokenCollection |
The tokens that represent this search object.
(Inherited from AFSearch.) | |
| Tokens | Obsolete.
The tokens that represent this search object.
(Inherited from AFSearch.) |
Methods
| Name | Description | |
|---|---|---|
| Aggregate |
Performs all requested aggregates on the objects that match the search criteria.
(Inherited from AFSearch.) | |
| AggregateAsync |
Performs all requested aggregates on the objects that match the search criteria asynchronously.
(Inherited from AFSearch.) | |
| BinnedSummaryTBin |
Generates a summary broken down by the specified bins for items matching the search criteria.
(Inherited from AFSearch.) | |
| BinnedSummaryAsyncTBin |
Generates a summary broken down by the specified bins for items matching the search criteria asynchronously.
(Inherited from AFSearch.) | |
| Close |
Closes the search that is cached in the server.
(Inherited from AFSearch.) | |
| Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
| FindEventFrames | Obsolete.
This method will return the AFEventFrame objects that match the
search tokens.
| |
| FindObjectFields(String, Int32, Int32) |
This method will return the values as an IList for the specified fields for each of the objects
that match the search tokens.
(Inherited from AFSearchT.) | |
| FindObjectFieldsTObject(Int32, Int32) |
This method will return the values for the fields defined by the user-defined type for each of the objects
that match the search tokens.
(Inherited from AFSearchT.) | |
| FindObjectFieldsTObject(String, FuncIListObject, TObject, Int32, Int32) |
This method will return the values as an object for the specified fields for each of the objects
that match the search tokens using the supplied factory delegate.
(Inherited from AFSearch.) | |
| FindObjectFieldsTObject(String, FuncIListObject, TObject, Int32, Int32) |
This method will return the values as an object for the specified fields for each of the objects
that match the search tokens using the supplied factory delegate.
(Inherited from AFSearchT.) | |
| FindObjectIds |
This method will return a list of the ID for each object that matches the
search tokens.
(Inherited from AFSearchT.) | |
| FindObjects |
This method will return the objects that match the
search tokens.
(Inherited from AFSearchT.) | |
| FrequencyDistribution |
Generates a frequency distribution for the specified items.
(Inherited from AFSearch.) | |
| FrequencyDistributionAsync |
Generates a frequency distribution for the specified items asynchronously.
(Inherited from AFSearch.) | |
| GetCachedEventFrames |
Gets the active matches for this search when there is an active subscriber.
| |
| GetFilters |
Get the full list of valid filters for a search query
for all servers.
| |
| GetFilters(PISystem) |
Get the list of valid filters for a search query
for the specified server.
| |
| GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
| GetObjectFields |
Get the list of valid object fields that can used for the FindObjectFields(String, Int32, Int32)
search for the specified server.
| |
| GetTotalCount |
Returns the total count of the items that could be returned from the search query.
(Inherited from AFSearchT.) | |
| GetType | Gets the Type of the current instance. (Inherited from Object.) | |
| GroupedSummary |
Generates summaries broken down by group for items matching the search criteria.
(Inherited from AFSearch.) | |
| GroupedSummaryAsync |
Generates summaries broken down by group for items matching the search criteria asynchronously.
(Inherited from AFSearch.) | |
| HistogramTBin |
Generates a histogram using the specified weighting for items matching this search.
(Inherited from AFSearch.) | |
| HistogramAsyncTBin |
Generates a histogram using the specified weighting for items matching this search asynchronously.
(Inherited from AFSearch.) | |
| IsMatch |
Determines if the specified item matches the search query.
(Inherited from AFSearchT.) | |
| Refresh |
Refreshes the search that is cached in the server.
(Inherited from AFSearch.) | |
| Subscribe(IObserverAFSearchUpdateEventAFEventFrame) |
Subscribes an observer to matches for this event frame search.
| |
| Subscribe(IObserverAFSearchUpdateEventAFEventFrame, Boolean, Int32) |
Subscribes an observer to matches for this event frame search.
| |
| Summary(String, AFSummaryTypes) |
Summarizes the result of this search.
(Inherited from AFSearch.) | |
| Summary(String, AFSummaryTypes, String) |
Summarizes the result of this search with the specified weighting.
(Inherited from AFSearch.) | |
| SummaryAsync(String, AFSummaryTypes, CancellationToken) |
Summarizes the result of this search asynchronously.
(Inherited from AFSearch.) | |
| SummaryAsync(String, AFSummaryTypes, String, CancellationToken) |
Summarizes the result of this search with the specified weighting asynchronously.
(Inherited from AFSearch.) | |
| ToString |
Returns a String that represents the current object.
(Inherited from AFSearch.) | |
| TryFindSearchToken | Obsolete.
Find the AFSearchToken associated with the specified AFSearchFilter.
(Inherited from AFSearch.) | |
| TryFindSearchTokens | Obsolete.
Find the AFSearchToken list associated with the specified AFSearchFilter.
(Inherited from AFSearch.) |
Remarks
This class provides support for query based searches for AFEventFrame objects. The QuerySearch feature can be checked to determine if this query search is supported.
A query string is parsed into search tokens which are used to specify the query filters for the search.
To optimize getting items from several pages of search results, a search can be cached by setting the CacheTimeout to a non-zero value. If you will only be getting items from the first page, then it is best to leave the cache disabled. The cache is disabled by default. Call the Refresh method to refresh the results of a cached search. Use the Close method to close a cached search when finished using it to free the memory used by the cached results in the server. Since the search implements the IDisposable interface, you can call the cached search in a using statement to automatically call the Close method when it leaves scope.
| When a query is too complex for a server, then you will get a NotSupportedException. |
Examples
1// Get the Database 2PISystems myPISystems = new PISystems(); 3PISystem myPISystem = myPISystems.DefaultPISystem; 4if (myPISystem == null) 5 throw new InvalidOperationException("Default PISystem was not found."); 6AFDatabase myDB = myPISystem.Databases[dbName]; 7if (myDB == null) 8 throw new InvalidOperationException("Database was not found."); 9 10// Create a search to find all the event frames created from the 'Event' 11// template, with a start time greater than or equal to three days ago, 12// and its 'Level' attribute value is greater than or equal 45. 13// Note: Time strings must be in a format supported by AFTime.Parse which 14// will use current culture and then fall back to invariant culture. 15int count; 16using (var search = new AFEventFrameSearch(myDB, "FindEvents", @"Template:'Event' Start:>='*-3d' |Level:>=45.0")) 17{ 18 search.CacheTimeout = TimeSpan.FromMinutes(10); 19 20 // When the event frames are returned from a find operation, they are only 21 // partially loaded into memory, typically enough to display their 22 // inherent properties, such as Name, Description, Template, etc. 23 // When a piece of information is accessed in the event frame that requires more 24 // information, an RPC to the server is made to fully load the event frame. 25 // By having the search do a full load, all information is loaded in bulk and 26 // we can reduce the number of RPCs made to retrieve this information. 27 count = search.GetTotalCount(); 28 Console.WriteLine("Found {0} EventFrames.", count); 29 foreach (AFEventFrame item in search.FindObjects(fullLoad: true)) 30 { 31 // Now we can use the event frames without having to make any additional RPCs 32 // In the example below, accessing the Attributes collection would have 33 // caused an additional RPC per element found. 34 // Now we can use the event frames without having to make any additional RPCs 35 // In the example below, accessing the Attributes collection would have 36 // caused an additional RPC per event frame found. 37 Console.WriteLine(" EventFrame {0} has {1} Attributes", item.Name, item.Attributes.Count); 38 } 39}
1' Get the Database 2Dim myPISystems As New PISystems() 3Dim myPISystem As PISystem = myPISystems.DefaultPISystem 4If myPISystem Is Nothing Then 5 Throw New InvalidOperationException("Default PISystem was not found.") 6End If 7Dim myDB As AFDatabase = myPISystem.Databases(dbName) 8If myDB Is Nothing Then 9 Throw New InvalidOperationException("Database was not found.") 10End If 11 12' Create a search to find all the event frames created from the 'Event' 13' template, with a start time greater than or equal to three days ago, 14' and its 'Level' attribute value is greater than or equal 45. 15' Note: Time Strings must be in a format supported by AFTime.Parse which 16' will use current culture And then fall back to invariant culture. 17Dim count As Integer 18Using search As New AFEventFrameSearch(myDB, "FindEvents", "Template:'Event' Start:>='*-3d' |Level:>=45.0") 19 20 search.CacheTimeout = TimeSpan.FromMinutes(10) 21 22 ' When the event frames are returned from a find operation, they are only 23 ' partially loaded into memory, typically enough to display their 24 ' inherent properties, such as Name, Description, Template, etc. 25 ' When a piece of information is accessed in the event frame that requires more 26 ' information, an RPC to the server is made to fully load the event frame. 27 ' By having the search do a full load, all information is loaded in bulk and 28 ' we can reduce the number of RPCs made to retrieve this information. 29 count = search.GetTotalCount() 30 Console.WriteLine("Found {0} EventFrames.", count) 31 For Each item As AFEventFrame In search.FindObjects(fullLoad:=True) 32 ' Now we can use the event frames without having to make any additional RPCs 33 ' In the example below, accessing the Attributes collection would have 34 ' caused an additional RPC per element found. 35 ' Now we can use the event frames without having to make any additional RPCs 36 ' In the example below, accessing the Attributes collection would have 37 ' caused an additional RPC per event frame found. 38 Console.WriteLine(" EventFrame {0} has {1} Attributes", item.Name, item.Attributes.Count) 39 Next 40End 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.