Custom Table, Custom DFF, Form Development
create table xx_ad_dd_test as select * from scott.emp;
execute ad_dd.register_table(‘XXCUSTOM’,'XX_AD_DD_TEST','T',8,10,90);
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','EMPNO',1,'NUMBER',4,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ENAME',2,'VARCHAR2',10,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','JOB',3,'VARCHAR2',9,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','MGR',4,'NUMBER',4,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','HIRDATE',5,'DATE',9,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','SAL',6,'NUMBER',7,'N','N',2);
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','COMM',7,'NUMBER',7,'N','N',2);
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','DEPTNO',8,'NUMBER',2,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE1',9,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE2',10,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE3',11,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE4',12,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE5',13,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE6',14,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE7',15,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE8',16,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE9',17,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE10',18,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE11',19,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE12',20,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE13',21,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE14',22,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE15',23,'VARCHAR2',150,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','SEX',24,'VARCHAR2',1,'N','N');
execute ad_dd.register_column(‘XXCUSTOM’,'XX_AD_DD_TEST','ATTRIBUTE_CATEGORY',25,'VARCHAR2',100,'N','N');
grant all on XX_AD_DD_TEST to APPS;
create synonym apps.XX_AD_DD_TEST for xxcustom.XX_AD_DD_TEST;
Develop custom Descriptive flex field for
custom table
Go to application developer: Flexfield
-> Descriptive -> Register
Enter Application Name , Table Name ,
Structure column as attribute_category
Enable Attribute 1 – 15 Columns
Navigate to Segment function
Common dff columns defined in Global Data
Elements
Develop Custom Form:
Open tamplate.fmb
Delete default block,
canvas
Create new data block and canvas, window
Modify app_custom to identify first window
if (wnd = 'EMPLOYEE_INFO') then
app_window.close_first_window;
set custom developed data block as first
navigation data block
at from level
set attribute1 -15 column
visible=false
set attribute_category subclass information =TEXT_ITEM_DESC_FLEX , LOV=Enable list lamp
Define package to intilize dff
PACKAGE BODY XX_DFF_PKG IS
PROCEDURE XX_DFF_PROC(EVENT VARCHAR2)IS
BEGIN
IF EVENT = 'WHEN-NEW-FORM-INSTANCE' THEN
FND_DESCR_FLEX.DEFINE(
BLOCK =>'XX_AD_DD_TEST',
FIELD =>'ATTRIBUTE_CATEGORY',
APPL_SHORT_NAME =>‘XXCUSTOM’,
DESC_FLEX_NAME => 'XX_AD_DD_DFF'
);
END IF;
END;
END;
call this package at FORM LEVEL IN WHEN-NEW-FORM-INSTANCE TRIGGER
XX_DFF_PKG.XX_DFF_PROC('WHEN-NEW-FORM-INSTANCE');
Also add
FND_FLEX.event('WHEN-NEW-ITEM-INSTANCE') at attribute_category trigger level
compile the from and send it to $AU_TOP/forms folder and generate fmx using
f60gen module=XX_AD_DD_TEST.fmb userid=apps/$APPS_PWD output_file=$XXCUSTOM_TOP/11.5.0/forms/US/XX_AD_DD_TEST.fmx
Register from ->function->menu->Responsibility-User