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
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.
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.
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
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 Generic Table. You can add new rows or edit the existing ones. You can also export data to file.

table_smart_data_view

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 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

table_smart_create_step_one

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.

Warning

In SQL Server, there is a 900-byte limit for the maximum total size of all index key columns.

table_smart_create_step_two

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 Finish to complete the operation.

table_smart_create_step_three

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.

table_smart_create_step_four

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

table_smart_create_step_five

Info

In order 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.

table_smart_data_edit

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 Generic Table. For more information, see Overriding the System Context Resolutions Smart Tables ⧉.

Note

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.

    table_smart_copy_one

  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.

    table_smart_copy_two

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

table_smart_copy_add

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.

table_smart_data_add_with_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.

table_smart_data_change_control_pending

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.

table_smart_revision_resolution_one

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.

table_smart_revision_resolution_two

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:

table_smart_revision_resolution_three

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

table_smart_revision_resolution_four

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.

table_smart_revision_resolution_five

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

table_smart_revision_resolution_six

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.