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