Table properties
Use this function to define the API settings for each field of a table. These settings control how table fields are exposed as properties in the GraphQL API, including the property name, denormalized collection, package, and global variable initialization.
This function is also accessible directly from a table definition using the Table properties action in the Tables function (GESATB).
Note - informationFrom 2026 R1/V12.0.39, API settings for table fields are no longer edited directly in the Tables function (GESATB). They are managed exclusively in this function. The corresponding columns in the Columns tab of the Tables function are now read-only and shown for reference only.
API configuration is stored on the Table properties object (ATABPROP) separately from the table definition itself. This means a table and its API configuration can be patched independently.
Prerequisites
Refer to the implementation documentation.
Screen management
The screen consists of a header identifying the table and a grid listing the API configuration for each of its fields.
The header identifies the table whose field properties are being configured.
Field descriptions
The following fields are present in this section:
| Table (CODFIC)
|
| The code of the table whose field API properties are being configured. |
Properties grid
Each row in the grid corresponds to a field of the selected table and shows its complete API configuration. When adding a new row, only table fields that do not yet have a property configured are available for selection.
Field descriptions
The following fields are present in this grid:
| Field code (CODZONE)
|
|
Define the field name for the table as it is displayed in the software. When creating a new row, only fields that do not yet have a property configuration are available for selection.
For custom or specific fields, the field name must start with X_, Y_, or Z_.
|
| Data type (CODTYP)
|
| The field type is defined here. It characterizes the entry format (numeric, alphanumeric, date, and so on) and the consistency controls (for example, reference to a table). |
| Location
|
| Indicates the dictionary location of the field. This column is informational and follows the table field definition. |
| Activity (CODACT)
|
| An activity code makes a dictionary element optional and can identify specific or custom elements when the code starts with X, Y, or Z. |
| Dimension (DIME)
|
| Dimension of the field in the table. You can also assign the dimension based on the activity code. |
| Long title (INTITLONG)
|
| Title for the field in three lengths. The short title is limited to 12 characters, the normal title to 20 characters, and the long title to 35 characters. |
| Property name (API) (APROPNAM)
|
|
The name of the property as it will appear in the GraphQL API. Property names follow camelCase convention and must start with a letter.
Enter _ignore to explicitly exclude a field from the API. This marks the field as intentionally not published, as distinct from a field that has simply not been configured.
If a property name is already used by another field on the same table, you must enter the Denormalized collection (API) value before entering the property name. This is required when the same property name appears across multiple denormalized collections.
Note - warningDo not use the property names of the table's primary key for a property linked to a denormalized collection. This causes an error during package build after generation.
|
| Denormalized collection (API) (DENCOLGR)
|
|
The name of the denormalized collection linked to this field. A denormalized collection is required in either of the following cases:
- The field has a fixed dimension greater than 1.
- The field's dimension is determined by a sizing activity code.
Multiple fields can share the same denormalized collection, provided they have the same fixed dimension size or the same sizing activity code.
From 2026 R1/V12.0.39, a field in a denormalized collection can be assigned to a package that differs from the collection's main node package. The field is then published as a node extension in that package. This lets you extend a denormalized collection across multiple packages without modifying the main package. See Package name (API) below.
|
| Package name (API) (APACKNAM)
|
|
The API package in which the property is published. If left empty, the property is included in the default package for the table's module.
To publish a property as a node extension in a package other than the node's main package, specify the target package here. This applies to both regular properties and to fields that belong to a denormalized collection.
|
| Linked table (LIEN)
|
|
Code for a table linked to the one being modified through the current field.
For data types that reference an object, this field is assigned automatically.
|
| Link expression (EXPLIEN)
|
| This field is entered only if a linked table has been specified. If this field is not assigned, the link is made directly from the field on the current line. |
| Global variable initialization (API) (VARVALUE)
|
| Defines the initial value assigned to a global variable when it is used in a link expression or API context. This ensures the global variable has a valid default value when the table is accessed through the API. |
Patching
Because API configuration is stored on the Table properties object separately from the table itself, the two are patched independently using different patch entry types:
- ATB — patches the table structure (definition in Tables, GESATB)
- ATBP — patches the table API configuration (definition in this function, GESATBP)
When you create a patch for a table that has configured properties, Sage X3 warns you that the table is linked to table properties and that the property configuration must be aligned. You then add the corresponding Table properties entry (ATBP) to the patch.
The Table properties patch entry (ATBP) lists only the tables that have property settings. The patch then contains both the table patch (ATB) and the table properties patch (ATBP) for the same table, so that the table structure and its API configuration are delivered together.