Professional Documents
Culture Documents
#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',
'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');
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;