|
3. 开发Flexfields的步骤
*设计合理的Combination Table表结构,根据Flexfield 的类别,创建相应的Combination Table并设计合适的attribute 、segment、structure id、attribute catalog等字段。
*在Form 6i中创建Flexfield:
Discriptive Flexfield:property class —〉TEXT_ITEM_DESC_FLEX ,List of Values —〉ENABLE_LIST_LAMP
Key Flexfield:List of Values —〉ENABLE_LIST_LAMP
如果是Range Flexfields,就创建2个field 。
*调用Flexfield的API函数,在Form-level的when-new-form-instance trigger中调用。
• FND_DESCR_FLEX.DEFINE for descriptive flexfields
• FND_KEY_FLEX.DEFINE for key flexfields
• FND_RANGE_FLEX.DEFINE for range flexfields
FND_DESCR_FLEX.DEFINE和FND_KEY_FLEX.DEFINE参数有所不同。
Eg:
FND_KEY_FLEX.DEFINE(
BLOCK=>’LINES’,
FIELD=>’ACCTG_FLEX_VALUES’,
ID=>’GL_ACCOUNT_CC_ID’,
APPL_SHORT_NAME=>’SQLGL’,
CODE=>’GL#’,
NUM=>’101’);
FND_DESCR_FLEX.DEFINE(
BLOCK=>’ORDERS’,
FIELD=>’DESC_FLEX’,
APPL_SHORT_NAME=>’DEM’,
DESC_FLEX_NAME=>’DEM_ORDERS’);
这种区别和不同Flexfield的定义方法有关。
此外在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’);
另外TEMPLATE form在下列form-level triggers调用的APP_STANDARD.EVENT 过程直接调用了FND_FLEX函数。如果在block/item-level 上override了这些trigger,在处理代码中加上后面的函数。
KEY-EDIT APP_STANDARD.EVENT(‘KEY-EDIT’);
KEY-LISTVAL APP_STANDARD.EVENT(‘KEY-LISTVAL’);
POST-FORM APP_STANDARD.EVENT(‘POST-FORM’);
*在系统中注册Flexfield
注册Key Flexfield时,可以使用Qualifiers来设置Key之间的规则,Columns设置包含的可用列(尽管不会全被用到),KFV View Name和定义Descriptive Flexfield时DFV View Name类似,是一种特殊的View,用于生产报表,其名字我无法更改,猜想是系统根据Table Name自动生成。(假如一个Table使用了两个Description Flexfield,DFV View Name该如何命名?) |
-
1.JPG
(20.34 KB, 下载次数: 17)
|