Execute AD_DD.Register_Table(‘PO’,’CUSTOM_VENDORS’,’T’,8,10,90);
Execute
AD_DD.Register_column(‘PO’,’Custom_Vendors’,’Vendor_id’,1,’Number
’,10,’N’,’y’);
Commit;
This chapter provides you with information you need to register tables to be used in
Oracle Alerts and Flexfields with Oracle Applications. We will be learning about
Procedures in the AD_DD Package, Procedure REGISTER_TABLE, Procedure
REGISTER_COLUMN, Procedure DELETE_TABLE, Procedure DELETE_COLUMN and
Example of Using the AD_DD Package.
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.
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.
1. Procedure REGISTER_TABLE
2. Procedure REGISTER_COLUMN
4. Procedure DELETE_COLUMN
VARIABLE
DESCRIPTION
NAMES
p_appl_short_na The application short name of the application that
me owns the table (usually your custom application).
p_tab_name The name of the table (in uppercase letters).
Use ’T’ if it is a transaction table (almost all
p_tab_type application tables), or ’S’ for a ”seed data” table
(used only by Oracle Applications products).
The percentage of space in each of the table’s blocks
reserved for future updates to the table (1–99). The
p_pct_free
sum of p_pct_free and p_pct_used must be less than
or equal to 100.
Minimum percentage of used space in each data
p_pct_used block of the table (1–99). The sum of p_pct_free and
p_pct_used must be less than or equal to 100.
p_col_name The name of the column (in uppercase letters).
The sequence number of the column in the table (the
p_col_seq order in which the column appears in the table
definition).
The column type (’NUMBER’, ’VARCHAR2’, ’DATE’,
p_col_type
etc.).
The column size (a number). Use 9 for DATE columns,
p_col_width 38 for NUMBER columns (unless it has a specific
width).
Use ’N’ if the column is mandatory or ’Y’ if the column
p_nullable
allows null values.
Use ’Y’ if the column values will be translated for an
Oracle Applications product release (used only by
p_translate
Oracle Applications products) or ’N’ if the values are
not translated (most application columns).
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.
BEGIN
AD_DD.REGISTER_TABLE ('APL','APL_TEST_DESC','T');
END;
BEGIN
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','RESOURCE_NAME', 1, 'VARCHAR2', 150,
'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','RESOURCE_TYPE', 2, 'VARCHAR2', 100,
'Y', 'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2',
40, 'Y','N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('FND', 'APL_TEST_DESC','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y',
'N');
END;
Connect to APPS/APPS@HOST;
BEGIN
AD_DD.REGISTER_TABLE('PO','TEST_DESC','T',200,60,39);
END;
BEGIN
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','RESOURCE_NAME', 1, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','RESOURCE_TYPE', 2, 'VARCHAR2', 100, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2', 40, 'Y','N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'TEST_DESC','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y', 'N');
END;
BEGIN
AD_DD.DELETE_TABLE('PO','TEST_DESC');
END;
BEGIN
AD_DD.DELETE_COLUMN('PO','TEST_DESC','RESOURCE_NAME');
END;
BEGIN
AD_DD.REGISTER_TABLE (
P_APPL_SHORT_NAME =>'PO',
P_TAB_NAME =>'CUSTOM_VENDORS',
P_TAB_TYPE =>'T',
P_NEXT_EXTENT =>8,
P_PCT_FREE =>10,
P_PCT_USED =>90);
END;
BEGIN
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','RESOURCE_NAME', 1, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','RESOURCE_TYPE', 2, 'VARCHAR2', 100, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2', 40,
'Y','N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('PO', 'CUSTOM_VENDORS','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y', 'N');
END;
/
CONNECT TO APPS/APPS@VIS
------------------------
BEGIN
AD_DD.REGISTER_TABLE(
p_appl_short_name=>'AR'
,p_tab_name=>'TEST_DESC11'
,p_tab_type=>'T'
,p_next_extent=>512
,p_pct_free=>20
,p_pct_used=>80);
END;
BEGIN
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','RESOURCE_NAME', 1, 'VARCHAR2', 150, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','RESOURCE_TYPE', 2, 'VARCHAR2', 100, 'Y',
'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE_CATEGORY', 3, 'VARCHAR2', 40,
'Y','N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE1', 4, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE2', 5, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE3', 6, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE4', 7, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE5', 8, 'VARCHAR2', 150, 'Y', 'N');
AD_DD.REGISTER_COLUMN ('AR', 'TEST_DESC11','ATTRIBUTE6', 9, 'VARCHAR2', 150, 'Y', 'N');
END;