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 - 鲍新建
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?