- 浏览: 318121 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (169)
- ORACLE EBS FORM开发 (39)
- ORACLE EBS业务 (18)
- ORACLE DB (13)
- ACCOUNTING (0)
- 休闲娱乐 (5)
- 开发自己 (1)
- OAF开发 (15)
- LINUX (2)
- ORACLE EBS文档 (1)
- 疑难杂症 (3)
- WEB ADI (2)
- 报表开发 (2)
- EBS有用SQL (8)
- ORACLE EBS开发 (5)
- ORACLE EBS DBA (15)
- EBS日常维护 (24)
- Oracle EBS workflow (2)
- Oracle EBS 个性化 (2)
- EBS常见接口表应用 (10)
- EBS标准API应用 (3)
- Oracle EBS 数据迁移 (2)
- Oracle EBS杂项技术荟萃 (1)
- EBS之事半功倍 (1)
- ORACLE EBS ALERT (1)
- OCP之路 (4)
最新评论
-
594597634:
楼主没有给解决方案啊
!我急求如何解决啊
亲历:JBO-25058 -
sjmei:
嗯,不错,学习了
PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT -
maojieming:
做公交车,应该是“关门打X”
北京公交车一族必备绝技 -
hollysun:
现在功夫都练得炉火纯青了,独孤九剑~
北京公交车一族必备绝技 -
xyh:
还有一招:锁喉功,掐死你,捏死你
北京公交车一族必备绝技
在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般来说都是做一些条件限制。在不修改标准Form的fmb文件的前提下,可以通过Custom.pll来实现。
一、Custom.pll的工作机制
在EBS中大部分Form都是在TEMPLATE.fmb的基础上创建的,另外还有一些HR模块的Form是在HRTEMPLT.fmb的基础上创建的,这些模板Form在form级的触发器中会去调用custom.pll
这些Form级的触发器为:
- ZOOM
- WHEN-NEW-FORM-INSTANCE
- WHEN-NEW-BLOCK-INSTANCE
- WHEN-NEW-RECORD-INSTANCE
- WHEN-NEW-ITEM-INSTANCE
- WHEN-VALIDATE-RECORD
在HRMS模块,还有以下触发器也调用了custom.pll
- PRE-DELETE
- POST-DELETE
- PRE-UPDATE
- POST-UPDATE
- PRE-INSERT
- POST-INSERT
- POST-FORMS-COMMIT
- WHEN-CREATE-RECORD
- KEY-DELREC
在这些触发器中,会调用APP_STANDARD.EVENT过程中的call_all_libraries(event_name),call_all_libraries过程会调用custom.event(event_name)。
二、使用custom.pll修改标准form的LOV
从服务器下载custom.pll文件,使用form builder打开。点击PL/SQL Libraries,点击新建按钮,另存为pll文件,例如XXPOXPOEPO.pll,新建Package XXPOXPOEPO
新建procedure set_po_vendor_lov如下:
procedure set_po_vendor_lov
is
l_query_string varchar2(2000);
l_customer_group_id recordgroup;
l_temp_id number;
l_customer_lov lov;
begin
if name_in(’system.cursor_item’) = ‘PO_HEADERS.VENDOR_NAME’ then
l_query_string :=
‘SELECT DISTINCT
pov.vendor_name,
pov.segment1
FROM po_vendors pov
WHERE pov.enabled_flag = ”Y” ’;
if not id_null(find_group(’CUX_SUPPLIER_NAME’)) then
delete_group(’CUX_SUPPLIER_NAME’);
end if;
--新建lov record group
l_customer_group_id := create_group_from_query(’CUX_SUPPLIER_NAME’, l_query_string);
--置换lov
set_lov_property(’SUPPLIER_NAME’, GROUP_NAME, ‘CUX_SUPPLIER_NAME’);
end if;
end set_po_vendor_lov;
首先,使用create_group_from_query来创建一个lov record group,然后将我们需要修改的LOV的group置换为我们创建的group。由于这个过程是在when-new-item-instance中调用的,为了防止其他非使用该Lov的Item也执行改过程,所以在程序的开始进行了name_in(’system.cursor_item’) = ‘PO_HEADERS.VENDOR_NAME’条件的判断,另外,由于record group创建一次在第二次如果再次创建就会报错,所以使用了
if not id_null(find_group(’CUX_SUPPLIER_NAME’)) then
delete_group(’CUX_SUPPLIER_NAME’);
end if;
删除group再创建(delete_group只能删除由程序创建的record group)。之所以用这种逻辑而不在创建的时候判断是否已经存在该group是因为这个query_string是动态的,所以在每次都创建才能保证每次LOV的结果是正确的。
接下来,就要把我们的pll添加到custom里面去,点击custom的Attached Libraries,点击添加按钮,选择XXPOXPOEPO。双击打开custom.pll中的custom package,将procedure event过程修改为如下:
procedure event(event_name varchar2) is
form_name varchar2(30) := name_in(’system.current_form’);
block_name varchar2(30) := name_in(’system.cursor_block’);
–item_name varchar2(30) := name_in(’system.cursor_item’);
begin
if event_name = ‘WHEN-NEW-ITEM-INSTANCE’ then
if form_name = ‘POXPOEPO’
and block_name = ‘PO_HEADERS’
–and item_name = ‘PO_HEADERS.VENDOR_NAME’
then
XXPOXPOEPO.set_po_vendor_lov;
end if;
end if;
end event;
在开始的时候,我是在custom过程中去判断当前Item是否等于VENDOR_NAME(红颜色的代码),结果发现添加了改条件之后,某一些Form会出现no data found的错误(例如应用开发员的功能form),这是因为该Form在打开的时候system.cursor_item为空,所以要把item的判断写进了自己客户化的pll中。
最后,把custom.pll和xxpoxpoepo.pll上传到服务器$AU_TOP/resource目录下,使用下面的命令编译pll,退出EBS再重新登陆,LOV就生效了
f60gen module_type=LIBRARY module=CUSTOM userid=apps/apps
<script type="text/javascript"></script>
发表评论
-
FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法
2013-01-16 16:28 1467每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1174用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 11882EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1570问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 36621. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5440Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16401.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1126(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1124FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 13721当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2864FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2110[code]fnd_profile.value的用法: ... -
Form中Block的重新查询
2011-05-31 12:28 1076Form中某些按钮可能调用了Package对表中某些字段进行更 ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1212两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1021(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1136范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11021.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1355本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
form开发的小总结
2011-03-22 12:14 1723Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ... -
FORM开发相关技术
2011-03-22 12:14 36201.一进页面就能看到表 ...
相关推荐
使用Custom.pll修改标准Form的LOV 16 实现主从关系Form中汇总行金额/数量 21 Oracle EBS客户化程序中格式化金额 25 Form中动态创建PopList 28 Oracle EBS环境下查找数据源(Form篇) 30 解决EBS中混淆经营单位和库存...
1G时钟.pll
使用MATLAB中的simulink,搭建了一个基于二阶广义积分器的软件锁相环
电机控制器,两种基于滑模观测器的PMSM无感矢量控制仿真(开关设置区分): 1. PLL+滑模(降低高频开关噪声); 2. arctan+滑模; 有配套算法原理资料
我们经常遇到一个问题:对于某个功能,Oracle是否提供标准的API给我们使用?如果有,则可以方便批量导入新的数据或者批量处理业务数据。 对于常用的EBS API说明以及相关的使用,黄建华的一篇文档常用接口开发参考>...
C++ programm. Digital pll.
PLL设计的经典书 简洁易懂,英文版 Table of Contents PLL BASICS .............................................................................................................................................
Phase Locked Loops (PLL) Introduction to PLL The concept of Phase Locked Loops (PLL) first emerged in the early 1930’s.But the technology was not developed as it now, the cost factor for developing ...
通过更改pll的参数修改系统时钟输出频率为任意值.
详细介绍PLL的原理,设计方法等 Table of Contents PLL BASICS ................................................................................................................................................
1.领域:matlab,PLL锁相环环路稳态 2.内容:通过MATLAB仿真分析PLL锁相环环路稳态频率响应和暂态响应+代码操作视频 3.用处:用于PLL锁相环环路稳态编程学习 4.指向人群:本科,硕士,博士等教研使用 5.运行...
pll的matlab仿真模型,完整,可以使用
PLL的单向仿真电路 可以直接打开使用的哈哈哈哈哈哈哈
Matlab code function PLL analisys
采用matlab对FLL辅助PLL的载波跟踪进行仿真
PLL sin with interference analisys
UsetheMatlabtomodelthePLLsystemcomponent-pll_component_design_matlab.pdf This document will deal with the PLL component design from a control point of view. It is desired to be able to predict the ...
基于PSIM的锁相环。可以放在任何PSIM的模型,例如三相并网和单相的也可以的
该算法是介绍三相软件锁相环源代码,通过C编写
PLL Saw function Analisys