FORM中使用弹性域

来源:互联网 发布:nodejs mongodb 知乎 编辑:程序博客网 时间:2024/05/01 06:37

FORM中使用弹性域

注册和设置完弹性域后,要使用弹性域,必须把它置于FORM中,并通过FORM中的内置程序包FND_FLEX来定义和调用弹性域,象EBS的弹性域一样的使用。

.................


要在FORM中使用弹性域,必须要设定下面几个Trigger:

Trigger Level Procedure
-----------------------
PRE-QUERY FORM_LEVEL FND_FLEX.EVENT('PRE-QUERY')
POST-QUERY FORM_LEVEL FND_FLEX.EVENT('POST-QUERY')
PRE-INSERT FORM_LEVEL FND_FLEX.EVENT('PRE-INSERT')
PRE-UPDATE FORM_LEVEL FND_FLEX.EVENT('PRE-UPDATE')
WHEN-VALIDATE-RECORD FORM_LEVEL FND_FLEX.EVENT('WHEN-VALIDATE-RECORD')
WHEN-NEW-ITEM-INSTANCE ITEM_LEVEL FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE')
WHEN-VALIDATE-ITEM FORM_LEVEL FND_FLEX.EVENT('WHEN-VALIDATE-ITEM')

1、定义弹性域:

(1)在FORM的一个BLOCK中新加一ITEM,属性为是TEX_ITEM,LOV处选择ENABLE_LIST_LAMP,并把检查有效性设为NO。(如果是定义KEY弹性域,还要增加一隐藏的ITEM来保存ID值)

(2)在WHEN-NEW-FORM-INSTANCE trigger中用下面代码定义弹性域
描述弹性域用:
FND_DESCR_FLEX.DEFINE(
BLOCK => 'BLOCK_NAME', --第1步操作的BLOCK
FIELD => 'displayed_flexfield_field_name', --第1步创建的ITEM
APPL_SHORT_NAME => shortname_of_application_used_to_register_flexfield',
DESC_FLEX_NAME => 'flexfield_name' --fnd_descriptive_flexs.descriptive_flexfield_name
) ;

关键弹性域用:
FND_KEY_FLEX.DEFINE (
BLOCK => 'Block_Name', --第1步操作的BLOCK
FIELD => 'Field_Name', --第1步创建的ITEM
ID => 'ccid_field_name', --第1步专为KEY弹性域创建的隐藏ITEM
APPL_SHORT_NAME => 'shortname of application used to register flexfield', CODE => 'flexfield_code', --fnd_id_flex_structures.id_flex_code
NUM => 'structure_number' --fnd_id_flex_structures.id_flex_num
);

2、调用弹性域:

在第1步定义时创建的ITEM的WHEN-NEW-ITEM-INSTANCE trigger中用代码

FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE')

去调用在FORM LEVEL定义的弹性域

原创粉丝点击