Read and write status
- Last UpdatedAug 21, 2026
- 2 minute read
DataSubscription
Use the DataSubscription class from IRuntimeDataClient to read and data.
DataSubscription
public abstract class DataSubscription
{
/// <summary>
/// Read the runtime data asynchronously.
/// </summary>
/// <param name="dataReferenceSources">The data reference source
/// array</param>
/// <returns>The VTQ array of the references</returns>
public abstract Task<VTQ[]> ReadAsync(DataReferenceSource[] dataReferenceSources);
/// <summary>
/// Write the runtime data asynchronously.
/// When writing to an ArchestrA attribute in which security is
/// SecuredWrite or VerifiedWrite, the corresponding pop-up dialog box
/// will automatically popup and the method will return when the dialog
/// box is dismissed and the data is either written to the source or fails.
/// </summary>
/// <param name="dataReferenceSource">The data reference source</param>
/// <param name="value">The value to be written</param>
/// <returns>The status of the write operation</returns>
public abstract Task<WriteOperationStatus> WriteAsync(DataReferenceSource dataReferenceSource , object value);
/// <summary>
/// Subscribe the runtime data references.
/// </summary>
/// <param name="dataReferenceSources">The data reference source array</param>
/// <returns>The subscribed data reference array</returns>
public abstract DataReference[] Subscribe(DataReferenceSource[] dataReferenceSources);
/// <summary>
/// Unsubscribe the runtime data references.
/// </summary>
/// <param name="dataReferences">The data reference array</param>
public abstract void Unsubscribe(DataReference[] dataReferences);
/// <summary>
/// Unsubscribe all runtime data references.
/// </summary>
public abstract void UnsubscribeAll();
}
WriteOperationStatus
Use the WriteOperationStatus class to receive write status when writing data to a reference.
WriteOperationStatus
public enum WriteOperationStatus
{
/// <summary>
/// Indicates success
/// </summary>
WriteSuccess = 0,
/// <summary>
/// Indicates failure
/// </summary>
WriteFailed = 1,
/// <summary>
/// Indicates failure because of application authentication issues
/// </summary>
ApplicationAuthenticationError = 2,
/// <summary>
/// Indicates failure because of user authentication issues
/// </summary>
UserAuthenticationError = 3,
/// <summary>
/// Indicates failure because of user authorization issues
/// </summary>
UserAuthorizationError = 4,
/// <summary>
/// Indicates failure because of unsupported operation
/// </summary>
NotSupportedOperation = 5,
/// <summary>
/// Indicates failure because the item is already deleted
/// </summary>
ItemAlreadyDeletedOrDoesNotExist = 9,
/// <summary>
/// Indicates failure because the item is invalid
/// </summary>
InvalidMonitoredItems = 10,
/// <summary>
/// Indicates failure because the operation failed
/// </summary>
OperationFailed = 11,
/// <summary>
/// Indicates failure because of no connection
/// </summary>
WriteFailedNoConnection = 12
}