弹性域的客制(说明性弹性域)
以下涉及到的名称以及参数按照自己情况去设置
1. 建表,表上必须建有“序列”,“主关键字”
创建表: create table cux.table_name(...);
创建索引: create unique index ... on cux.table_name(flex_line_id);
创建序列: create sequence cux.table_name_s start with 1;
创建同义词:create synonym table_name for cux.table_name;
create synonym table_name_s for cux.table_name_s;
创建视图: create or replace view cux_viewname_v as
select ... from ...
注:表中的ArributeN,SegementN字段支持了Oracle ERP的弹性
Who字段
|
Col1
|
Col2
|
…
|
Atr1
|
…
|
AtrN
|
Seg1
|
…
|
SegN
|
Seg_Atr1
|
…
|
Seg_AtrN
|
也是Oracle表的一大特点,记录跟踪信息。
|
表基本字段(正常字段)
|
Attribute字段,常与descriptive flexfield 配合使用
|
Segment字段,常与key flexfield 配合使用
|
Col对应Atr字段,Seg也可对应Seg_Atr字段
|
2. 注册表
execute add_dd.register_table('cux','table_name,'t',8,10,90);
execute add_dd.register_column('cux','table_name','table_column1_name',1,'varchar2',30,'Y','N');
execute add_dd.register_column('cux','table_name','table_column2_name',2,'varchar2',30,'Y','N');
...
注:检验表是否注册成功
应用开发员——》应用——》数据库——》表
3. 说明性弹性域注册
应用开发员——》弹性域——》说明性——》注册
Name
|
Description
|
Title
|
方便用户辨别
|
Name
|
略
|
Table Name
|
Flexfield依赖的基表,可以是View
|
Structure Column
|
类似于Key Flexfield的Structure字段
|
Context Prompt
|
略
|
DFV View Name
|
略
|
Reference Fields
|
设置Reference字段
|
Columns
|
设置Underlying Table中可以使用的Attribute字段
|
按下“列”按钮,将ATTRIBUTE 字段启用为弹性域字段。
4.设置structure
应用开发员——》弹性域——》说明性——》段
Freeze Flexfield Definition
|
用法和功能与Key Flexfield中的类似
|
Compile
|
Segment
|
点击出现 Segment窗体
|
Context Field
|
|
Prompt
|
略
|
Value Set
|
可以基于手工录入值,现有表或视图的字段值
|
Required
|
是否必须输入
|
Displayed
|
是否显示,可显式切换Flexfield Structure
|
Default Value
|
缺省值,在存在context-sensitive segment时经常用到
|
Reference Field
|
如果在上一步有定义此处应可选
|
Context Field Value
|
|
Code
|
感觉Code Name两个字段总有一个得和Context Field Value对上,
|
Name
|
Description
|
略
|
Enable
|
这个属性很有用,可以很方便地修改Structure
|
Segment 窗体
|
|
Name
|
|
Window Prompt
|
应用Flexfield的标签提示
|
Column
|
Underlying Table 对应列
|
5.FORM中应用弹性域
(1)增加相关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;
(2)说明性弹性域定义:
一般情况,放在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’);
(3)触发器设置
此外在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’);
本文作者:网友 来源:网络