1、在系统中注册并设置好弹性域;
2、增加相关ITEM:
a、name:category(自己定义);item type:text item;subclass information:text item;list of values:enable_list_lamp;validate from list:no;
b、name:category_id(自己定义);item type:text item;subclass information:text item;
c、name:category_desc(自己定义);item type:text item;subclass information:text item;
3、key弹性域定义:
一般情况,放在WHEN-NEW-FORM-INSTANCE或者WHEN-NEW-BLOCK-INSTANCE里面。
FND_KEY_FLEX.Define
(
BLOCK => ' FLEXFIELD_TEST',数据块名称
FIELD => ' CATEGORY',数据项名称
ID => 'CATEGORY_ID',
description => 'CATEGORY_DESC',
APPL_SHORT_NAME => 'INV',Application的Short Name
CODE => 'MCAT',
NUM => '50230',--STRUCTURE Number
REQUIRED => 'N',
UPDATEABLE =>NULL,
VALIDATE => 'FULL',
USEDBFLDS => 'N',
DINSERT => 'Y'
);
其中红色部分为必选参数,其他的都是可选参数
code:
指的是Key Flex Field的ID Code。Category是在INV模组设置的。
……Flexfields->Key->Segments
下面搜索:
Application:Oracle Inventory
Flexfield Title:Item Categories
用帮助查询,其中块为flex,项为id_flex_code,取到它的值便是code
num:
这个参数是我们当前使用的Item Category的Structure ID。
不同的Category类型都有不同的Structure ID。
Inventory->Setup->Items->Categories->Category Sets
用帮助查询,其中块为category_set,项为structure_id,取到的值便为num
4、说明性弹性域定义:
一般情况,放在WHEN-NEW-FORM-INSTANCE或者WHEN-NEW-BLOCK-INSTANCE里面。
FND_DESCR_FLEX.DEFINE(
BLOCK=>’ORDERS’,
FIELD=>’DESC_FLEX’,
APPL_SHORT_NAME=>’DEM’,
DESC_FLEX_NAME=>’DEM_ORDERS’);
5、触发器设置
此外在Form-level的下列trigger中,加入后面的函数。如果在block/item-level 上override了这些trigger,在处理代码中也要加上后面的函数。Block/ item-level的 POST-QUERY trigger,Execution Hierarchyà ‘After’。
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-VALIDATERECORD FND_FLEX.EVENT(‘WHEN-VALIDATE-RECORD’);
WHEN-NEW-ITEMINSTANCE FND_FLEX.EVENT(‘WHEN-NEW-ITEMINSTANCE’);
WHEN-VALIDATE-ITEM FND_FLEX.EVENT(‘WHEN-VALIDATE-ITEM’);
本文作者:网友 来源: http://hi.baidu.com/%C6%BD%BE%B2%D6%AE%BD%A3/blog/item/60bee2fbba4ee460024f563