PS_Form个性化复杂需求新增Menu并调用Request(案例)
2014-06-01 Created By BaoXinjian
一、摘要
因为用户在调用Request时需输入很多参数,经过很多Form页面,如果想打印采购订单,发票,日记账时,
客户会要求在From中新增一个按钮,客户只需按这个按钮即可将采购订单进行输出,系统会自动调取采购订单页面上的数据,无需用户输入,实行自动化,增加用户交互性
一般这种需求有两种实现方式
- 通过custom.pll,用代码进行定制
- 通过form personalization,用设定进行定制
在调用程式时,一般会用到fnd_request api
- fnd_request.add_layout: 添加打印文件
- fnd_request.submit_request: 添加打印数据的并发程式
二、案例
需求:客户要求新增一个菜单项,调用打印Order的功能
1. 如何实现分析:Form中新建Menu以运行Request
(1). 建立Global Parameter<xx_request_id>,并初始化;
(2). 建立Menu;
(3). 建立Menu Action, 并调用fnd_request.submit和fnd_request.add_layout;
(4). 对xx_request_id赋值;
(5). 建立Message,显示执行成功的信息和request_id;
2. 具体操作步骤
Step1. 建立Global Parameter<xx_request_id>,并初始化;
Step2. 建立Menu;
Step3. 建立Menu Action, 并调用fnd_request.submit和fnd_request.add_layout;
1 ='DECLARE
2 l_layout BOOLEAN;
3 l_req_id NUMBER;
4 BEGIN
5 DELETE FROM xxont.xxont_4716_order_conf_gt;
6 l_layout := fnd_request.add_layout( ' || '''XXONT''' ||
7 ',' || '''XXONT0701''' ||
8 ',' || 'NULL' ||
9 ',' || 'NULL' ||
10 ',' || '''PDF''' || ');
11 l_req_id := fnd_request.submit_request( ' || '''XXONT''' ||
12 ',' || '''XXONT0701''' ||
13 ',' || '''''' ||
14 ',' || '''''' ||
15 ',FALSE' ||
16 ',' || ${item.ORDER.HEADER_ID.value} ||
17 ',chr(0));
18 COMMIT;
19 INSERT INTO xxont.xxont_4716_order_conf_gt(request_id) VALUES(l_req_id);
20 END'
Step4. 对xx_request_id赋值;
Step5. 建立Message,显示执行成功的信息和request_id;
3. 新知识点
(1). Personalization 控制的level,其function和form的区别
(2). 控制menu出现的block,如是多个block,可用逗号间隔;
(3). fnd_request 中的add_layout 和 submit的应用
Thanks and Regards
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建