注册说明性弹性域
1.创建数据表。
注:使用说明性弹性域的数据表,必须含有ATTRIBUTE_CATEGORY及若干ATTRIBUTEN字段。 ATTRIBUTE_CATEGORY字段:指弹性域的CONTEXT字段。 ATTRIBUTEN字段:指实际使用的字段。
create table HEK_DISCOUNT_POLICY_H_NEW(
POLICY_ID NUMBER, POLICY_NO VARCHAR2(30) not null, CUSTOMER_ID NUMBER, CUSTOMER_NUMBER NUMBER , CUSTOMER_NAME VARCHAR2(100), BENIFICIARY_ID NUMBER, BENIFICIARY_NUMBER NUMBER , BENIFICIARY_NAME VARCHAR2(100), RELATION_NUMBER NUMBER , RELATION_NAME VARCHAR2(100), PAYMENT_TYPE VARCHAR2(20), POLICY_PERIOD VARCHAR2(20) not null, ATTRIBUTE_CATEGORY VARCHAR2(150), ATTRIBUTE1 VARCHAR2(150), ATTRIBUTE2 VARCHAR2(150), ATTRIBUTE3 VARCHAR2(150), CREATED_BY NUMBER, CREATION_DATTE DATE, LAST_UPDATED_BY NUMBER, LAST_UPDATE_DATE DATE, LAST_UPDATE_LOGIN NUMBER)
2.注册弹性域表
begin
ad_dd.register_table('HEK','HEK_DISCOUNT_POLICY_H_NEW','T',10,10,40);
commit;
end;
3.注册弹性域表的列
begin
ad_dd.register_column('HEK','HEK_DISCOUNT_POLICY_H_NEW','ATTRIBUTE_CATEGORY',1,'VARCHAR2',150,'N','N'); ad_dd.register_column('HEK','HEK_DISCOUNT_POLICY_H_NEW','ATTRIBUTE1',2,'VARCHAR2',150,'N','N'); ad_dd.register_column('HEK','HEK_DISCOUNT_POLICY_H_NEW','ATTRIBUTE2',3,'VARCHAR2',150,'N','N'); ad_dd.register_column('HEK','HEK_DISCOUNT_POLICY_H_NEW','ATTRIBUTE3',4,'VARCHAR2',150,'N','N');
commit;
end;
4.查看是否注册成功
select ft.table_id from FND_TABLES ft where ft.table_name='HEK_DISCOUNT_POLICY_H_NEW'
select * from FND_COLUMNS fc where fc.table_id in (select ft.table_id from FND_TABLES ft where ft.table_name='HEK_DISCOUNT_POLICY_H_NEW')
5.注册弹性域列 操作路径:应用开发员=>弹性域=>说明性=>注册
点列按钮,选择注册相应的列
6. 注册弹性域段
点段按钮,输入提示文本
7.启用说明性弹性域
7.1先按将相应的FORM开发好,然后在FORM级的以下TRIGGER中加入
PRE-QUERY: FND_FLEX.EVENT('PRE-QUERY');
POST-QUERY: FND_FLEX.EVENT('POST-QUERY');
PRE-INSERT: FND_FLEX.EVENT('PRE-INSERT');
PRE-UPDATE : FND_FLEX.EVENT('PRE-UPDATE');
WHEN-VALIDATE-ITEM: FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');
WHEN-VALIDATE-RECORD: FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');
7.2在PRE-FORM的TRIGGER中加入
fnd_descr_flex.define ( BLOCK=>'HEK_DISCOUNT_POLICY_H_NEW',
FIELD=>'DESC_FLEX',
APPL_SHORT_NAME=>'HEK',
DESC_FLEX_NAME=>'HEK返利_订金');
说明一下相应参数:BLOCK:指启用弹性域的数据块名 FIELD:指后面新增的ITEM APPL_SHORT_NAME:指相应模块的简称(系统管理员->应用->注册) DESC_FLEX_NAME:指注册弹性域时的名称
8.在要启用弹性域的数据块中增加一个ITEM。名称为:DESC_FLEX。
8.1 DESC_FLEX属性设置如下:
子类信息:TEXT_ITEM_DESC_FLEX
数据库项:否
画布:MAIN_C
8.2在DESC_FLEX项的以下trigger中加入:
WHEN-VALIDATE-ITEM :FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');
WHEN-NEW-ITEM-INSTANCE:FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');
9.完成效果:
条件控制说明性弹性域
说明:通过一个字段的值控制是否显示说明性弹性域。与普通的说明性弹性域类似。下面仅说明不同之处。
1. 注册弹性域列时,定义一个参考列。
点击参考字段按钮
DISCOUNT_TYPE是要启用弹性域数据表中的一个字段,即通过这个字段,来控制是否显示弹性域。
2.定义弹性域段
新增一条上下文值记录,例:年返。即当DISCOUNT_TYPE的值为“年返”时,才显示弹性域。
3.实现效果。