Oracle EBS 基础概念:值集
标签: EBS基础概念
目录:
- 值集验证类型:无
- 值集验证类型:独立
- 值集验证类型:从属
- 值集验证类型:表
- 值集验证类型:特殊
- 值集验证类型:对
- 值集验证类型:可转换独立
- 值集验证类型:可转换从属 (略)
- FND函数
- 利用API创建独立值集,并插值
- 利用API创建从属值集,并插值
值集是弹性域段或报表参数的允许值定义。
1. 值集验证类型:无
允许输入任意值时,只要该值符合值集数据类型,长度等规则。
Format Type: Char, Date, DateTime, Number, Standard Date, Standard DateTime, Time.
例:15 Characters

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

3. 值集验证类型:从属
值被划分为不同的子集,每组子集和独立值集的某个值相关联。
应用1:物料分类 - 大分类、小分类
应用2:科目 - 一级科目、二级科目
(涉密,不贴图了)
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
)
智能推荐
Oracle EBS 基础概念:弹性域-说明性弹性域
弹性域是一种可自定义的字段,通过弹性域,可以订制Oracle应用产品,使之适合企业自身业务环境。 说明性弹性域用于收集Oracle应用产品必须信息之外的关于业务实体的附加信息。 Example: 物料说明性弹性域 Segment SQL: 说明性弹性域...
Oracle EBS Advanced Pricing Tables
Tables QP_LIST_HEADERS_B QP_LIST_HEADERS_B stores the header information for all lists. List types can be, for example, Price Lists, Discount Lists or Promotions. QP_LIST_LINES QP_LIST_LINES stores al...
Oracle EBS 报表输出Excel
Oracle EBS 报表输出Excel @吃萝卜去 首先需要在系统中增加请求的输出类型 增加EXCEL输出类型 在快码 ‘CP_OUTPUT_FILE_TYPE’ 中新增一行: 1.1) 路径: (Responsibility) Application Developer > (Menu) Application > (SubMenu) Lookups >...
Oracle EBS FNDLOAD的用法
大家做二次开发时一般都会在测试系统上进行测试,然后再挂到正式系统上,如果在测试系统上需要用到自己建立值集,则挂到正式系统上还要重新设置一边,麻烦的很,这里我就用提取ldt的方法免去这个麻烦! 代码如下: 1.在测试环境下cd $FND_TOP/admin/import(可以用pwd查看路径,一般都是这个目录)进入这个目录 2.FNDLOAD apps/<密码> 0 Y DOWNLOAD...
克隆Oracle EBS 服务环境
克隆Oracle EBS 服务环境 按照同事的文档做了几次,总是有问题,最后在同事的虎视眈眈下克隆成功,感谢Jay的无私分享。以下分析克隆的代码: 使用工具:WinSCP3 登录服务器 Putty 命令窗口 使用root账号登录 新建两个用户名,分别用来存放 appl 和 db 信息 在上面两个文件中分别 设置环境变量 以上步骤完成后,解压备份包(解压 ,修改文件名,修改权限可以直接写在一个.sh...
猜你喜欢
Oracle EBS Concurrent Request:Gather Schema Statistics
Oracle EBS 的Concurrent Request"Gather Schema Statistics"是一个和性能相关的Concurrent Program,它会对表,列和索引的做数据采样,并生成统计信息。基于成本的优化器(Cost-Based OptimizationCBO)会根据你的数据采样来评估执行计划,最终选取一个最高效的方式来执行SQL。 补充一点:数据采样...
Oracle EBS R12 整合ADF
环境: ADF version: 11.1.1.6.0 Oracle EBS version: R12.2.3 程序的目的在于取得 EBS 登入时的用户相关信息。整个程序架构如下图: ADF 的程序面: Step 01: 在 ViewController 依序建立 Java Class:ConnectionProvider、EBizUtil、EBSWrapperFilter、以及存取用户信息的 J...
使用RMAN在线clone Oracle EBS
-- 使用RMAN在线备份数据,然后在另外一台(同一台)上使用RAM备份进行clone EBS。 EBS R12.1.3 ,Oracle SID Test,克隆后Oracle Sid 为DEV 。 -- 主要步骤 1 数据库层和apps层预克隆 2 RMAN对数据库进行备份 3 删除掉数据文件、控制文件、online redo 4 RMAN对数据库进行恢复(恢复到原来的位置,也可以恢复到其他位置,...
iOS学习笔记-103.多线程02——线程状态、同步、通信
多线程02线程状态同步通信 一线程状态 1 线程的状态 2 控制线程状态 二多线程安全 1 多线程的安全隐患 2 安全隐患分析 3 安全隐患解决互斥锁 三原子和非原子属性 四原子和非原子属性的选择 五线程间通信 1 什么叫做线程间通信 2 线程间通信的体现 3 线程间通信常用方法 多线程02——线程状态、同步、通信 一、线程状态 1.1 线程的状态 1.2 控制线程状态 启...
Python基础学习之路(六) ------ 函数/异常处理
一.函数定义 二.参数 注意传参顺序,如果乱序传参可指定赋值 不定长参数 :是一个星号*加上参数名(需要注意的是:默认参数必须放在位置参数之后。) 3.返回值 返回多个值(返回类型是元组) 另外一种方式:我们也可以同时定义多个变量,来接收元组中的多个元素 变量作用域 : 常见错误 : 4. try except 关于Python的所有报错类型,有需要的话可以在这里查阅:https://www.ru...
