Oracle Apps Table Registration API
Introduction
Though Oracle Applications comes
with thousands of seeded database tables, there can be numerous
applications in which one might be required to create a custom table to
be used. In most of the applications all you need is to create a table
in a schema and use it directly in your applications. Flexfields and
Oracle Alert are the only features or products that require the custom
tables to be registered in Oracle Applications (Application Object
Library) before they can be used.
You register your custom application tables using a PL/SQL procedure in the AD_DD package.
Therefore you only need to register those tables (and all of their columns) that will be used with flexfields or Oracle Alert.
Therefore you only need to register those tables (and all of their columns) that will be used with flexfields or Oracle Alert.
You can also use the AD_DD API to
delete the registrations of tables and columns from Oracle Application
Object Library tables should you later modify your tables. If you alter
the table later, then you may need to include revised or new calls to
the table registration routines. To alter a registration you should
first delete the registration, and then re-register the table or column.
Remember, you should delete the column registration first, then the
table registration. You should include calls to the table registration
routines in a PL/SQL script. Though you create your tables in your own
application schema, you should run the AD_DD procedures against the APPS
schema. You must commit your changes for them to take effect.
The AD_DD API does not check for
the existence of the registered table or column in the database schema,
but only updates the required AOL tables. You must ensure that the
tables and columns registered actually exist and have the same format as
that defined using the AD_DD API. You need not register views.
Procedures in the AD_DD Package
1. Procedure REGISTER_TABLE
procedure register_table ( p_appl_short_name in varchar2,
p_tab_name in varchar2,
p_tab_type in varchar2,
p_next_extent in number default 512,
p_pct_free in number default 10,
p_pct_used in number default 70);
2. Procedure REGISTER_COLUMN
procedure register_column (p_appl_short_name in varchar2,
p_tab_name in varchar2,
p_col_name in varchar2,
p_col_seq in number,
p_col_type in varchar2,
p_col_width in number,
p_nullable in varchar2,
p_translate in varchar2,
p_precision in number default null,
p_scale in number default null);
3. Procedure DELETE_TABLE
procedure delete_table (p_appl_short_name in varchar2,
p_tab_name in varchar2);
4. Procedure DELETE_COLUMN
procedure delete_column (p_appl_short_name in varchar2,
p_tab_name in varchar2,
p_col_name in varchar2);
VARIABLE NAMES
|
DESCRIPTION
|
p_appl_short_name
|
The application short name of the application that owns the table (usually your custom application).
|
p_tab_name
|
The name of the table (in uppercase letters).
|
p_tab_type
|
Use
’T’ if it is a transaction table (almost all application tables), or
’S’ for a ”seed data” table (used only by Oracle Applications
products).
|
p_pct_free
|
The
percentage of space in each of the table’s blocks reserved for future
updates to the table (1–99). The sum of p_pct_free and p_pct_used must
be less than 100.
|
p_pct_used
|
Minimum
percentage of used space in each data block of the table (1–99). The
sum of p_pct_free and p_pct_used must be less than 100.
|
p_col_name
|
The name of the column (in uppercase letters).
|
p_col_seq
|
The sequence number of the column in the table (the order in which the column appears in the table definition).
|
p_col_type
|
The column type (’NUMBER’, ’VARCHAR2’, ’DATE’, etc.).
|
p_col_width
|
The column size (a number). Use 9 for DATE columns, 38 for NUMBER columns (unless it has a specific width).
|
p_nullable
|
Use ’N’ if the column is mandatory or ’Y’ if the column allows null values.
|
p_translate
|
Use
’Y’ if the column values will be translated for an Oracle Applications
product release (used only by Oracle Applications products) or ’N’ if
the
values are not translated (most application columns).
|
p_next_extent
|
The next extent size, in kilobytes. Do not include the ’K’.
|
p_precision
|
The total number of digits in a number.
|
p_scale
|
The number of digits to the right of the decimal point in a number.
|
Example of Using the AD_DD Package
Here is an example of using the AD_DD package to register a flexfield table and its columns:
Though the use of AD_DD package does not require that the table should exist first, it is always better to create one and proceed further. Use the below mentioned script to create the dummy table. Use the APPS User ID to run the below mentioned queries from TOAD or SQL*PLUS.
Though the use of AD_DD package does not require that the table should exist first, it is always better to create one and proceed further. Use the below mentioned script to create the dummy table. Use the APPS User ID to run the below mentioned queries from TOAD or SQL*PLUS.
CREATE TABLE TEST_DESC ( RESOURCE_NAME VARCHAR2 (150),
RESOURCE_TYPE VARCHAR2 (100),
ATTRIBUTE_CATEGORY VARCHAR2 (40),
ATTRIBUTE1 VARCHAR2 (150),
ATTRIBUTE2 VARCHAR2 (150),
ATTRIBUTE3 VARCHAR2 (150),
ATTRIBUTE4 VARCHAR2 (150),
ATTRIBUTE5 VARCHAR2 (150),
ATTRIBUTE6 VARCHAR2 (150)
);
BEGIN
AD_DD.REGISTER_TABLE ('FND','TEST_DESC','T');
END;
BEGIN
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','RESOURCE_NAME', 1, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','RESOURCE_TYPE', 2, 'VARCHAR2', 100, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2', 40, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y', 'N');
END;
RESOURCE_TYPE VARCHAR2 (100),
ATTRIBUTE_CATEGORY VARCHAR2 (40),
ATTRIBUTE1 VARCHAR2 (150),
ATTRIBUTE2 VARCHAR2 (150),
ATTRIBUTE3 VARCHAR2 (150),
ATTRIBUTE4 VARCHAR2 (150),
ATTRIBUTE5 VARCHAR2 (150),
ATTRIBUTE6 VARCHAR2 (150)
);
BEGIN
AD_DD.REGISTER_TABLE ('FND','TEST_DESC','T');
END;
BEGIN
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','RESOURCE_NAME', 1, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','RESOURCE_TYPE', 2, 'VARCHAR2', 100, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2', 40, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'TEST_DESC','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y', 'N');
END;
Do not forget to COMMIT after running the above steps.
The table is now ready to be used in Oracle Alerts or Flexfields.
The table is now ready to be used in Oracle Alerts or Flexfields.
Frequently asked questions
1. What is the use of AD_DD package?
2. Why do we need to register the table with oracle applications?
3. Will my table get deleted if I use Delete table procedure of AD_DD package?
4. Do I need to register all the columns of a table?
5. How can I see the code of AD_DD Package?
2. Why do we need to register the table with oracle applications?
3. Will my table get deleted if I use Delete table procedure of AD_DD package?
4. Do I need to register all the columns of a table?
5. How can I see the code of AD_DD Package?
No comments:
Post a Comment