Properties
Less than to read
Properties are the fields inside the nodes.
Most of the properties of a node are mapped to table fields in X3. The Table dictionary (GESATB) contains the metadata related to node properties.
Node properties defined in the Table dictionary are used by all the nodes based on this table.
Metadata
New fields have been added to the Table dictionary to define properties:
- Property name (API): Name of the property linked to this field. This is mandatory of course, if that table field is part of a node.
- Denormalized collection (API): This is used only for indexed (dimensioned) fields. Indexed data is represented as a denormalized collection in GraphQL and has its own definitions and references. Read the Denormalized collection for more details.
- Package name (API): If a package name is defined here, the property will be published in an extension package different than the node’s original package as a node extension. This allows you to separate your deliveries into different packages that can be turned on or off depending on the requirements. Read the Packages documentation for more details on node extensions.
- Global variable init (API): If the link expression for a field contains a global variable, we can setup the content of this global variable in this field. Read the Legislation documentation for more details.
Naming convention
Property names are written following the camelCase convention. This means no capital letter on the first noun and must start with a letter.
Property type
Properties have the same type as the table field they represent.
The most common GraphQL types are string, integer, decimal, date, enum, and boolean.
Enum represents the Sage X3 local menu.
Localized descriptions:
- X3 translatable texts are managed in the GraphQL schema.
- Regarding the TypeScript code generator:
- For basic joins, GraphQL framework manages the link to translations without adding any additional code to the TypeScript node definition. This happens for joins with less than two fields in the
ATEXTRA
key. - For complex joins, the code generator will add additional references for localizedStrings to the node TypeScript definition. This happens for joins with more than two fields in the
ATEXTRA
key.
Dimensioned fields are not supported in localized string binding tables.