之所以要把这个文件的学习作为一个专题写出来,是因为之前不知道还有Custom.pll文件的使用而被坑了整整一天,所以打算来整理一下。
业务需求:在项目遇到一个问题,是要修改某个界面值的格式,使其保留两位小数,但改了之后发现有个Button响应要用该值与另外一个值进行比较相等后才能审批通过,因为有一个格式化过,而另外一个并未格式化,所以其肯定不相等。
解决探索: 最初的解决方法是想跟踪该Button事件,然后找到进行判读的代码所在。但经过很久的跟踪都找不到该段代码所在,不得已像高手询问,才知道有Custom.pll文件这回事。
Custom.pll文件:该文件是EBS标准的一个Library,在$AU_TOP/resource下可以下载。当系统启动时就会加载这个Library。Custom.pll库文件有两个function: zoom_available、style(event_name varchar2)和一个procedure: event(event_name varchar2)。
zoom_available:启用/停用 Zoom按钮。当返回Ture时启用Zoom按钮,返回False时停用Zoom按钮,
function zoom_available return boolean is
form_name varchar2(30) := name_in('_form');
block_name varchar2(30) := name_in('_block');
begin
if (form_name = 'GLXJEENT' and block_name = 'LINES')
then
return true;
elsif (......)
then
return true;
else
return false;
end if;
end zoom_available;
style(event_name varchar2): 该方法还未使用过,所以暂时不叙述。
event(event_name varchar2): 这个procedure是重点要讲述的地方,因为我们基本上都是在这个方法里调用我们的代码的。
通常我们可以通过修改Custom.pll文件来修改标准form的一些属性或是修改Lov的sql亦或是修改一些触发事件等。
比如:修改采购订单汇总Form的审批事
========== XX_PO_CUSTOM.PLL文件================================
PROCEDURE event(event_name VARCHAR2) IS
l_form_name VARCHAR2(30) := name_in('system.current_form');
l_block_name VARCHAR2(30) := name_in('system.cursor_block');
l_item_name VARCHAR2(100) := name_in('system.cursor_item');
Begin
IF event_name = ' WHEN-BUTTON-PRESSED '
If l_form_name = ' POXPOEPO' THEN
IF l_block_name = ' PO_CONTROL' THEN
IF l_item_name=' APPROVE' THEN
IF name_in('PO_HEADERS.TYPE_LOOKUP_CODE') = 'STANDARD' THEN
order_approve_checking; --
ELSIF name_in('PO_HEADERS.TYPE_LOOKUP_CODE') = 'CONTRACT' THEN
order_approve_checking2;
END IF;
End if;
End if;
End if;
End if;
End event;
================CUSTOM.PLL文件===========================
PROCEDURE event(event_name VARCHAR2) IS
Begin
XX_PO_CUSTOM.EVNET(' WHEN-NEW-BLOCK-INSTANCE');
End event;
====================================================================
最后记得要把改好的CUSTOM.PLL和XX_PO_CUSTOM.PLL重新上传到ebs服务器指定目录下,并进行编译。编译命令:
frmcmp_batch userid=apps/apps module=$AU_TOP/resource/CUSTOM.pll
output_file=$AU_TOP/resource/CUSTOM.plx module_type=LIBRARY
Custom pll文件介绍
猜你喜欢
转载自laoluo-space.iteye.com/blog/1956400
今日推荐
周排行