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

AF SDK Reference

AFDataReference.RecordedValues Method

  • Last UpdatedNov 18, 2025
  • 6 minute read
AFDataReference.RecordedValues Method
Returns a list of compressed values for the requested time range from the source provider.

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: AFValues
Returns an AFValues collection with the recorded values.

Exceptions

ExceptionCondition
NotSupportedException The data reference does not support the this method, or the configured data reference does not support filter expressions and one was provided.
ArgumentOutOfRangeExceptionmaxCount 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.

Note Note

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.

Note Notes to Callers
This method, property, or class is not available in the legacy .NET 3.5 version of the SDK.

Security note Security Note
You must have ReadData security rights to read a data value.

Version Information

AFSDK


See Also

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