- 浏览: 325885 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1500每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1213用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 12030EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1606问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 37501. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5475Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16951.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1166(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1167FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 14351当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2923FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2179[code]fnd_profile.value的用法: ... -
Form中Block的重新查询
2011-05-31 12:28 1118Form中某些按钮可能调用了Package对表中某些字段进行更 ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1258两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1057(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1173范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11341.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1400本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
form开发的小总结
2011-03-22 12:14 1760Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ... -
FORM开发相关技术
2011-03-22 12:14 37381.一进页面就能看到表 ...
相关推荐
最后,我们需要设置 Form 的行为和逻辑,使用 CUSTOM.PLL 来编写自定义代码。 EBS Form 个性化是一个功能强大且灵活的功能,提供了灵活的 Form 开发和自定义能力。通过 EBS Form 个性化,用户可以快速创建出满足...
1G时钟.pll
标题"PLL.rar_PLL_Sin Pll"暗示了这个压缩包内容与PLL相关,特别是与正弦波(sin)和PLL在干扰分析方面的应用有关。 描述中提到的"PLL sin with interference analisys"进一步确认了我们关注的重点是含有噪声干扰的...
Oracle EBS API使用说明涉及了Oracle电子商务套件(Oracle E-Business Suite,简称EBS)中API的使用方法、查找API信息的资源以及如何进行接口开发的相关知识。API在Oracle EBS中扮演了非常重要的角色,作为Oracle ...
3. ICS9248BF-87.pll、ICS94225AF.pll、ICS950910AF.pll、ICS954127BFLF.pll、ICS9LPRS954BGLF.pll、ICS9UMS9610BL.pll、ICS9LPRS419DFLF.pll、ICS9148BF-26.pll:这些都是 Intersil(现为 Renesas,瑞萨电子)的PLL...
**锁相环(PLL)与SOGI二阶锁相环** 锁相环(Phase-Locked Loop,简称PLL)是一种广泛应用于通信、信号处理、频率合成等领域的电子系统。其基本工作原理是通过比较输入参考信号与系统产生的信号之间的相位差,调整...
### ORACLE EBS APS_FORM_库存组织选择LOV实现 #### 概述 在Oracle E-Business Suite(EBS)中,APS_FORM_库存组织选择LOV(List of Values)功能是通过特定的表单(Form)实现的一种交互式用户界面组件。它允许...
**PLL(Phase-Locked Loop)锁相环原理详解** PLL,即锁相环,是一种广泛应用于通信、数字信号处理和时钟恢复等领域的电路技术。它通过比较输入信号与内部振荡器产生的信号之间的相位差,从而实现对振荡器频率的...
另一种方法是使用反正切函数(arctan)结合滑模观测器来估计电机的状态。在无传感器矢量控制中,电机的磁链和速度需要被实时估计。通过反正切函数,可以从电压和电流信号中解耦出这些信息。同样地,滑模观测器用于...
PLL 的硬件实现可以通过使用专门的 PLL 芯片或使用数字信号处理器来实现。常用的 PLL 硬件实现电路包括了鉴相器、环路滤波器和压控振荡器三个部分。 4. PLL 的软件实现 PLL 的软件实现可以通过使用数字信号处理器...
Oracle 提供的 `CUSTOM.PLL` 允许开发者扩展或修改标准 Form 的 LOV(列表选择项)。通过调用这个库中的函数,可以定制 LOV 行为,如添加新的值或过滤已有的选项。 4. **主从关系 Form 中的汇总行**: 对于有主从...
4. 数字PLL(DPLL):相对于传统的模拟PLL,DPLL使用数字信号处理技术,具有更高的精度和灵活性。 PLL技术是现代电子系统中不可或缺的一部分,理解其工作原理和应用对于设计高效、可靠的系统具有重要意义。通过深入...
PLL(Phase-Locked Loop,锁相环)是一种广泛应用于通信、信号处理和数字系统中的电路技术,用于同步信号或者恢复信号的时钟频率。在C++编程中,实现数字PLL可以涉及许多关键概念和步骤。这里我们将深入探讨PLL的...
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 ...
在这个“rtl.zip_PLL_RTL开发_pll VHDL_pll vhdl_频率控制”项目中,我们将深入探讨PLL的设计、RTL(Register Transfer Level,寄存器传输级)开发流程以及如何使用SPI(Serial Peripheral Interface)接口进行频率...
PLL(Phase-Locked Loop,锁相环)是一种广泛应用于通信、信号处理和数字系统中的电路技术,主要用于频率合成、频率锁定、相位同步等任务。本资料“PLL.rar”包含了关于PLL设计、参数调试和转速估算的MATLAB实现,这...
在使用这个资源时,可以结合具体的FPGA型号和开发环境,逐步了解并实践PLL参数的修改步骤,从而实现对系统时钟频率的精确控制。通过这样的学习,不仅可以掌握PLL的基本工作原理,还能提升FPGA设计中时钟管理的能力。
通过修改和运行代码,可以直观地看到PLL如何响应不同的输入信号,加深对PLL的理解。 总之,"PLL的MATLAB建模源代码"是一个宝贵的教育资源,它提供了一种动态、可交互的方式去探索和掌握锁相环的工作机制,同时也为...
标题中的"easy pll.exe"指的是一个可执行文件,它是一个用于配置老款国半(National Semiconductor,现已被Texas Instruments收购)锁相环(PLL)芯片的工具,特别是LMX2326型号。这个工具提供了用户友好的界面,...
PLL(Phase-Locked Loop,锁相环)是一种广泛...通过对"pll.mdl"文件的深入研究和修改,我们可以更深入地理解PLL的工作原理,以及如何利用MATLAB优化其性能。这在通信系统设计、信号同步和频率恢复等领域具有重要意义。