Create a User-Defined Table through HDL and fetch UDT data through query
- Fusion HCM Forest

- Feb 18
- 2 min read
This article aims to discuss the creation of a User-Defined Table using HDL. In Fusion Applications, a User-Defined Table is referred to as UDT. Before we begin creating a UDT, let's talk a bit about User-Defined Tables.
User-Defined Table is a specialized table defined within the Fusion Applications framework, specifically designed to hold and manage various types of data that are tailored to meet the unique needs of an organization. These tables allow users to create custom data structures that can accommodate specific business requirements, enabling them to capture and store information that may not be available in standard system tables.
By leveraging User-Defined Tables, organizations can enhance their data management capabilities, streamline processes, and ensure that all necessary data is collected and maintained in an organized manner. Additionally, these tables can be integrated with other components of the Fusion Applications ecosystem, allowing for seamless data flow and reporting across different modules, ultimately supporting better decision-making and operational efficiency.
Basic steps for creating UDT through UI:
Navigate to Setup and Maintenance >User-Defined Tables Task
Creating a UDT
Defining UDT properties
Creating UDT Columns
Creating UDT Rows
Creating column instances for UDT
Enter the column Instance value and then click on Save.
We must create the UDT in the Application before generating the HDL file for it.

After clicking the save button, submit.
Once the UDT is created on the application, proceed to create the HDL file.
METADATA|UserDefinedTable|UserTableCode|RangeOrMatch|UserKeyUnits|UserRowTitle|UserTableName|LegislativeDataGroupNameMERGE|UserDefinedTable|TEST_GRADE|M|T||TEST_GRADE|SA Legislative Data GroupMETADATA|UserDefinedTableColumn|UserColumnCode|DataType|UserColumnName|UserTableCode|LegislativeDataGroupName|FormulaNameMERGE|UserDefinedTableColumn|A|T|A|TEST_GRADE|SA Legislative Data Group|METADATA|UserDefinedTableRow|DisplaySequence|EffectiveEndDate|EffectiveStartDate|RowHighRange|RowLowRangeOrName|UserTableCode|LegislativeDataGroupName|RowNameMERGE|UserDefinedTableRow|1|4712/12/31|1951/01/01||1st Grade|TEST_GRADE|SA Legislative Data Group|1st GradeMETADATA|UserDefinedTableColumnInstance|EffectiveEndDate|EffectiveStartDate|Value|LegislativeDataGroupName|UserColumnCode|RowLowRangeOrName|UserTableCodeMERGE|UserDefinedTableColumnInstance|4712/12/31|1951/01/01|150|SA Legislative Data Group|Domestic|1st Grade|TEST_GRADEThe HDL file mentioned above contains 4 sections
The first section is designated for the basic details of UDT
METADATA|UserDefinedTable|UserTableCode|RangeOrMatch|UserKeyUnits|UserRowTitle|UserTableName|LegislativeDataGroupNameMERGE|UserDefinedTable|TEST_GRADE|M|T||TEST_GRADE|SA Legislative Data GroupThe 2nd section is utilized for generating a Table Column
METADATA|UserDefinedTableColumn|UserColumnCode|DataType|UserColumnName|UserTableCode|LegislativeDataGroupName|FormulaNameMERGE|UserDefinedTableColumn|A|T|A|TEST_GRADE|SA Legislative Data Group|The third section is utilized for generating a Table Row
METADATA|UserDefinedTableRow|DisplaySequence|EffectiveEndDate|EffectiveStartDate|RowHighRange|RowLowRangeOrName|UserTableCode|LegislativeDataGroupName|RowNameMERGE|UserDefinedTableRow|1|4712/12/31|1951/01/01||1st Grade|1st Grade |SA Legislative Data Group|1st Grade
The fourth section is utilized for generating a Table Column Instance
METADATA|UserDefinedTableColumnInstance|EffectiveEndDate|EffectiveStartDate|Value|LegislativeDataGroupName|UserColumnCode|RowLowRangeOrName|UserTableCodeMERGE|UserDefinedTableColumnInstance|4712/12/31|1951/01/01|150|SA Legislative Data Group|A|1st Grade|TEST_GRADESQL query to retrieve UDT DATA
Selectfur.ROW_LOW_RANGE_OR_NAME,fur.ROW_NAME,to_number(fuci.VALUE)Fromff_user_tables_vl fut ,ff_user_columns_vl fuc ,ff_user_rows_vl fur ,ff_user_column_instances_f fuciWherefut.user_table_name= ‘TEST_GRADE’AND fuc.USER_COLUMN_NAME=' TEST_GRADE 'AND fut.user_table_id = fuc.user_table_idAND fut.user_table_id = fur.user_table_idAND fuc.user_column_id = fuci.user_column_idAND fur.user_row_id = fuci.user_row_idAND TRUNC(SYSDATE) BETWEEN fur.effective_start_date AND fur.effective_end_dateAND TRUNC(SYSDATE) BETWEEN fuci.effective_start_date AND fuci.effective_end_date




Comments