7.1 ResultManagementType ObjectType Definition

7.1.1 Overview

The ResultManagementType provides mechanism to access results generated by the underlying system. Results can be managed in a local result store of the Server. Methods and Objects with Variables as well as Events and external file stores can be used to provide the results to the Client. The ObjectType is formally defined in Table 1.

Table 1 – ResultManagementType Definition
Attribute Value
BrowseNameResultManagementType
IsAbstractFalse
DescriptionProvides mechanism to access results generated by the underlying system.
References Node Class BrowseName DataType TypeDefinition Other
Subtype of the 0:BaseObjectType defined in OPC 10000-5
0:HasPropertyVariable0:DefaultInstanceBrowseName0:QualifiedName0:PropertyType
0:HasComponentMethodGetResultByIdO
0:HasComponentMethodGetResultIdListFilteredO
0:HasComponentMethodReleaseResultHandleO
0:HasComponentMethodGetLatestResultO
0:HasComponentObjectResultTransferResultTransferTypeO
0:HasComponentObjectResults0:FolderTypeO
0:HasComponentMethodAcknowledgeResultsO
0:GeneratesEventObjectTypeResultReadyEventType
Conformance Units
Machinery-Result Types

The optional ResultTransfer Object is used to transfer the content of a result by a temporary file transfer. In order to be called by the Client, the Client first need to receive a ResultId.

The optional Results Object is used to organize available results of the system which the Server decides to expose in the AddressSpace. It may contain no result if no result is available, if the Server does not expose results in the AddressSpace at all or if no available result matches the criteria of the Server for exposure in the AddressSpace. It may contain multiple results if multiple results are available.

The components of the ResultManagementType have additional subcomponents which are defined in Table 2.

Table 2 – ResultManagementType Additional Subcomponents
Source Path Reference NodeClass BrowseName DataType TypeDefinition Others
Results0:HasComponentVariable<ResultVariable>ResultDataTypeResultTypeOP

Each <ResultVariable> represents a result. If partial results are supported, the Variable value gets updated with partial results until the final result is provided as value.

The child Nodes of the ResultManagementType have additional Attribute values defined in Table 3.

Table 3 – ResultManagementType Attribute values for child Nodes
BrowsePath Value Attribute Description Attribute
0:DefaultInstanceBrowseNameResultManagement The default BrowseName for instances of the type.

7.1.2 GetResultById

The Method GetResultById is used to retrieve a result. Depending on the design of the system, the Client may be informed by Events of ResultReadyEventType that a new result is available. Then, the Client might fetch this result using the information provided by Events of ResultReadyEventType which is defined in Section 8.1.

Since the ResultId is supposed to be system-wide unique, this Method shall return only a single result. If the system supports partial results, only the latest partial result, or the final result, shall be returned.

Since there may be additional result content to be retrieved by temporary file transfer, the Server should keep result data available, resources permitting, until the Client releases the handle by calling ReleaseResultHandle. However, the Client cannot rely on the data to remain available until then.

The signature of this Method is specified below. Table 4 and Table 5 specify the Arguments and AddressSpace representation, respectively.

Signature

	GetResultById (
		[in]	0:TrimmedString	resultId,
		[in]	0:Int32	timeout,
		[out]	0:Handle	resultHandle,
		[out]	ResultDataType	result,
		[out]	0:Int32	error)
Table 4 – GetResultById Method Arguments
Argument Description
resultIdSystem-wide unique identifier for the result.
timeout

With this argument the Client can give a hint to the Server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the Client will not need anything besides the data returned by the method call.

A value < 0 indicates that the Client cannot give an estimate.

The Client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the Server to optimize its resource management.

resultHandle

The Server shall return to each Client requesting result data a system-wide unique handle identifying the result set / Client combination. This handle should be used by the Client to indicate to the Server that the result data is no longer needed, allowing the Server to optimize its resource handling.

If the instance of ResultManagementType does not support the ReleaseResultHandle Method, the resultHandle should always be set to 0.

If the error is set to a value other than 0, the resultHandle may be set to 0.

resultThe result including metadata. May be set to Null, if error is set to a value other than 0.
error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 5 – GetResultById Method AddressSpace Definition
Attribute Value
BrowseNameGetResultById
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

7.1.3 GetResultIdListFiltered

The Method GetResultIdListFiltered is used to get a list of results matching certain filter criteria. The signature of this Method is specified below. Table 6 and Table 7 specify the Arguments and AddressSpace representation, respectively.

Signature

	GetResultIdListFiltered (
		[in]	0:ContentFilter			filter,
		[in]	0:RelativePath[]			orderedBy,
		[in]	0:UInt32			maxResults,
		[in]	0:Int32			timeout,
		[out]	0:Handle			resultHandle,
		[out]	0:TrimmedString[]		resultIdList,
		[out]	0:Int32			error)
Table 6 – GetResultIdListFiltered Method Arguments
Argument Description
filterFilter used to filter for specific results based on the meta data of the results. Valid BrowsePaths used in the filter can be built from the fields of the ResultReadyEventType, the ResultType VariableType or the ResultDataType or corresponding subtypes.
orderedBy

An array of RelativePaths identifying the ordering criteria for the results. If the array is null or empty, no ordering is executed.

If several RelativePaths are provided, the first entry in the array is used as first ordering criteria, etc.

maxResultsDefines how many resultIds the Client wants to receive at most. If no maximum should be provided, it is set to 0.
timeout

With this argument the Client can give a hint to the Server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the Client will not need anything besides the data returned by the method call.

A value < 0 indicates that the Client cannot give an estimate.

The Client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the Server to optimize its resource management.

resultHandle

The Server shall return to each Client requesting result data a system-wide unique handle identifying the result set / Client combination. This handle has to be used by the Client to release the result set.

If the instance of ResultManagementType does not support the ReleaseResultHandle Method, the resultHandle should always be set to 0.

If the error is set to a value other than 0, the resultHandle may be set to 0.

resultIdListList of resultIds of results matching the Filter.
error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 7 – GetResultIdListFiltered Method AddressSpace Definition
Attribute Value
BrowseNameGetResultIdListFiltered
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

7.1.4 ReleaseResultHandle

The Method ReleaseResultHandle is used to inform the Server that the Client has finished processing a given result set allowing the Server to free resources managing this result set.

The Server should keep the data of the result set available for the Client until the ReleaseResultHandle Method is called or until a timeout given by the Client has expired. However, the Server is free to release the data at any time, depending on its internal resource management, so the Client cannot rely on the data being available. ReleaseResultHandle is merely a hint allowing the Server to optimize its internal resource management. For timeout usage see the description in Section 6.4.

The signature of this Method is specified below. Table 8 and Table 9 specify the Arguments and AddressSpace representation, respectively.

Signature

	ReleaseResultHandle (
		[in]	0:Handle	resultHandle,
		[out]	0:Int32	error)
Table 8 – ReleaseResultHandle Method Arguments
Argument Description
resultHandleHandle returned by GetResultById or GetResultIdListFiltered, identifying the result set/Client combination.
Error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 9 – ReleaseResultHandle Method AddressSpace Definition
Attribute Value
BrowseNameReleaseResultHandle
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

7.1.5 GetLatestResult

The Method GetLatestResult is used to retrieve the latest result created for the instance of ResultManagementType.

Since there may be additional result content to be retrieved by temporary file transfer, the Server should keep result data available, resources permitting, until the Client releases the handle by calling ReleaseResultHandle. However, the Client cannot rely on the data to remain available until then.

The signature of this Method is specified below. Table 10 and Table 11 specify the Arguments and AddressSpace representation, respectively.

Signature

	GetLatestResult (
		[in]	0:Int32	timeout,
		[out]	0:Handle	resultHandle,
		[out]	ResultDataType	result,
		[out]	0:Int32	error)
Table 10 – GetLatestResult Method Arguments
Argument Description
timeout

With this argument the Client can give a hint to the Server how long it will need access to the result data.

A value > 0 indicates an estimated maximum time for processing the data in milliseconds.

A value = 0 indicates that the Client will not need anything besides the data returned by the method call.

A value < 0 indicates that the Client cannot give an estimate.

The Client cannot rely on the data being available during the indicated time period. The argument is merely a hint allowing the Server to optimize its resource management.

resultHandle

The Server shall return to each Client requesting result data a system-wide unique handle identifying the result set / Client combination. This handle should be used by the Client to indicate to the Server that the result data is no longer needed, allowing the Server to optimize its resource handling.

If the instance of ResultManagementType does not support the ReleaseResultHandle Method, the resultHandle should always be set to 0.

If the error is set to a value other than 0, the resultHandle may be set to 0.

resultThe result including metadata.
error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Table 11 – GetLatestResult Method AddressSpace Definition
Attribute Value
BrowseNameGetLatestResult
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory

7.1.6 AcknowledgeResults

The Method AcknowledgeResults is used to inform the Server that the Client has finished the processing of given results allowing the Server to free resources managing those results.

The Server may be configured to keep the results available for the Client until the AcknowledgeResults Method is called. However, the Server is free to release the results at any time, depending on its internal resource management, so the Client cannot rely on the data being available.

Note: It is recommended that this Method is used only by the Client that is responsible for exclusively storing the results.

The signature of this Method is specified below. Table 12 and Table 13 specify the Arguments and AddressSpace representation, respectively.

Signature

	AcknowledgeResults (
		[in]	0:TrimmedString[]	resultIds,
		[out]	0:Int32[]		errorPerResultId,
		[out]	0:Int32		error
	)
Table 12 – AcknowledgeResults Method Arguments
Argument Description
resultIdsList of result identifiers to be acknowledged.
errorPerResultId

Shall be null or empty if error equals 0. Shall have the same length as resultIds if error is not equal 0. Indicates for each resultId in resultIds, if the acknowledge was successful.

Per entry:

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

error

0 – OK

Values > 0 are reserved for errors defined by this and future standards.

Values < 0 shall be used for application-specific errors.

Shall be not equal 0 if any resultId of resultIds was not successfully acknowledged. Shall be 0 if all resultIds where acknowledged successful.

Table 13 – AcknowledgeResults Method AddressSpace Definition
Attribute Value
BrowseNameAcknowledgeResults
References Node Class BrowseName DataType TypeDefinition ModellingRule
0:HasPropertyVariable0:InputArguments0:Argument[]0:PropertyType0:Mandatory
0:HasPropertyVariable0:OutputArguments0:Argument[]0:PropertyType0:Mandatory