Skip to content

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.

Screenshot showing a generic table with data rows, including options for adding new rows and exporting data.

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.

Definition view of the Smart Table page

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#

  1. Enter a name for the Smart Table.
  2. Optionally, enter the description.
  3. Specify whether the table should keep the History information.
  4. Define the number of days to display in the history by default.
  5. Select whether multiple values are allowed for the same keys.
  6. Select whether change control is activated for the Smart Table. See Change Controlled Smart Tables below for more information.
  7. Enter a key to be used for reference in Localized Messages.
  8. Optionally, define a Rule to be used for Pre-validating data.
  9. Optionally, define a Rule to be used for Post-validating data.
  10. Select Next to define the Smart Table Properties.

Screenshot showing a user interface with a "Next" button to define 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#

  1. 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).
  2. 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.

Screenshot showing a table with "Reeves Too" and "Vere" properties configured.

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.

  1. Add and remove precedence keys by selecting or , order them by selecting or .

  2. Select Create to complete the operation.

Screenshot showing a table with "Precedence Keys" in the header, illustrating the step to select precedence keys.

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.

Screenshot showing a database schema creation interface with fields for defining the Smart Table.

This schema generation is achieved by pressing the Generate Schema button from the Smart Table Definition View.

Screenshot showing a database schema creation process in progress.

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:

  1. Open the desired Smart Table Data View.
  2. Add new records by selecting on the top ribbon.
  3. Selecting the button will open a dialog that allows the user to edit existing records.
  4. Remove existing records by selecting the values and selecting the Remove button on the top ribbon.
  5. Select Save to commit the changes.

Info

To edit the Smart Table values, the table must have been generated.

Screenshot showing an example of editing Smart Table data in a table format.

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:

  1. Open the Data View.
  2. Select one or more records from the table.
  3. Select Copy on the top ribbon.

    Screenshot showing a UI image of a ribbon with "Copy" selected, highlighting the process of copying data from Smart Tables.

  4. In the wizard, select the record you want to copy.

  5. Select the copy icon at the top of the grid.
  6. For each copied record, make the changes you need.
  7. Select Add to complete the operation.

    Screenshot showing a UI with a table being copied, as part of the "Copy Smart Tables Data" step.

It is also possible to copy records by using the Add operation on the top ribbon.

Screenshot showing a UI element for copying data from a Smart Table.

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.

Screenshot showing a Smart Table configuration page with options for enabling or disabling change control.

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.

Screenshot showing a Smart Table with change control pending due to modification attempts while change control is enabled.

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.

Screenshot showing a table with information about Smart Revision Resolution.

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.

Screenshot showing a table with BOM content records, including "Reco-as" and "GoM coneese", among other entries.

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:

Screenshot showing a table with columns labeled "Step", "Product", and "Flow" illustrating the step for resolving precedence key uniqueness in Smart Revision Resolution.

However, if you try to add an entry that has different revisions at the same level of precedence key:

Screenshot showing a table with multiple entries having 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.

Screenshot showing a table with columns labeled "Revision" and "Precedence Key", illustrating the concept of resolving uniqueness issues in a system.

You can, however, use the maximum possible granularity and select specific revisions for all keys:

Screenshot showing a table with columns labeled "BOM Context" and "Revision Resolution", illustrating the step of selecting specific revisions for each key.

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.