Smart Tables#
Smart Tables are general purpose context resolution tables to store data records. Each Smart Table has its own database table in the database and therefore requires a unique metadata definition. In addition, search precedence keys and order are a important part of the Smart Table definition.
System Smart Tables#
The Critical Manufacturing installation is populated automatically with a set of Smart Tables which are necessary for the normal functioning of the system:
| Name | Description |
|---|---|
| ApplicationSettingsContext | Used to resolve application settings (e.g. BackgroundColor, ForegroundColor, Layout customization, etc) |
| AreaPrintableDocumentContext | Used to obtain a list of PrintableDocuments for a certain Area |
| BOMContext | Used to attach a specific BOM to a specific context |
| ChangeSetApprovalContext | Used to resolve a specific change set approval workflow or approval role |
| E58Mapping | Used to resolve e58 codes |
| FactoryAutomationControllerVersionOverrideContext | Used to resolve FactoryAutomation Controller version overrides for Automation Jobs |
| GenerativeAIPrompt | SmartTable to map the prompt prefix for a specific GenerativeAI Action and EntityType to use as context for the LLM |
| IntegrationHandlerResolution | Used to resolve the integration handler |
| KeyboardShortcut | Used to resolve keyboard shortcuts for performing certain actions |
| LayoutPersonalizationContext | Used to resolve layout personalization settings (e.g. Column widths, Column visibility, etc) |
| LayoutPersonalizationContext | Used to resolve layout personalization settings (e.g. Column widths, Column visibility, etc) |
| MapDefinitionContext | Used to attach a specific Map Definition to a specific context |
| MaterialChecklistContext | Used to resolve the Checklist for the specific Material context |
| MaterialContainerTypeContext | This table is used to resolve the possible Container Types for a Material at a particular context. |
| MaterialDataCollectionContext | Used to resolve the DataCollection for the specific Material context |
| MaterialDocumentContext | Used to resolve the Documents to be shown for a Material Context. |
| MaterialDurablesContext | This smart table is used to resolve the durables to be used for a particular material context. |
| MaterialInProcessVerificationContext | Manages the association between the Material and the In-Process Maintenance Plan. |
| MaterialPackingContext | This Smart Table is used to resolve the Product Package to be used for a given context and Package Level |
| MaterialPackingPrintableDocumentContext | This Smart Table is used to resolve the documents and labels to print for a particular package |
| MaterialPrintableDocumentContext | Used to obtain a list of PrintableDocuments for a given Material context |
| NameGeneratorContext | Used to resolve the name generator to be used in a certain operation |
| PrinterTypePrintersContext | Used to obtain a list of Printers of a certain PrinterType |
| ProductComponentMapping | This generic table is used to store Product Component mapping information to assist in correcting imported BOMs internal part numbers. |
| ReasonReworkLimitsContext | Used to define Reason Rework Limits Context. |
| RecipeContext | Used to resolve the correct Recipe to be used at a given Resource context |
| RecipeParameterOverrideContext | Used to resolve Recipe Parameter overrides |
| ResourceCapacity | Resources of SchedulingType: Batch and Tunnel. |
| ResourceChartContext | Used to resolve the Chart for specific Resource context |
| ResourceChecklistContext | Used to resolve the Checklist for the specific Resource context |
| ResourceDataCollectionContext | Used to resolve the DataCollection for the specific Resource context |
| ResourceDocumentContext | Used to resolve the Documents to be shown for a Resource Context. |
| ResourceIdealCycleTime | The machine supplier provided unit cycle time. |
| ResourceProcessTime | Resource Process Times is used for Scheduling purposes. It defines a fixed (quantity independent) and variable (quantity dependent) processing time. |
| ResourceReplenishmentContext | Used to define Resource Replenishment Context. |
| ResourceRunningMode | Used to define the possible running modes for a Resource |
| ResourceSubstrateMapBinConverter | This smart table is used to resolve the Bin Converters to be applied for a Resource when downloading or uploading Substrate Maps. |
| SchedulingTransferMaterialSize | Used to resolve the Transfer Material Size for a specific context. |
| ServiceContext | Used to resolve the service for the specific context |
| StepCertificationRequirementsContext | This table is used to store Step Certification Requirements |
| StepChartContext | Used to resolve the Chart for the specific Step context |
| StepInspectionPlanContext | The association between the Step and the Inspection Plan is established via context |
| StepLineFlowContext | The association between the Step and the Line Flow is established via context. |
| StepProductYieldAndCycleTimeContext | Used to resolve the Yield and Cycle Time for a specific Product Context |
| StepReworkLimitsContext | Used to define Step Rework Limits Context. |
| StepSamplingPatternContext | The association between the Step and the SamplingPattern us established via context |
| StepSplitTrackOutContext | Used to resolve some information for the split and track-out operation. |
| TimeConstraintsContext | Used to resolve the Time Constraints |
| UIPageContext | Used to resolve UIPage Exceptions for UI Actions (e.g. Material.TrackIn for a specific context) |
Table: System Smart Tables
Smart Table Page Views#
Data View#
Lists all the data rows that are included in the Smart Table. You can add new rows or edit the existing ones. You can also export data to file.
Definition View#
- Smart Table Definition - displays information on the actual table definition.
- Properties - displays information on the actual table definition.
- Precedence Keys - displays information on the actual table definition.
History View#
This view combines information concerning other objects that have references to the current Smart Table object:
- History - displays the history of the operations, associated information, user(s) performing the changes and date and time of the changes.
Creating a Smart Table#
SmartTable.Create
Step 1: General Data#
- Enter a name for the Smart Table.
- Optionally, enter the description.
- Specify whether the table should keep the History information.
- Define the number of days to display in the history by default.
- Select whether multiple values are allowed for the same keys.
- Select whether change control is activated for the Smart Table. See Change Controlled Smart Tables below for more information.
- Enter a key to be used for reference in Localized Messages.
- Optionally, define a Rule to be used for Pre-validating data.
- Optionally, define a Rule to be used for Post-validating data.
- Select Next to define the Smart Table Properties.
Info
Pre- and Post-validating data rules are related to the context of your Smart Table. You can have distinct rules for pre- and post-validation, which can be used when you perform an update or insert a new row. You can associate a process rule, for example, a business rule, DEE Action or other, to automatically run before and after a new value/row is changed. By executing these rules you can run extra operations on your data through the DEE engine.
Step 2: Properties#
-
Add or remove as many properties as needed and you can also order them (use to add, to remove, and or to order properties). For each property, you need to enter:
- Name.
- Description.
- Key status (setting a field as Key forces the Mandatory status to be set as well).
- Mandatory status.
- Whether the property will be indexed in the database.
- Reference type (depending on the reference, additional details need to be provided below):
- None
- Entity Type
- Entity Version - both the specific versioned Entity Type and the property to which it refers are required.
- Enum - specific enumeration needs to be specified.
- Lookup Table
- Lookup Value - name of the table to use as a reference for the value.
- Data Type - depending on the reference type.
- Size (applicable only to some data types - for example, VarChar, Decimal, among others).
- Decimal places, applicable only to Decimal data type. Must be less or equal to the Size.
- Validation range (optional) - a string like '[start,end]' to designate ranges between start and end. An open bracket at the end excludes the limit values, for example, [1,10] excludes the number 1 and includes the number 10.
- Validation regular expression (optional).
- Default value (optional).
-
Select Next to configure the Precedence Keys.
Warning
Decimal range validations must use the current cultured defined decimal separator.
In SQL Server, there is a 900-byte limit for the maximum total size of all index key columns.
Step 3: Precedence Keys#
This step is used to configure the precedence keys for the Smart Tables. Searches are always performed in the order that the precedence keys are defined.
-
Add and remove precedence keys by selecting or , order them by selecting or .
-
Select Create to complete the operation.
Step 3: Generating Schema#
SmartTable.GenerateSchema
Steps 1-3 are used to create the table definition. To create the schema in the database and to be able to use it anywhere in the system, the Smart Table must be actually created and made active by inserting it into the database.
This schema generation is achieved by pressing the Generate Schema button from the Smart Table Definition View.
Info
To generate the schema, the table must have at least one key defined.
Editing a Smart Table Definition#
SmartTable.Edit
To edit the definition of the Smart Table, open the Definition View and select the button. A wizard will be displayed to allow editing the basic details as well as adding or removing properties or precedence keys. Selecting Finish will save the new settings.
Warning
The steps above are used only to modify the table definition. To apply the changes, it is necessary to select the Generate Schema button. Once the schema has been generated for a Smart Table, it is no longer possible to remove properties or precedence keys.
Terminating a Smart Table#
SmartTable.Delete
To terminate a Smart Table, it is necessary to open the Smart Table details and select the Terminate button.
Warning
A Smart Table cannot be terminated if referenced by an active object.
Editing Smart Tables Data#
SmartTable.EditData
To edit a Smart Table data, proceed as follows:
- Open the desired Smart Table Data View.
- Add new records by selecting on the top ribbon.
- Selecting the button will open a dialog that allows the user to edit existing records.
- Remove existing records by selecting the values and selecting the Remove button on the top ribbon.
- Select Save to commit the changes.
Info
To edit the Smart Table values, the table must have been generated.
Note
To edit data in a Smart Table that refers to a Context Resolution table, you must have the EntityType.Edit feature assigned to your User/Role for the Entity Type associated with the entry in the Context Resolution Smart Table. For more information, see Overriding the System Context Resolutions Smart Tables ⧉.
When a context table is relevant to a specific entity, it may be accessed directly through the Contexts view of that same entity. The context table will be automatically filtered to display only the entries pertaining to the entity.
Copy Smart Tables Data#
SmartTable.EditData
To copy Smart Table data, proceed as follows:
- Open the Data View.
- Select one or more records from the table.
-
Select Copy on the top ribbon.
-
In the wizard, select the record you want to copy.
- Select the copy icon at the top of the grid.
- For each copied record, make the changes you need.
-
Select Add to complete the operation.
It is also possible to copy records by using the Add operation on the top ribbon.
Change Controlled Smart Tables#
Change control can be enabled or disabled by configuration in the Smart Table definition. When change control is enabled, modifications to the Smart Table must follow the normal Change Set approval process.
When a Smart Table is embedded within an object (for example, StepChartContext) which is part of the Step, the Smart Table can no longer be edited as part of the main object. A separate Wizard will be used instead to manage the changes to the Smart Table as shown in the picture below.
Info
It's not possible to have two pending changes for the same Smart Table row.
It is possible to visualize the pending changes by selecting the Pending Changes tab.
Revision resolution#
When using versioned entities as keys or values in Smart Tables, be aware of the following system algorithms:
Using the default revision#
In this situation, the BOM used as value in the table is defined without any revision, which in effect amounts to declaring that the default revision should be taken into consideration when resolving the entry for that precedence key.
If you decide to add a new entry and this time attempt to reference the specific default BOM revision, the system will not allow that new entry because an entry already exists for the same precedence key, even though the specific revision is not referenced.
This happens because the system will use the default revision to load the entity using the name of the entity. This way, the resolution for that specific revision, despite not being visually identical, is in fact equivalent to the existing table entry and cannot be duplicated.
Precedence Key Uniqueness#
Considering a new situation with the same Smart Table.
This entry states that for that combination of keys (Step, Product and Flow being the matching precedence key), that BOM is to be used. Continuing to add more entries, you can be as specific as needed:
However, if you try to add an entry that has different revisions at the same level of precedence key:
The system will not allow it because there is no way to distinguish a unique key between two different entity revisions at the same level of precedence keys, resulting in an inability to select a single entry from the Smart Table, as it is intended by design with these data structures.
You can, however, use the maximum possible granularity and select specific revisions for all keys:
Note
When a revision is used as Key in a Smart Table and a revision is not specified, the context will be resolved for all revisions of the given entity. However, if an entity is used as a value without a specific revision, the default revision will be used in the context resolution.


















