View Issue Details

IDProjectCategoryView StatusLast Update
001048410000-004: ServicesSpecpublic2025-09-25 13:59
ReporterAlexander Allmendinger Assigned ToMatthias Damm  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.05.06 
Summary0010484: Conflicting or unclear requirements for NULL Values on DataValues in Part 3 and Part 4
Description

The requirements stated in Part 3 and Part 4, which are in the Additional Information field, can be read to be conflicting. While Part 3 describes the possibility to return NULL values for nullable datatypes Part 4 states that NULL values can only be received with a bad severity.

Part 3:
This Property specifies if a null value is allowed for the Value Attribute of a DataVariable which has a nullable DataType.
Part 4:
If the DataType of the Variable is not BaseDataType, the Severity shall be BAD if the value is NULL.

There are cases where both requirements can be fulfilled like writing a NULL value by a client and the server returns a Bad severity when the value is read from clients. But this use case would ideally rather be done with a proper WriteMask and writing the StatusCode directly. For other cases it is not clear which spec applies.

Wording should be enhanced one way or the other to be clear in which cases a NULL needs to be expected by clients and what servers are allowed to provide for the different use cases.
When working on the solution also look at Arrays, Structures, Alarm Instances. Also consider use cases where an application wants to reset values because there is currently no value (Bad_NoValue is per definition only for no initial value).

Additional Information

Part 3 - 5.6.2 Variable NodeClass - AllowNulls

The AllowNulls Property is only used for DataVariables. It does not apply to Properties.
This Property specifies if a null value is allowed for the Value Attribute of a DataVariable which has a nullable DataType. If it is set to TRUE, the Server may return null values and accept writing of null values. If it is set to FALSE, the Server shall never return a null value and shall reject any request writing a null value.
If this Property is not provided, it is Server-specific if null values are allowed or not.

Part 4 - 7.11.5 StatusCode assigned to a value

If the Server has no known value - in particular when Severity is BAD, it shall return a NULL value. If the DataType of the Variable is not BaseDataType, the Severity shall be BAD if the value is NULL. If a Variable is created and no default value or initial value is available, the StatusCode shall be Bad_NoValue.

TagsNo tags attached.
Commit Version1.05.06
Fix Due Date2025-09-30

Relationships

related to 0009860 closedJeff Harding 10000-003: Address Space Clarification needed for AllowNulls property 
related to 0007307 closedMatthias Damm 10000-004: Services Handling of optional methods (variables) not implemented but imported from nodeset 

Activities

Jim Luth

2025-09-25 07:09

administrator   ~0023345

Part 3 has now been enhanced with: "If this Property is not provided, it is Server-specific if null values are allowed or not for nullable Datatypes."

Assigned to Matthias to fix part 4. "If the DataType of the Variable is not BaseDataType, the Severity shall be BAD if the value is NULL for a non-nullable Datatype."

Matthias Damm

2025-09-25 12:44

developer   ~0023365

Added proposed extension "for a non-nullable Datatype" in "If the DataType of the Variable is not BaseDataType, the Severity shall be BAD if the value is NULL for a non-nullable Datatype."

Jim Luth

2025-09-25 13:59

administrator   ~0023371

Agreed to changes edited in F2F meeting.

Issue History

Date Modified Username Field Change
2025-08-26 16:10 Alexander Allmendinger New Issue
2025-08-26 16:11 Alexander Allmendinger Additional Information Updated
2025-08-26 16:13 Alexander Allmendinger Additional Information Updated
2025-08-26 16:14 Alexander Allmendinger Relationship added related to 0009860
2025-08-26 16:14 Alexander Allmendinger Relationship added related to 0007307
2025-08-26 16:20 Alexander Allmendinger Description Updated
2025-09-25 07:09 Jim Luth Note Added: 0023345
2025-09-25 07:09 Jim Luth Assigned To => Matthias Damm
2025-09-25 07:09 Jim Luth Status new => assigned
2025-09-25 07:09 Jim Luth Commit Version => 1.05.06
2025-09-25 07:09 Jim Luth Fix Due Date => 2025-09-30
2025-09-25 12:44 Matthias Damm Status assigned => resolved
2025-09-25 12:44 Matthias Damm Resolution open => fixed
2025-09-25 12:44 Matthias Damm Note Added: 0023365
2025-09-25 13:59 Jim Luth Status resolved => closed
2025-09-25 13:59 Jim Luth Fixed in Version => 1.05.06
2025-09-25 13:59 Jim Luth Note Added: 0023371