一.描述性弹性域
前言介绍:
描述性弹性域的实质就是系统预留自定字段,系统可以使用说明性弹性域来获取业务所特有的重要附加信息。系统可能自定义说明性弹性域,以显示存储更多信息的字段,提供一套完整的“自定义”机制,可以用值集来验证字段、字段间可以设置依赖关系等等。
1.注册表和字段到EBS(记得COMMIT):
说明:
注册表 :
AD_DD.REGISTER_TABLE(p_appl_short_name in varchar2, --应用名简称/所有者 p_tab_name in varchar2, --表名 p_tab_type in varchar2, --T 自动扩展/S 非自动扩展/F p_next_extent in number, --下一区 p_pct_free in number, p_pct_used in number)
注册列:
AD_DD.REGISTER_COLUMN(p_appl_short_name in varchar2, p_tab_name in varchar2, --应用名简称/所有者 p_col_name in varchar2, --列名 p_col_seq in number, --序号,唯一 p_col_type in varchar2, --类型 p_col_width in number, --字段宽度 p_nullable in varchar2, --是否为空 p_translate in varchar2, --是否可以转换 p_precision in number default null, p_scale in number default null)
2.在应用开发员>弹性域>说明性>注册 中注册说明性弹性域,通常NAME 起名和表名一致,Title的值为可明显区分:
保存后,点击Columns,可以看到,系统自动选中了所有Attribute字段:
3.创建非数据库项:
在块中手工创建一个字段,名字通常叫DESC_FLEX,子类为TEXTITEMDESCFLEX,Prompt为一对大括号"[]",布局时通常放在最后,但不随滚动条滚动:
注:为非数据库字段,Database Item属性为No
4.触发器:
4.1Form级:WHEN-NEW-FORM-INSTANCE
fnd_descr_flex.define(BLOCK => 'BLOCKNAME',
field => 'DESC_FLEX',
appl_short_name => 'SCF',
desc_flex_name => 'CUX_FLEXFIELD_DEMO');
例:
fnd_descr_flex.define(BLOCK => 'ORDER_HEADERS'
,field => 'DESC_FLEX'
,appl_short_name => 'CUX'
,desc_flex_name => 'CUX_OE_ORDER_HEADERS_25305_ALL');
4.2块级 :
PREINSERT中追加: fnd_flex.event('PREINSERT');
PREUPDATE中追加: fnd_flex.event('PREUPDATE');
PREQUERY中追加: fnd_flex.event('PREQUERY');
POSTQUERY中追加: fnd_flex.event('POSTQUERY');
WHENVALIDATERECORD中追加: fnd_flex.event('WHENVALIDATERECORD');
4.3Item级:
WHENNEWITEMINSTANCE中追加: fnd_flex.event('WHENNEWITEMINSTANCE');
WHENVALIDATEITEM中追加: fnd_flex.event('WHENVALIDATEITEM');
注意::可以把这些触发器(Block级和Item级)写在Form级,这样不需要每个块都写,不过如果为了其它功能 在块级写了同名触.........