Server Index in NodeId|OPC UA Standard|Forum|OPC Foundation

Avatar
Search
Forum Scope


Match



Forum Options



Minimum search word length is 3 characters - maximum search word length is 84 characters
Lost password?
sp_Feed sp_PrintTopic sp_TopicIcon
Server Index in NodeId
Avatar
CHIRANTAN JOSHI
Member
Members
Forum Posts: 7
Member Since:
03/19/2024
sp_UserOfflineSmall Offline
1
03/20/2024 - 00:15
sp_Permalink sp_Print

CTT partially modifies the response where server index changes but the namespaceURI remains null.

At present we don\'t have any server which actually has implemented this non 0 server index along the proper namespaceURI.

Hence, just to meet the compliance, if we make the changes in client code, we would not be able to test it against server which offers response with server index as non 0 which might break client functionality in future when client connects to such server.

So, is it required to address CTT requirement just to meet compliance without having proper testing in place.

CTT for browse request:

/* Test prepared by Nathan Pocock nathan.pocock@opcfoundation.org

Description:

BrowseResult[0]. nodeId has a non-zero server index – node belongs

to remote server. */

 

include( "./library/Services/ViewServiceSet/Browse.js" );

function browseResponse8dot1Err032( request, response ) {

if( response === null ) return;

if( response.Results.length === 0 ) {

addError( "Not enough results to inject. Received 0." );

return;

}

else {

// modify the first record only

print( "Response.Results[0].References[0].NodeId.ServerIndex (before): " + response.Results[0].References[0].NodeId.ServerIndex );

response.Results[0].References[0].NodeId.ServerIndex = 10;

print( "Response.Results[0].References[0].NodeId.ServerIndex (after) : " + response.Results[0].References[0].NodeId.ServerIndex );

}

}

 

BrowseHelper.Execute({ ServiceResult: StatusCode.Good, ExternalFunction: browseResponse8dot1Err032 });

 

Thanks,

Chirantan

Avatar
Sebastian Allmendinger
New Member
Members
Forum Posts: 1
Member Since:
07/16/2021
sp_UserOfflineSmall Offline
2
03/11/2026 - 09:38
sp_Permalink sp_Print

Hi,

the test scripts for client are mainly helper scripts and the behavior must be validated manually.

So for this specific test case - if the server returns a NodeId from an external server -, the expectation is:

Client identifies the Node is different because it is stored on a remote Server. The Client may display or limit the options available on the node or hide the node etc (per Client documentation).

If the client meets this expectation, then it's fine.

I'm just curious, is your client currently throwing an error because the NodeId is invalid?

Nevertheless, your analysis, that the test script also have to add the NamespaceUri when modifying the BrowseResponse, is correct. The NamespaceUri shall be used if a node from a remote server is returned in the BrowseResponse.
On the other hand, the CTT would also have to modify the ServerArray to provide information about the remote server because clients may read that array to access the description of the remote server.

Bugs in the CTT or in the test scripts should be reported here.

Forum Timezone: America/Phoenix
Most Users Ever Online: 975
Currently Online:
Guest(s) 44
Currently Browsing this Page:
1 Guest(s)
Top Posters:
Forum Stats:
Groups: 2
Forums: 10
Topics: 1515
Posts: 5128