User-Defined Properties (UDP)
The main data tables for user-defined properties are:
Table Name | Description |
---|---|
Table_Fields_Values | Main data table containing user-defined property values. |
Tables | Fixed content table that contains the definition of each table within the database that can have UDPs associated with it. |
Table_Fields | Contains the UDP definitions (name and data type). |
ED_FieldTypes | Fixed content table that contains the data types of event model parameters and user-defined properties. |
The database structure is as follows:

The main data table for UDPs is Table_Field_Values. The logical key for the table is as follows:
Field | Description |
---|---|
TableId | The table the UDP is associated with (for example, Prod_Units, Department, and so on). |
Table_Field_Id | The UDP itself. A particular UDP can be associated with multiple different tables. |
KeyId | The unique primary key identifier for the table defined by TableId. |
The UDP value is always stored as a string so the field type is generally not necessary when retrieving the UDP value, as the data type is already known. As such, the field type is only important for creating a new UDP.
The KeyId value is dependent on which table the UDP is for. For example, if the TableId corresponded to the Prod_Units table (for example, Production Units), then the KeyId will be equal to a particular PU_Id. If the TableId corresponded to the PrdExec_Paths table (for example, Execution Paths) then the KeyId will be equal to a particular Path_Id.
The following is an example of the configuration of a UDP for a Production Unit in the Administrator:

The following is an example query of how to retrieve the UDP value for the above configuration:
SELECT tfv.Value
FROM Table_Fields_Values tfv
JOIN Tables t ON tfv.TableId = t.TableId
JOIN Table_Fields tf ON tf.Table_Field_Id = tfv.Table_Field_Id
JOIN Prod_Units pu ON tfv.KeyId = pu.PU_Id -- This depends on the TableId being referenced
WHERE t.TableName = 'Prod_Units'
AND tf.Table_Field_Desc = 'MyUDP'
AND pu.PU_Desc = 'Machine 1'
The following is an example configuration of a UDP for an Execution Path in the Administrator:

The following is an example query of how to retrieve the UDP value for the above configuration:
SELECT tfv.Value
FROM Table_Fields_Values tfv
JOIN Tables t ON tfv.TableId = t.TableId
JOIN Table_Fields tf ON tf.Table_Field_Id = tfv.Table_Field_Id
JOIN PrdExec_Paths p ON tfv.KeyId = p.Path_Id
WHERE t.TableName = 'PrdExec_Paths'
AND tf.Table_Field_Desc = 'MyUDP'
AND p.Path_Code = 'M1'
While only a few of the tables have an interface (either in the Client or Administrator) there are many tables currently defined in Tables and more are continually being added. Another thing to note is that while UDPs are typically created for custom configuration, they can also be used to track additional information in data tables (for example, Events). The following table lists a subset of the available SQL tables and the corresponding keys that are reference in Table_Fields_Values.
Table Id | Table | Key |
---|---|---|
1 | Events | Event_Id |
2 | Production_Starts | Start_Id |
3 | Timed_Event_Details | TEDet_Id |
4 | Waste_Event_Details | WED_Id |
5 | PrdExec_Input_Event | Input_Event_Id |
6 | PrdExec_Input_Event_History | Input_Event_History_Id |
7 | Production_Plan | PP_Id |
8 | Production_Setup | PP_Setup_Id |
9 | Production_Setup_Detail | PP_Setup_Detail_Id |
10 | Event_Components | Component_Id |
11 | User_Defined_Events | UDE_Id |
13 | PrdExec_Paths | Path_Id |
43 | Prod_Units | PU_Id |
12 | Production_Plan_Starts | PP_Start_Id |
14 | Event_Details | Event_Id |
17 | Departments | Dept_Id |
18 | Prod_Lines | PL_Id |
19 | PU_Groups | PUG_Id |
20 | Variables | Var_Id |
21 | Product_Family | Product_Family_Id |
22 | Product_Groups | Product_Grp_Id |
23 | Products | Prod_Id |
24 | Event_Reasons | Reason_Id |
25 | Event_Reason_Catagories | ERC_Id |
26 | Bill_Of_Material_Formulation | BOM_Formulation_Id |
27 | Subscription | Subscription_Id |
28 | Bill_Of_Material_Formulation_Item | BOM_Formulation_Item_Id |
29 | Subscription_Group | Subscription_Group_Id |
30 | PrdExec_Path_Units | PEPU_Id |
31 | Report_Types | Report_Type_Id |
32 | Report_Definitions | Report_Id |
33 | Report_Runs | Run_Id |
Production_Plan_Statuses | PP_Status_Id |