FORM提交请求后自动打开输出EDITOR_PKG.REPORT
DECLARE
p_mode_request_id number := 1;
p_ERRBUF VARCHAR2(250);
p_RETCODE NUMBER;
lv_msg varchar2(50);--出错信息
l_phase varchar2(50);--返回结果
l_status varchar2(50);--返回状态
l_dev_phase varchar2(50);
l_dev_status varchar2(50);
l_message varchar2(100);--请求返回信息
l_wait_outcome boolean;--等待请求返回结果
BEGIN
p_mode_request_id := APPS.FND_REQUEST.SUBMIT_REQUEST(
application => 'CUX',--此处为模块的名称,根据需要改为自己程序所在模块简称
program => 'CUX_BOM_COVER_PRINT_PKG',--此处为要提交的并发程序的名称
description => '盘点折算打印',
start_time => '',
sub_request => FALSE,
argument1 => :QUERY_FIND.organization_id, --原来包中的手工或FORM中提交请求的标识,此处设为0
argument2 => TO_CHAR(:QUERY_FIND.CREATION_DATE_F,'yyyy-MM-dd HH24:mi:ss'),
argument3 => TO_CHAR(:QUERY_FIND.CREATION_DATE_T,'yyyy-MM-dd HH24:mi:ss'),
argument4 => :QUERY_FIND.ITEM_NUMBER_F,
argument5 => :QUERY_FIND.ITEM_NUMBER_T,
argument6 => NULL
);
--如果返回0,则报错
if (p_mode_request_id = 0) then
FND_MESSAGE.RETRIEVE;
FND_MESSAGE.ERROR;
else
commit;
end if;
--等待请求完成,每5秒检查一次,最长等待60秒
l_wait_outcome :=apps.FND_CONCURRENT.WAIT_FOR_REQUEST(
request_id => p_mode_request_id
, interval=> 5
, max_wait => 60
, phase => l_phase
, status => l_status
, dev_phase => l_dev_phase
, dev_status => l_dev_status
, message => l_message );
--如果返回结果为COMPLETE,状态为NORMAL,显示输出报表,否则报错
if ( upper(l_dev_phase) = 'COMPLETE' and upper(l_dev_status) = 'NORMAL' ) then
EDITOR_PKG.report(p_mode_request_id, 'Y');
else
lv_msg := '盘点折算打印: [' || to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') || '] !';
fnd_message.set_string( lv_msg );
fnd_message.show;
end if;
END;
EDITOR_PKG.report功能主要是根据请求的ID,创建输出的URL然后打开。
库文件中:使用了editor_pkg2.browser_show
PROCEDURE browser_show(
fname varchar2,
node varchar2,
mtype varchar2,
req_id number default null)
获取路径:
fnd_profile.get('APPS_CGI_AGENT', base);
创建temp_id
id := fnd_webfile.create_id(fname,
svc,
10,
mtype,
req_id,
x_mode,
'Y');
获取URL
url := base || 'FNDWRR.exe?' || 'temp_id=' || id;
打开URL:
fnd_utilities.open_url(url);
set_application_property(CURSOR_STYLE,'DEFAULT');
值得注意的是系统产生的URL与系统的安全性有关。
如果将查看输出后弹出界面的URL(每次查看输出后面URL的temp_id都不同)在另一个网页标签打开后会提示:
Authentication failed. 如果有类似需求,将请求的输出URL通过自动发邮件给用户,用户在点开URL后也会提示权限呢验证问题。 所以类似的发邮件请求可以考虑开发程序包,将查询的数据通过拼接HTML内容作为正文发送邮件。
FORM提交请求后自动打开输出EDITOR_PKG.REPORT的更多相关文章
- inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效
inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...
- 所有浏览器打开后自动打开115.29.163.152/404.html这个网页,然后自动跳转到hao123 解决办法
这几天,电脑所有浏览器打开后自动打开115.29.163.152/404.html这个网页,然后自动跳转到hao123这个网页,网上查询没解决办法.开始自己找,搜索注册表,都无效,最后下载软件Hija ...
- autoOpenBrowser: true, 运行npm后自动打开浏览器
autoOpenBrowser: true, 运行npm后自动打开浏览器
- django中form页面刷新后自动提交的解决方案
如果一个页面包含了form,同时这个form中的提交按钮是type=submit的input的时候,你刷新该页面,就会有弹窗提示是否重新提交表单,这个特性不胜其烦,常见解决方法有两个: 第一种是前端的 ...
- Linux下svn提交文件后自动同步更新到网站目录
有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了. 首先,在网站目录下checkou ...
- 在IE、fixfox、chrome等浏览器中ajax提交成功后,打开新标签页面被浏览器拦截问题[转]
如题: 在项目中要在当前页面中,再新开一个页面, 新开页面的地址是ajax请求后返回的url --------- 试了,浏览器提示组织弹窗..... 网上找,找到了一个处理方式,思路是 1. 先打开一 ...
- vue 使用 npm run dev命令后 自动打开浏览器
1.使用vue-cli 老版本构建项目时, 可修改config文件夹下index.js文件 autoOpenBrowser 属性给为 true 即可 使用vue-cli 3.x 版本后,所有的配置项均 ...
- SpringBoot启动后自动打开浏览器访问项目
之前我们用SSM或者SSH进行JAVA WEB开发的时候,IDEA 需要配置Tomcat然后把项目放到tomcat运行,tomcat启动的时候会自动打开浏览器去访问项目,但是SpringBoot是内嵌 ...
- jenkins与gitlab集成,分支提交代码后自动构建任务(六)
一.在gitlab中创建token 复制token,此token只显示一次:6SB8y4jt31NnYG5-nWoi 二.在gitlab上为项目创建trunk分支 三.在jenkins中配置gitla ...
随机推荐
- enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现
enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用 ...
- 读取的XML节点中带有冒号怎么办?
读取的XML节点中带有冒号怎么办? 昨天,编程读取XML的时候,遇上了类似下面的一段XML <a:root xmlns:a="http://ww.abc.com/"> ...
- 终于说再见了!Google Reader
终于说再见了!Google Reader 投递人 itwriter 发布于 2013-07-02 13:28 评论(5) 有760人阅读 原文链接 [收藏] « » 今天 15:00 左右,Go ...
- 机器学习的Spark与Scala开发简介
一.机器学习常用开发软件:Spark.Scala 1. Spark简介: MLlib包含的库文件有: 分类 降维 回归 聚类 推荐系统 自然语言处理 在线学习 统计学习方法:偏向理论性,数理统计的方 ...
- HDOJ 1755 - A Number Puzzle 排列数字凑同余,状态压缩DP
dp [ x ] [ y ] [ z ] 表示二进制y所表示的组合对应的之和mod x余数为z的最小数... 如可用的数字为 1 2 3 4...那么 dp [ 7 ] [ 15 ] [ 2 ] = ...
- android实习程序6——拨号通话
拨号通话 ListView GridView AdapterView 在路径android-sdkr16\android-sdkr16\platform-tools确认存在adb.exe 下载youl ...
- gcc与g++的区别与联系
gcc和g++都是GNU(组织)的编译器. 一.误区详解 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的文件, gcc把它当作是C程序,而g++ ...
- Asp.Net 网站访问人数及在线人数
利用Application对象和Session对象可以统计历史访问人数和当前在线人数. 在会话开始和结束时,一定要进行加锁和解锁操作.由于多个用户可以共享Application对象,因此加锁是必要的, ...
- C语言之结构体
结构体类型 C语言中还有一种类型叫做结构体类型,它是可以保存不同类型数据并且可以把这些不同类型的数据当做一个整体来管理的类型 1).结构体的定义 语法: struct 结构体名{ 成员列表; }; ...
- html表单---学习笔记03
第8章 表单 8.1 表单标记<form> <form name="表单名称" method="提交方法" action="处理程序 ...