What is an Extended Data Type?
Extended Data Types are commonly mentioned as EDTs. They extend base types, such as
Strings, and Integers, by adding properties that affect the looks, behavior, data
(size), and table reference/relationships. This means we can have types like Customer
account that has a label, size, table relation information, and other properties that provide
consistency and greater understanding within the data model.
Another example of an EDT is Name. Should we change the StringSize property of this
field, all fields extends this EDT are going to be adjusted; and if we reduce string size, it’ll truncate
the values to the new size.
All fields should extend an EDT or an Enum.
How to create Extended Data Type?
We will create an EDT for the Vehicle number. A vehicle table is a similar pattern to
customers, and vendors, and we will extend the AccountNum Extended Data Type.
To create the EDT, follow these steps:
- EDT is created like all new AX artifacts, by pressing
Control+Shift+A or right-clicking on a folder in the solution explorer and choose
Add | New Item.
- Select EDT String as Data Type.
- In the Name field, enter ConVehicleId and press Add.
- Next we need to complete the property sheet, the main properties are covered in
the following table.
- If this EDT is to be used as a primary key field, we need to populate the Table References.
- Press save or save all in the toolbar to save the changes.
- Property Value
- Label Vehicle Id
- Help Text The Vehicle Number
- Extends AccountNum
Using of EDT
There is a back and forth element to EDT creation, when we are creating a primary key
field. We can’t create the field without the EDT, yet we can’t complete the EDT with the
field being on the table.
EDTs are types. They must therefore be globally unique amongst all other types, such as
tables, views, data entities, enums, classes and other EDTs. The EDT’s properties aren’t just
defaults, but they control behavior too. Should we add an unbound control to a form based
on an EDT, the EDT can use the Table Reference property to provide a drop down list,
and the contents will be taken from a field group on the table.
EDTs can also extend other EDTs, although these child EDTs can only affect appearance
properties. This is useful when we want to enforce physical storage attributes of a range of
types, but have a different label depending on context. If we change the size of a base EDT,
all EDTs that extend it will be affected and consequently all of the fields that are based on
We often extend specific EDTs, when creating an EDT for certain types of fields