You are on page 1of 6

AD_DD to register table and columns in application.

#1 - Register Table
EXECUTE ad_dd.register_TABLE('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'T');

#2 - Register Columns
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'HEADER_ID', 1,
'NUMBER', 38, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'CHECK_TYPE', 2,
'VARCHAR2', 100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CASH_ADVANCED_NUMBER', 3, 'NUMBER', 10, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'EMPLOYEE_NAME', 4, 'VARCHAR2', 240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'EMPLOYEE_NUMBER', 5, 'VARCHAR2', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'TRANSACTION_TYPE', 6, 'VARCHAR2', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PURPOSE_OF_CASH_ADVANCE', 7, 'VARCHAR2', 1000, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'AMOUNT_REQUESTED', 8, 'VARCHAR2',20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'ADVANCE_DATE', 9, 'DATE', 9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'EMPLOYEE_DEPATMENT', 10, 'VARCHAR2',240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'AMOUNT', 11,
'NUMBER', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'WF_STATUS', 12,
'VARCHAR2', 30, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'APPROVED_DATE', 13, 'DATE', 9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'ATTACHMENT_KEY', 14, 'NUMBER', 10, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'REGION', 15,


'VARCHAR2', 50, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'TRANSFER_TYPE', 16, 'VARCHAR2', 50, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'BANK_NAME',


17, 'VARCHAR2', 100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CODE_COMBINATIONS', 18, 'VARCHAR2',100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PAYMENT_DATE', 19, 'DATE', 9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'ACCOUNT_NUMBER', 20, 'VARCHAR2',100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PHONE_NUMBER', 21, 'VARCHAR2', 240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'SEQUENCE_NUMBER', 22, 'VARCHAR2', 30, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'CURRENCY ', 23,
'VARCHAR2', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'REQUESTER_EMP_NAME', 24, 'VARCHAR2', 240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'REQUESTER_EMP_NUMBER', 25, 'VARCHAR2', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'PAY_FLAG', 26,
'VARCHAR2', 10, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'AMOUNT_PAID',


27, 'VARCHAR2', 255, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'DEC_PAY_FLAG', 28, 'VARCHAR2',10, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PETTYCASH_STATUS', 29, 'VARCHAR2', 240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CREATION_DATE', 30, 'DATE',9, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'CREATED_BY',


31, 'NUMBER', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'LAST_UPDATE_DATE', 32, 'DATE', 9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'LAST_UPDATED_BY ', 33, 'NUMBER', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'LAST_UPDATE_LOGIN', 34, 'NUMBER', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PAYMENT_METHOD', 35, 'VARCHAR2', 15, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'ACCOUNT_PERIOD', 36, 'VARCHAR2', 15, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'PAYMENT_DOCUMENT', 37, 'VARCHAR2', 100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'SETTLEMENT_DATE', 38, 'DATE',9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'DOCUMENT_NUMBER', 39, 'VARCHAR2', 30, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'USER_CONVERSION_TYPE', 40, 'VARCHAR2',30, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CONVERSION_RATE', 41, 'NUMBER', 20, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'TERM_ID', 42,
'NUMBER', 15, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CASH_ADVANCE_DOC_NUMBER ', 43, 'VARCHAR2', 30, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'STATUS ', 44,
'VARCHAR2', 1, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'ERROR_TEXT',
45, 'VARCHAR2', 200, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'CANCEL_STATUS', 46, 'VARCHAR2', 1, 'N', 'N');

EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'CANCEL_DATE',


47, 'DATE', 9, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'DEPARTMENT_DESCRIPTION', 48, 'VARCHAR2',240, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'ATTACHMENT_FILE', 49, 'BLOB', 4000, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'BANK_ACCOUNT_NAME', 50, 'VARCHAR2',60, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'BANK_BRANCH_NAME', 51, 'VARCHAR2', 260, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS',
'BANK_ACCOUNT_NUMBER', 52, 'VARCHAR2', 100, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'DESCRIPTION',
53, 'VARCHAR2', 200, 'N', 'N');
EXECUTE ad_dd.register_column('SQLAP','EMTS_CASH_LEDGER_HEADERS', 'JOB_NAME ', 54,
'VARCHAR2', 100, 'N', 'N');

#3 - Register Primary Key


ad_dd.register_primary_key
(p_appl_short_name IN VARCHAR2, -- Application Short Name
p_key_name
IN VARCHAR2, -- Primary Key Name
p_table_name
IN VARCHAR2, -- Table Name
p_description IN VARCHAR2, -- Primary key Description
p_key_type
IN VARCHAR2, -- (D/S)Developer/Surrogate,DEFAULTs to null
p_audit_flag IN VARCHAR2, -- (Y/N)DEFAULTs to null
p_enabled_flag IN VARCHAR2); -- (Y/N)DEFAULTs to null
Sample Script
EXECUTE ad_dd.register_primary_key
(p_appl_short_name => 'C_APPS',
p_key_name
=> 'INTERFACE_ID_PK',
p_table_name => 'C_FND_INTERFACES',
p_description => 'Interface ID Primary Key',
p_key_type
=> 'S',
p_audit_flag => 'Y',
p_enabled_flag => 'Y');

#4 - Register Primary Key Column


ad_dd.register_primary_key_column
(p_appl_short_name IN VARCHAR2,
p_key_name
IN VARCHAR2,

p_tab_name
IN VARCHAR2,
p_col_name
IN VARCHAR2,
p_col_sequence IN NUMBER);
Sample Script
EXECUTE ad_dd.register_primary_key_column
(p_appl_short_name => 'C_APPS',
p_key_name
=> 'INTERFACE_ID_PK',
p_tab_name
=> 'C_FND_INTERFACES',
p_col_name
=> 'INTERFACE_ID',
p_col_sequence => '1');

#5 - Using API
Below is an illustration on how to register a custom table.
Create the table in the database.
create table XX_USER_TABLE
(
user_id NUMBER PRIMARY KEY,
user_name VARCHAR2(40),
description VARCHAR2(100)
);
Execute the table registration API.
DECLARE
v_appl_short_name VARCHAR2 (40) := 'XXCUST';
v_tab_name
VARCHAR2 (32) := 'XX_USER_TABLE'; -- Change the table name if you require
v_tab_type
VARCHAR2 (50) := 'T';
v_next_extent
NUMBER
:= 512;
v_pct_free
NUMBER;
v_pct_used
NUMBER;
BEGIN
-- Unregister the custom table if it exists
ad_dd.delete_table (p_appl_short_name
=> 'XXCUST', p_tab_name => v_tab_name);
-- Register the custom table
FOR tab_details IN (SELECT table_name, tablespace_name, pct_free, pct_used, ini_trans, max_trans,
initial_extent, next_extent
FROM dba_tables
WHERE table_name = v_tab_name)
LOOP
ad_dd.register_table (p_appl_short_name
=> v_appl_short_name,
p_tab_name
=> tab_details.table_name,
p_tab_type
=> v_tab_type,
p_next_extent
=> NVL (tab_details.next_extent, 512),
p_pct_free
=> NVL (tab_details.pct_free, 10),
p_pct_used
=> NVL (tab_details.pct_used, 70)

);
END LOOP;
-- Register the columns of custom table
FOR all_tab_cols IN (SELECT column_name, column_id, data_type, data_length, nullable
FROM all_tab_columns
WHERE table_name = v_tab_name)
LOOP
ad_dd.register_column (p_appl_short_name
=> v_appl_short_name,
p_tab_name
=> v_tab_name,
p_col_name
=> all_tab_cols.column_name,
p_col_seq
=> all_tab_cols.column_id,
p_col_type
=> all_tab_cols.data_type,
p_col_width
=> all_tab_cols.data_length,
p_nullable
=> all_tab_cols.nullable,
p_translate
=> 'N',
p_precision
=> NULL,
p_scale
=> NULL
);
END LOOP;
FOR all_keys IN (SELECT constraint_name, table_name, constraint_type
FROM all_constraints
WHERE constraint_type = 'P' AND table_name = v_tab_name)
LOOP
ad_dd.register_primary_key (p_appl_short_name
=> v_appl_short_name,
p_key_name
=> all_keys.constraint_name,
p_tab_name
=> all_keys.table_name,
p_description
=> 'Register primary key',
p_key_type
=> 'S',
p_audit_flag
=> 'N',
p_enabled_flag
=> 'Y'
);
FOR all_columns IN (SELECT column_name, POSITION
FROM dba_cons_columns
WHERE table_name = all_keys.table_name AND constraint_name =
all_keys.constraint_name)
LOOP
ad_dd.register_primary_key_column (p_appl_short_name
=> v_appl_short_name,
p_key_name
=> all_keys.constraint_name,
p_tab_name
=> all_keys.table_name,
p_col_name
=> all_columns.column_name,
p_col_sequence
=> all_columns.POSITION
);
END LOOP;
END LOOP;
COMMIT;
END;

You might also like