Search code examples
opc-uamilo

Select clauses in event filter


I have two questions concerning events. (I am not sure if they are concerned with Milo (which I am using right now) or OPCUA in general.):

1) I created an EventFilter which is used in a MonitoringParameters object.

The selectClauses of the filter is an array of SimpleAttributeOperands each of which has the NodeId of my EventType plus the QualifiedName of the properties I want to retrieve.

The event type and it's properties have ns=2, but weirdly I have to specify the qualified names like QualifiedName(ns=0, property_name).

This works, but I found this rather confusing. Specifying ns=2 yields null values, which leads to my second question:

2) In the same setup. When I add a SimpleAttribute referring to a qualified name which does not exist on the server I receive a null value. I would have expected that this throws an error instead (like in SQL).

Any help is appreciated very much. Many thanks in advance!


Solution

  • The first scenario you describe sounds like a bug in the server.

    The second sounds correct. You may have received an indication that the field didn't exist in your select clause results at the time you created it.

    The spec has this to say about it:

    A null value is returned in the corresponding event field in the Publish response if the selected field is not part of the Event or an error was returned in the selectClauseResults of the EventFilterResult.