AFDataReference.RecordedValues Method
- Last UpdatedNov 18, 2025
- 6 minute read
- PI System
- AF SDK 2024 R2
- Developer
Namespace: OSIsoft.AF.Asset
Assembly: OSIsoft.AFSDK (in OSIsoft.AFSDK.dll) Version: 3.1.1.1182
Syntax
public virtual AFValues RecordedValues( AFTimeRange timeRange, AFBoundaryType boundaryType, string filterExpression, bool includeFilteredValues, AFAttributeList inputAttributes, AFValues[] inputValues, List<AFTime> inputTimes, int maxCount = 0 )
Public Overridable Function RecordedValues ( timeRange As AFTimeRange, boundaryType As AFBoundaryType, filterExpression As String, includeFilteredValues As Boolean, inputAttributes As AFAttributeList, inputValues As AFValues(), inputTimes As List(Of AFTime), Optional maxCount As Integer = 0 ) As AFValues Dim instance As AFDataReference Dim timeRange As AFTimeRange Dim boundaryType As AFBoundaryType Dim filterExpression As String Dim includeFilteredValues As Boolean Dim inputAttributes As AFAttributeList Dim inputValues As AFValues() Dim inputTimes As List(Of AFTime) Dim maxCount As Integer Dim returnValue As AFValues returnValue = instance.RecordedValues(timeRange, boundaryType, filterExpression, includeFilteredValues, inputAttributes, inputValues, inputTimes, maxCount)
public: virtual AFValues^ RecordedValues( AFTimeRange timeRange, AFBoundaryType boundaryType, String^ filterExpression, bool includeFilteredValues, AFAttributeList^ inputAttributes, array<AFValues^>^ inputValues, List<AFTime>^ inputTimes, int maxCount = 0 )
abstract RecordedValues : timeRange : AFTimeRange * boundaryType : AFBoundaryType * filterExpression : string * includeFilteredValues : bool * inputAttributes : AFAttributeList * inputValues : AFValues[] * inputTimes : List<AFTime> * ?maxCount : int (* Defaults: let _maxCount = defaultArg maxCount 0 *) -> AFValues override RecordedValues : timeRange : AFTimeRange * boundaryType : AFBoundaryType * filterExpression : string * includeFilteredValues : bool * inputAttributes : AFAttributeList * inputValues : AFValues[] * inputTimes : List<AFTime> * ?maxCount : int (* Defaults: let _maxCount = defaultArg maxCount 0 *) -> 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. - 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. - inputAttributes
- Type: OSIsoft.AF.AssetAFAttributeList
The input attributes as previously specified by the data reference in the GetInputs(Object) call. The index of the values will match the index of the corresponding attribute previously returned. These values must be converted to the appropriate UOM required by this data reference. - inputValues
- Type: OSIsoft.AF.AssetAFValues
The input values are supplied to the data reference based on the attributes returned in the GetInputs(Object) call. The index of the values will match the index of the corresponding attribute previously returned. These values must be converted to the appropriate UOM required by this data reference. - inputTimes
- Type: System.Collections.GenericListAFTime
The list of AFTime timestamps at which each input attribute was evaluated. - 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
Return Value
Type: AFValuesReturns 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. |
| ArgumentOutOfRangeException | maxCount cannot be less than zero. |
Remarks
Returned times are affected by the specified boundaryType. If no values are found for the time range and conditions specified then the method will return success and an empty AFValues collection.
When specifying for the includeFilteredValues parameter, consecutive filtered events are not returned. The first value that would be filtered out is returned with its time and the enumeration value "Filtered". The next value in the collection will be the next compressed value in the specified direction that passes the filter criteria - if any.
When both boundaryType and a filterExpression are specified, the events returned for the boundary condition specified are passed through the filter. If the includeFilteredValues parameter is , the boundary values will be reported at the proper timestamps with the enumeration value "Filtered" when the filter conditions are not met at the boundary time. If the includeFilteredValues parameter is for this case, no event is returned for the boundary time.
For the PI Point Data Reference: The PI Data Archive imposes a limit on the maximum number of events that can be returned with a single call. As of PI 3.4.380, the default is set at 1.5M. This behavior can be changed on the server by editing the server's PITimeout table and adding or editing the value associated with the parameter ArcMaxCollect. When a PI Point is queried over a time range which includes the current source server time, where the latest known value is before the server current time, a manufactured event containing an Enumeration Value with the bad value NoData, will be placed in the results at a timestamp one second past the current server time for boundary types Interpolated and Outside. This is provided to assist the caller in further interpolation of the results. Specifying a boundary type of Inside indicates that no interpolation is desired and this manufactured value is not provided for that case. The NoData will be reflected into any dependent calculation based Data References. |
| 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. |