Definition attributes

Variables can be defined with meta-data information.

Basics

To specify metadata information when defining a variable, use the ATTRIBUTES clause right after the type:
DEFINE myvar INTEGER ATTRIBUTES( ... )
Note: When defining attributes for complex types such as arrays, dictionaries or records, the ATTRIBUTES clause must be specified right after the complex type keywords:
DEFINE uuids DYNAMIC ARRAY ATTRIBUTES(json_name="uuid-list") OF STRING
DEFINE customer RECORD ATTRIBUTES(json_name = "customer-record")
          ...
       END RECORD

JSON serialization attributes

To define JSON serialization options, use variable definition attributes such as json_null and json_name:
DEFINE rec RECORD
   cust_id INTEGER ATTRIBUTES(json_null="null"),
   cust_name INTEGER ATTRIBUTES(json_name="Customer Name"),
   ...
   orderlist DYNAMIC ARRAY ATTRIBUTES(json_null="undefined") OF RECORD
      ...
      END RECORD,
   ...
 END RECORD
List of supported JSON attributes for variable definitions:
  • json_null (values can be "null" or "undefined")
  • json_name

For more details about JSON serialization attributes see BDL names and JSON element names.

XML serialization attributes

Variable attributes are also used when defining variables for XML-based Web Services:
DEFINE data RECORD ATTRIBUTES(XMLName="Demo"),
     val1 INTEGER ATTRIBUTES(XMLName= "Value1"),
     val2 STRING ATTRIBUTES(XMLName= "Value2")
     attr INTEGER ATTRIBUTES(XMLAttribute,XMLName= "MyAttr")
END RECORD

For more details about XML attributes, see Attributes to customize XML serialization.