AFData.RecordedValuesAsync Method
- Last UpdatedNov 18, 2025
- 5 minute read
- PI System
- AF SDK 2024 R2
- Developer
Returns a list of values for the requested time range
from the source provider.
Namespace: OSIsoft.AF.Data
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
public Task<AFValues> RecordedValuesAsync( AFTimeRange timeRange, AFBoundaryType boundaryType, UOM desiredUOM, string filterExpression, bool includeFilteredValues, int maxCount = 0, CancellationToken cancellationToken = default )
Public Function RecordedValuesAsync ( timeRange As AFTimeRange, boundaryType As AFBoundaryType, desiredUOM As UOM, filterExpression As String, includeFilteredValues As Boolean, Optional maxCount As Integer = 0, Optional cancellationToken As CancellationToken = Nothing ) As Task(Of AFValues) Dim instance As AFData Dim timeRange As AFTimeRange Dim boundaryType As AFBoundaryType Dim desiredUOM As UOM Dim filterExpression As String Dim includeFilteredValues As Boolean Dim maxCount As Integer Dim cancellationToken As CancellationToken Dim returnValue As Task(Of AFValues) returnValue = instance.RecordedValuesAsync(timeRange, boundaryType, desiredUOM, filterExpression, includeFilteredValues, maxCount, cancellationToken)
public: Task<AFValues^>^ RecordedValuesAsync( AFTimeRange timeRange, AFBoundaryType boundaryType, UOM^ desiredUOM, String^ filterExpression, bool includeFilteredValues, int maxCount = 0, CancellationToken cancellationToken = CancellationToken() )
member RecordedValuesAsync : timeRange : AFTimeRange * boundaryType : AFBoundaryType * desiredUOM : UOM * filterExpression : string * includeFilteredValues : bool * ?maxCount : int * ?cancellationToken : CancellationToken (* Defaults: let _maxCount = defaultArg maxCount 0 let _cancellationToken = defaultArg cancellationToken new CancellationToken() *) -> Task<AFValues>
Parameters
- timeRange
- Type: OSIsoft.AF.TimeAFTimeRange
The bounding time range for the recorded values request. If the StartTime is earlier than the EndTime, the resulting values will be in time-ascending order, otherwise they will be in time-descending order. - boundaryType
- Type: OSIsoft.AF.DataAFBoundaryType
A value from the AFBoundaryType enumeration that determines how the times and values of the returned end points are determined. - desiredUOM
- Type: OSIsoft.AF.UnitsOfMeasureUOM
The desired unit of measure for the returned values. If , then the values are returned in the unit of measure specified by the associated attribute's DefaultUOM property. - filterExpression
- Type: SystemString
A string containing a filter expression. Expression variables are relative to the attribute. Use '.' to reference the containing attribute. A or empty string indicates no filtering. If the attribute does not support the Filters option, the filter will be ignored. - includeFilteredValues
- Type: SystemBoolean
Specify to indicate that values which fail the filter criteria are present in the returned data at the times where they occurred with a value set to a "Filtered" enumeration value with bad status. Repeated consecutive failures are omitted. - maxCount (Optional)
- Type: SystemInt32
The maximum number of values to be returned. If zero, then all of the events within the requested time range will be returned. When the maximum number of values is exceeded, if the timeRange provided has the start time before the end time, the earliest events are returned; if the start time is later than the end time, the latest events are returned - cancellationToken (Optional)
- Type: System.ThreadingCancellationToken
A cancellation token used to abort processing before completion. Passing the default CancellationToken.None will run to completion or until the PIConnectionInfo.OperationTimeOut period elapses.
Return Value
Type: TaskAFValuesReturns a task whose result is an AFValues collection with the recorded values.
Exceptions
| Exception | Condition |
|---|---|
| NotSupportedException | The data reference does not support the this method, or the configured data reference does not support filter expressions and one was provided. |
| AggregateException | Asynchronous methods throw AggregateException on failure which will contain one or more exceptions containing the failure. |
Remarks
| This method, property, or class is not available in the legacy .NET 3.5 version of the SDK. |
| You must have ReadData security rights to read a data value. |
| 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. |
| Asynchronous data calls in AF SDK attempt to do as much work as possible asynchronously. If no work can be done asynchronously, then the SupportedDataMethods will report that asynchronous calls are not supported. If an attribute uses a Formula or other calculated data reference has any input that supports asynchronous calls, then the attribute will support asynchronous calls. When making an asynchronous data call, input data will be acquired asynchronously when possible or synchronously otherwise. Data calls that require partitioning across versions will always fall back to synchronous calls. |
| Impersonation of AF SDK asynchronous calls relies on the .NET framework's built-in support for flowing execution context across asynchronous points. When making these calls while impersonating, the thread or runtime must be configured to propagate the impersonation across these asynchronous points (see the SecurityContext documentation for details). |