This Serviceis used to request that the Servertranslates one or more browse paths to NodeIds. Each browse path is constructed of a starting Nodeand a RelativePath. The specified starting Nodeidentifies the Nodefrom which the RelativePathis based. The RelativePathcontains a sequence of ReferenceTypesand BrowseNames.
One purpose of this Serviceis to allow programming against type definitions. Since BrowseNamesshall be unique in the context of type definitions, a Clientmay create a browse path that is valid for a type definition and use this path on instances of the type. For example, an ObjectType“Boiler” may have a “HeatSensor” Variableas InstanceDeclaration. A graphical element programmed against the “Boiler” may need to display the Valueof the “HeatSensor”. If the graphical element would be called on “Boiler1”, an instance of “Boiler”, it would need to call this Servicespecifying the NodeIdof “Boiler1” as starting Nodeand the BrowseNameof the “HeatSensor” as browse path. The Servicewould return the NodeIdof the “HeatSensor” of “Boiler1” and the graphical element could subscribe to its Value Attribute.
If a Nodehas multiple targets with the same BrowseName, the Servershall return a list of NodeIds. However, since one of the main purposes of this Serviceis to support programming against type definitions, the NodeIdof the Nodebased on the type definition of the starting Nodeis returned as the first NodeIdin the list.
Table 40defines the parameters for the Service.
Table 40– TranslateBrowsePathsToNodeIds Service Parameters
Name |
Type |
Description |
Request |
|
|
requestHeader |
RequestHeader |
Common request parameters (see 7.33for RequestHeaderdefinition). |
browsePaths [] |
BrowsePath |
List of browse paths for which NodeIdsare being requested. This structure is defined in-line with the following indented items. |
startingNode |
NodeId |
|
relativePath |
RelativePath |
The path to follow from the startingNode. The last element in therelativePathshall always have a targetNamespecified. This further restricts the definition of the RelativePath type. The Servershall return Bad_BrowseNameInvalidif the targetNameis missing. The RelativePathstructure is defined in 7.31. |
|
|
|
Response |
|
|
responseHeader |
ResponseHeader |
Common response parameters (see 7.34for ResponseHeaderdefinition). |
results [] |
BrowsePathResult |
List of results for the list of browse paths. The size and order of the list matches the size and order of the browsePathsrequest parameter. This structure is defined in-line with the following indented items. |
statusCode |
StatusCode |
StatusCodefor the browse path (see 7.39for StatusCodedefinition). |
targets [] |
BrowsePathTarget
|
List of targets for the relativePathfrom the startingNode. This structure is defined in-line with the following indented items. A Servermay encounter a Referenceto a Nodein another Serverwhich it cannot follow while it is processing the RelativePath. If this happens the Serverreturns the NodeIdof the external Nodeand sets the remainingPathIndexparameter to indicate which RelativePathelements still need to be processed. To complete the operation the Clientshall connect to the other Serverand call this service again using the target as the startingNodeand the unprocessed elements as the relativePath. |
targetId |
ExpandedNodeId |
The identifier for a target of the RelativePath. |
remainingPathIndex |
Index |
The index of the first unprocessed element in the RelativePath. This value shall be equal to the maximum value of Indexdata type if all elements were processed (see 7.18for Indexdefinition). |
diagnosticInfos [] |
DiagnosticInfo |
List of diagnostic information for the list of browse paths (see 7.12for DiagnosticInfo definition). The size and order of the list matches the size and order of the browsePathsrequest parameter. This list is empty if diagnostics information was not requested in the request header or if no diagnostic information was encountered in processing of the request. |
Table 41defines the Serviceresults specific to this Service. Common StatusCodesare defined in 7.39.
Table 41– TranslateBrowsePathsToNodeIds Service Result Codes
Symbolic Id |
Description |
Bad_NothingToDo |
See Table 182for the description of this result code. |
Bad_TooManyOperations |
See Table 182for the description of this result code. |
Table 42defines values for the operation level statusCodeparameters that are specific to this Service. Common StatusCodesare defined in Table 183.
Table 42– TranslateBrowsePathsToNodeIds Operation Level Result Codes
Symbolic Id |
Description |
Bad_NodeIdInvalid |
See Table 183for the description of this result code. |
Bad_NodeIdUnknown |
See Table 183for the description of this result code. |
Bad_NothingToDo |
See Table 182for the description of this result code. This code indicates that the relativePath contained an empty list. |
Bad_BrowseNameInvalid |
See Table 183for the description of this result code. This code indicates that a TargetName was missing in a RelativePath. |
Uncertain_ReferenceOutOfServer |
The path element has targets which are in another Server. |
Bad_TooManyMatches |
The requested operation has too many matches to return. Users should use queries for large result sets. Serversshould allow at least 10 matches before returning this error code. |
Bad_QueryTooComplex |
The requested operation requires too many resources in the Server. |
Bad_NoMatch |
The requested relativePath cannot be resolved to a target to return. |