Hello there. In this blog, I will delve into the properties of D365F&O AOT Tables in depth. When we create a new table, the first step is to update its properties, which is a straightforward task. Among all the available properties, we will focus our discussion on only the most important ones.
- Abstract
This property determines whether the table supports Inheritance. By default, it is set to "No." If you set it to "Yes," the table cannot be directly used as a target in X++ SQL statements like "update_recordset" and "select."
Please note that this property is not available when the "SupportInheritance" property is set to "No."
- AOSAuthorizationThis property defines the type of operation that a user is allowed to perform on a table, depending on their permissions. When this property is set to "None," it means that no authorization check is carried out.
- CacheLookup
This property is closely related to the table type, and warnings will be issued if an inappropriate caching level is chosen. Here are the available cache levels:
- None: No caching is applied.
- NotinTTS: Data is fetched once for each transaction.
- Found: Data is cached once it's found and not looked up again.
- EntireTable: The entire table is loaded into memory.
The cache is only refreshed when records are updated or flushed.
- ClusterIndex
This property is used only for SQL optimization.
- ConfigurationKey
Configuration keys allow a system administrator to enable and disable certain parts of an application.
- CreatedBy
Indicates whether the system maintains the CreatedBy field for the records in a table. This field contains information about who created a particular record.
- CreatedDateTime
Indicates whether the system maintains the CreationDate and CreationTime fields for the records in a table. This field contains the date when a record was created.
- CreatedTransactionId
Indicates whether the system maintains the CreatedTransactionId field for the records in a table. This field contains information about which transaction created the record.
- CreateRecIdIndex
Indicates whether an index on the Record ID field is created.
- DeveloperDocumentation
Describes the purpose of a table and explains how it is used. A description is typically no more than five sentences long and is written as a single paragraph.
- EntityRelationshipType
Classifies a table according to common entity relationship (ER) data model notation. A table is classified as an entity or a relationship. An entity represents an object. A relationship represents an association between two objects.
- Extends
Derives the table from another table that is chosen as the property value. The value is null when the SupportInheritance property is set to Yes.
- FormRef
This property specifies the display menu item that becomes active when a table is referenced. A display menu item is typically linked to a form. When you utilize a primary index field in a report, this form is accessible as a hyperlink within the report. The primary index is defined using the "PrimaryIndex" property. If you leave this field empty, the system will try to display a form with a name that matches the table's name.
- ID
Specifies the table ID generated by the system.
- IsLookup
For report models, this property determines whether the information from the table is included in other tables that reference it when generating a report model. In the context of OLAP cubes, it decides whether to create a combined dimension or a separate dimension. You can choose from the following options:
- "Yes" - Signifies that attributes from the table should be combined into the parent dimension (known as a star schema).
- "No" - Signifies that a distinct dimension should be generated for the table (known as a snowflake schema).
- Label
Specifies the label for a table.
- Model
Specifies which model the table is in. A model is a logical grouping of elements in a layer. An element can exist in exactly one model in a layer. Examples of elements are a table or class. The same element can exist in a customized version in a model in a higher layer.
- ModifiedBy
Indicates whether the system maintains the ModifiedBy field for the records in a table. This field records the person who performed the last modification to a record.
- ModifiedDateTime
Indicates whether the system maintains the ModifiedDateTime field for the records in a table. This field records the date of the last modification of a record.
- ModifiedTime
Indicates whether the system maintains the ModifiedTime field for the records in a table. This field records the time when a record was last modified.
- Name
Specifies the table name.
- OccEnabled
This property determines whether the optimistic concurrency mode is activated for a table. When this mode is enabled, data is not locked against future modifications when it's retrieved from the database. Instead, data is locked only when an actual update is carried out.
- PrimaryIndex
This property indicates the primary index for the table. It's important to note that only a unique index can be chosen as the primary index. This property serves two main purposes:
- It helps optimize database operations.
- It specifies which unique index should be used as the key for caching purposes.
If you don't specify a primary index, the system will automatically use the unique index with the lowest ID as the caching key.
- ReplacementKey
Specifies the fields to display as the identifier for data in some form controls.
- ReportRef
This property defines the output menu item that becomes active when a table is referenced. An output menu item is typically linked to a report. When you utilize a primary index field within a report, this report is accessible as a hyperlink within the report. The primary index is specified using the "PrimaryIndex" property.
- SaveDataPerCompany
Indicates whether the data for the current company is saved. If you set the property to No, data is saved without a company identifier (DataAreaId).
- TableType
It refers that it is a regular database table or a temporary table.
TitleField1, TitleField2
Enables you to do the following:
- Add table field data to a form caption.
- Display additional fields in a lookup form.
For more information, check MS documentation on it, How to: Add a Control with a Lookup Form. The TitleField1 property is also used when activating the lookup list in a field on a form. The fields you specify for TitleField1 and TitleField2 properties can be merged with the key value.
- Display field information in a tooltip.
- ValidTimeStateFieldType
Specifies the type of date-time field for the system to use when it tracks data within time spans.
- Visible
Specifies the access rights when the table is used as a data source in a form or a report. If the table is used as a data source in a form, then the access rights in the form cannot exceed the access rights defined for the table.