首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

2012-11-07 
Form 个性化-调用自定义程序库(实现:提交请求,自动输出请求结果)需求:PO发放界面,原有的菜单【查看文档】,标

Form 个性化-调用自定义程序库(实现:提交请求,自动输出请求结果)

需求:PO发放界面,原有的菜单【查看文档】,标准输出的报表及数据源XML无法明细到Distribution。

解决思路:客制明细报表,并挂请求,PO发放界面,利用个性化,新增一个菜单项【查看文档-客制】,该菜单项来执行请求并将请求结果自动呈现给用户。

  Form 个性化中,内置的Action提供一种名为:“调用自定义程序库”,其实就是CUSTOM.pll,这个文件。

 当项目中不允许需改标准Form,且利用个性化又无法达到需求目的的时候,CUSTOM.pll,就是个很好的帮手。灵活性很大,但是也有缺点。缺点后面再说。


1.下载CUSTOM.pll文件。

用FTP工具,切换到路径$AU_TOP/resource/目录下,并下载CUSTOM.pll.

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

2.编辑CUSTOM.pll,新增自己的CODE。

用Form Builder打开CUSTOM.pll文件

此处需要注意的是,CUSTOM.pll其实就是一个package,Event就是自定义程序库的入口程序,其Event_Name的参数就是,个性化的中设置的变元。

建议呢!每个自定义代码都加上加上作者的注释,包括作者、用途、及时间。

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

此次新增的代码为:

v_Po_Header_Id      Number(30) := Name_In('PO_RELEASES.PO_HEADER_ID');

由于我的代码中使用到 Editor_Pkg.Report过程,这个过程是在FNDCONC.pll中,所以我们需要把FNDCOC库添加到CUSTOM下面才可以使用。

如果本地resource没有,我们要从服务器上下载,也是在$AU_TOP/resource/目录下。

下载后,附加动作如下:

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)


3.上传并编译CUSTOM.pll

将编辑好的CUSTOM.pll文件保存,并上传至$AU_TOP/resource/目录下,覆盖。

编译pll.

cd $AU_TOP/resource/

frmcmp_batch module_type=LIBRARY module=CUSTOM userid=apps/apps

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

以上所用版本为R12。

如果是11i,编译命令如下:

f60gen module_type=LIBRARY module=CUSTOM userid=apps/apps

4.设置个性化

在 PO发放界面的个性化上面新增2个规则

1.新增菜单项

先设置规则,及条件,如图:

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

2.设置菜单项执行动作

规则、条件

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

活动设置

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

5.验证个性化及自定义程序

Form 个人化-调用自定义程序库(实现:提交请求,自动输出请求结果)

注意的是, 调用自定义程序库,必须重新登录EBS才能生效!OK搞定!


缺点:

1.版本控制麻烦,每个程序新增功能前都必须下载最新的CUSTOM.pll,而且必须得知会所有程序员。

2.CUSTOM.pll为公用的程序库,如果发生未知异常,且编译时不体现的话,全部的Form都可能受到影响。


欢迎补充。。。。欢迎拍砖!

热点排行