Oracle EBS 基础概念:值集

目录:

  1. 值集验证类型:无
  2. 值集验证类型:独立
  3. 值集验证类型:从属
  4. 值集验证类型:表
  5. 值集验证类型:特殊
  6. 值集验证类型:对
  7. 值集验证类型:可转换独立
  8. 值集验证类型:可转换从属 (略)
  9. FND函数
  10. 利用API创建独立值集,并插值
  11. 利用API创建从属值集,并插值

值集是弹性域段或报表参数的允许值定义。

1. 值集验证类型:无
允许输入任意值时,只要该值符合值集数据类型,长度等规则。
Format Type: Char, Date, DateTime, Number, Standard Date, Standard DateTime, Time.

例:15 Characters
FFFFF,t_70)

2. 值集验证类型:独立
手工输入一组实际值作为批准使用的值,值集中值的含义与其它任何段的值无关。

定义值集名称
在这里插入图片描述手工输入值
在这里插入图片描述
3. 值集验证类型:从属
值被划分为不同的子集,每组子集和独立值集的某个值相关联。
在这里插入图片描述
大类使用独立值集
在这里插入图片描述在这里插入图片描述
小类使用从属值集
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
这样在大类选择“光学材料”时,小类只会显示“玻璃”、“晶体”和“光学塑料”以供选择。


4. 值集验证类型:表
值来源于表,使用于值数量巨大、改动频繁且有应用产品负责维护。
在这里插入图片描述
在这里插入图片描述
Table Name:多个表可以用逗号分开,如果需要,可以使用表的别名
Value:显示在参数lov中的列,同时也是返回的值,不需要定义别名。
Meaning: 对应的是lov显示的说明段,会自动附上”说明“别名。
ID:有ID时传ID,没ID时传值;ID中的列不会显示在lov中;不能再出现在附加列中,否则会报错;
Where/Order by: 不可以在子句中使用 HAVING 或 GROUP BY,也不可以在子句中使用 UNION,INTERSECT,MINUS,PLUS 或其它集运算符,除非它们是在子查询中。
Additional Columnes:不需要返回但要在lov中显示的列。

语法:sql_expression_such_as_column_name “Title”(width)
可以包括更复杂的 SQL 片段,如级连的列名和常数。例如:
f.user_form_name “Form Title”(30),
'Uses table: ’ || t.user_table_name “Table Used”(30)

5. 值集验证类型:特殊
可将整个键弹性域作为说明性弹性域或报表参数的段值。
在这里插入图片描述上图中的科目就是由一个弹性域段组成,在这里应用了特定值集的方式来定义科目所对应的值集。那么,当我们的Mouse跳到科目这个参数输入窗口时,就会弹出弹性域录入窗口,当我们把组合选好后,点确定,就可以在科目中看到这个组合值。

定义特殊验证值集
需要指定两项内容:事件和函数。事件是函数产生的时间,函数是对键弹性域用户出口的调用。

事件
 编辑:当用户光标在数据录入模式下进入编辑段时,调用特殊验证例行程序。
 装入:在查询后立即调用特殊验证例行程序以便填写该段。
 验证:当用户光标离开段或关闭弹出式窗口,或将默认值复制至段或报表参数时,均调用特殊验证
例行程序。

 插入/更新
 查询
 编辑/编辑 
 列表值
这四个事件是为了未来的扩展预定义的。

例 1: GL Account
查看报表“Posted Payment Register”是如何调用GL Account键弹性域
在这里插入图片描述在这里插入图片描述
定义特殊验证值集:AP_GL_SRS_FLEXFIELD
在这里插入图片描述在这里插入图片描述

Edit
FND POPID
APPL_SHORT_NAME=SQLGL
CODE="GL#"
NUM=:$FLEX$.GL_SRS_CHART_OF_ACCOUNTS_ID
REQUIRED=Y
VALIDATE=FULL
ID=:!ID
SEG=:!VALUE
DESC=:!MEANING
NAVIGATE=!DIR
DINSERT=N


Load
FND LOADID
APPL_SHORT_NAME=SQLGL
CODE="GL#"
NUM=:$FLEX$.GL_SRS_CHART_OF_ACCOUNTS_ID
REQUIRED=Y
VALIDATE=FULL
ID=:!ID
SEG=:!VALUE
DESC=:!MEANING
NAVIGATE=!DIR
DINSERT=N

Validate
FND VALID
APPL_SHORT_NAME=SQLGL
CODE="GL#"
NUM=:$FLEX$.GL_SRS_CHART_OF_ACCOUNTS_ID
REQUIRED=Y
VALIDATE=FULL
ID=:!ID
SEG=:!VALUE
DESC=:!MEANING
DINSERT=N

在这里插入图片描述在这里插入图片描述
Event至少要有Edit和Validate
少了编辑无法进入各段的编辑模式。
少了验证会出现未定义用户出口的错。
少了导入,在提交报表时,没有任何影响!但如果应用于FORMS中,则必须有LOADID事件!
因为如果在查询模式下,系统可能并不会弹出弹性域窗口进行验证事件,则无法将值写入相应的ID。
则需要LOADID事件来将相应的Value和ID写入

详细的FND函数语法请参考:揭开FND函数的面纱


并行程序调用特殊验证值集
在这里插入图片描述
效果:
在这里插入图片描述
6. 值集验证类型:对
用两个弹性域共同指定有效值的范围。

栗子:INV_SRS_ACCOUNT_PAIR
并行程序:Material account distribution detail
在这里插入图片描述在这里插入图片描述

Edit
FND POPIDR CODE="GL#"
  APPL_SHORT_NAME="SQLGL"
  NUM=:$FLEX$.INV_SRS_NUMBER          
  VALIDATE="NONE"
  SEG=:!VALUE
  NAVIGATE=!DIR
  REQUIRED="N"
  ALLOWNULLS="Y"

Validate  FND VALIDR CODE="GL#"  ... (Edit去掉NAVIGATE即可)

7. 值集验证类型:可转换独立
输入内容必须包含在预定义的允许值列表中,可以使用转换值。
栗子:AP_APPROVAL_STATUS Program: Invoice Approval Status
在这里插入图片描述在这里插入图片描述
请求参数选择的值
在这里插入图片描述
转换后的实际值
在这里插入图片描述

8. 值集验证类型:可转换从属 (略)
对照基于某个先前值得一组值对输入进行检查,可以使用转换值。

9. FND函数
Reference: 揭开FND函数的面纱

10. 利用API创建独立值集,并插值
A. 创建值集并插入一个值

Begin    --可在SQL窗口直接运行
fnd_flex_val_api.set_session_mode('customer_data'); --必须,否则会报错
--且很多参数都是根据Mode判断得出的,具体可查看FND_FLEX_VAL_API
  FND_FLEX_VAL_API.create_valueset_independent(
        value_set_name     => 'CUX_LCY_INDEPENDENT_DEMO', --Value Set Name                              
        description        => '利用API创建独立值集',      --Description
        security_available => 'N',
        --Sececurity Type: 'N'-No;'H'-Hierarchical; 'Y'-Non-Hierarchical 
        enable_longlist => 'N',
        --List Type :'N'-List of Values; 'Y'-Long List of Values; 'X'-Poplist
        format_type             => 'C',
        maximum_size            => 100,
        precision               => NULL,
        numbers_only            => 'N',
        uppercase_only          => 'N',
        right_justify_zero_fill => 'N',
        min_value               => NULL,
        max_value               => NULL);

  fnd_flex_loader_apis.up_value_set_value(
        p_upload_phase => 'BEGIN', --给'END'需要自己写逻辑,不清楚具体可以干嘛                                          
        p_upload_mode => null,                                          
        p_custom_mode => 'FORCE',                                          
        p_flex_value_set_name => 'CUX_LCY_INDEPENDENT_DEMO',
        p_parent_flex_value_low => null,
        p_flex_value => '01',
        p_owner => null,
        p_last_update_date => sysdate,
        p_enabled_flag => 'Y',
        p_summary_flag => 'N',
        p_start_date_active => NULL,
        p_end_date_active => NULL,
        p_parent_flex_value_high => NULL,
        p_rollup_flex_value_set_name => NULL,
        p_rollup_hierarchy_code => NULL,
        p_hierarchy_level => NULL,
        p_compiled_value_attributes => 'Y' || CHR(10) || 'N',
        p_value_category => null, 
        p_attribute1 => null,
        p_attribute2 => null,
        p_attribute3 => null,
        p_attribute4 => null,
        p_attribute5 => null,
        p_attribute6 => null,
        p_attribute7 => null,
        p_attribute8 => null,                                          
        p_attribute9 => null,
        p_attribute10 => null,
        p_attribute11 => null,
        p_attribute12 => null,
        p_attribute13 => null,
        p_attribute14 => null,
        p_attribute15 => null,
        p_attribute16 => null,
        p_attribute17 => null,
        p_attribute18 => null,
        p_attribute19 => null,
        p_attribute20 => null,
        p_attribute21 => null,
        p_attribute22 => null,
        p_attribute23 => null,
        p_attribute24 => null,
        p_attribute25 => null,
        p_attribute26 => null,
        p_attribute27 => null,
        p_attribute28 => null,
        p_attribute29 => null,
        p_attribute30 => null,
        p_attribute31 => null,
        p_attribute32 => null,
        p_attribute33 => null, 
        p_attribute34 => null, 
        p_attribute35 => null,
        p_attribute36 => null,
        p_attribute37 => null,
        p_attribute38 => null,
        p_attribute39 => null,
        p_attribute40 => null,
        p_attribute41 => null,
        p_attribute42 => null,
        p_attribute43 => null,
        p_attribute44 => null,
        p_attribute45 => null,
        p_attribute46 => null,
        p_attribute47 => null,
        p_attribute48 => null,
        p_attribute49 => null,
        p_attribute50 => null,
        p_flex_value_meaning => '01',
        p_description => '科传费项设置');
commit;
end;

创建值集和值成功
在这里插入图片描述在这里插入图片描述

B. Cursor循环插值
建立临时表

create table test_a
(
  num     number not null,
  value            varchar2(30),                  
  description      varchar2(50)
)

运行select * from test_a for update
在这里插入图片描述

Excel中准备好数据,需要多一列给到如图位置的Sequence列。
在这里插入图片描述
在这里插入图片描述
粘贴数据至临时表后,点击“ ”锁住编辑权限。
运行“select * from test_a” post date to database.
运行Commit;
在这里插入图片描述
游标循环插入值

Declare
  CURSOR user_cursor IS select value, description from test_a;  --定义游标
BEGIN 
   FOR temp in user_cursor LOOP 
        fnd_flex_loader_apis.up_value_set_value(
        --... ...
        p_flex_value => temp.value,
        --... ...
        p_flex_value_meaning => temp.value,
        p_description => temp.description);
   END LOOP;    
commit;
END;

C. 另一个插值API

declare
v_temp varchar2(100);
begin
   fnd_flex_val_api.create_independent_vset_value(
   	p_flex_value_set_name => 'CUX_LCY_INDEPENDENT_DEMO',  --Value Set Name
  	 p_flex_value => '02',                 --Value
   	p_description => '科传费项设置02',       --Description
  	 p_enabled_flag => 'Y',
   	p_start_date_active => null,
   	p_end_date_active => null,
   	p_summary_flag => 'N',
   	p_structured_hierarchy_level => null,
   	p_hierarchy_level => null,
   	x_storage_value => v_temp);    
   commit;                                                                
end;

11. 利用API创建从属值集,并插值

A.	建立SET
fnd_flex_val_api.create_valueset_independent(v_set_name
                                             ,v_description
                                             ,v_security
                                             ,v_enable_longlist
                                             ,v_format_type
                                             ,v_maximum_size
                                             ,v_numbers_only
                                             ,v_uppercase_only
                                             ,v_right_justify_zero_fill
                                             ,v_min_value
                                             ,v_max_value
                                             )
fnd_flex_val_api.create_valueset_dependent((v_set_name
                                             ,v_description
                                             ,v_security
                                             ,v_enable_longlist
                                             ,v_format_type
                                             ,v_maximum_size
                                             ,v_numbers_only
                                             ,v_uppercase_only
                                             ,v_right_justify_zero_fill
                                             ,v_min_value
                                             ,v_max_value
                                             ,v_parent_value_set
                                             ,v_default_value
                                             ,v_default_meaning
                                             )

B.	删除SET
fnd_flex_val_api.delete_valueset(v_value_set_name)


C.	增加VALUE
fnd_flex_val_api.create_independent_vset_value(v_value_set_name
                                               ,v_value
                                               ,v_storage_value--output parameter
                                               )

fnd_flex_val_api.create_dependent_vset_value(v_value_set_name
                                             ,v_parent_value
                                             ,v_value
                                             ,v_storage_value --output parameter
                                             )

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值