1、首先调用函数 fnd_request.add_layout 来设置打印报表的rtf模板,
RESULT:= FND_REQUEST.ADD_LAYOUT(TEMPLATE_APPL_NAME => :TEMPLATE_APPL_NAME, TEMPLATE_CODE => :TEMPLATE_CODE, TEMPLATE_LANGUAGE => :TEMPLATE_LANGUAGE, TEMPLATE_TERRITORY => :TEMPLATE_TERRITORY, OUTPUT_FORMAT => UTPUT_FORMAT, NLS_LANGUAGE => :NLS_LANGUAGE);
说明:
返回值:
boolean 类型的变量;
template_appl_name:为请求模板对应的应用简;
template_code :为请求模板的简称,一般与请求的简称相同;
template_language :指运行请求时模板的语言,中文为 ZH,英文为US,此参数必需在挂模板时所选的语言范围内;
template_territory :指语言对应的区域,中国为 CN;
output_format: 指报表输出时的格式类型,如 PDF,EXCEL等;
nls_language: 留空即可。
2、在 result 返回值为 true 时再调用函FND_REQUEST.SUBMIT_REQUEST 来正式提交请求:
ln_request_id := FND_REQUEST.SUBMIT_REQUEST(APPLICATION => :APPLICATION, PROGRAM => :PROGRAM, DESCRIPTION => :DESCRIPTION, START_TIME => :START_TIME, SUB_REQUEST => :SUB_REQUEST, ARGUMENT1 .. 100 => :ARGUMENT1 .. 100);
说明:
返回值:数值类型的变量;
application :指请求对应的应用简称;
program :指请求的简称;
description :指描述,在调用时留空即可;
start_time :指请求开始运行的时间,在调用时留空即可,表示即时执行;
sub_request :指当前请求是否是子请求,一般在调用时赋值 false;
argument1..100 : 指调用请求时的参数,最多100个,在form中调用时可在最后一个参数后用 chr(0)来表示为最后一个参数,不用写满100个参数,如果在pl/sql中调用则需要写满100个参数。
3、执行后如果 ln_request_id > 0 表示提交成功,则需要显式执行 commit才可最终提交成功。
如果期间没有显式执行commit导致请求提交后不能立刻执行,而且会导致请求不成功。
4、 还可以使用函数
FND_CONCURRENT.WAIT_FOR_REQUEST(REQUEST_ID IN NUMBER DEFAULT NULL, INTERVAL IN NUMBER DEFAULT 60, MAX_WAIT IN NUMBER DEFAULT 0, PHASE OUT VARCHAR2, STATUS OUT VARCHAR2, DEV_PHASE OUT VARCHAR2, DEV_STATUS OUT VARCHAR2, MESSAGE OUT VARCHAR2) RETURN BOOLEAN;
说明:
等待并发请求的完成,然后返回请求的阶段、状态以及完成消息。在等待的过程中每隔一段时间检查一下。其中,request_id指并发请求的id,interval指两次检查见等待的秒数,两次检查之间该程序会休息,max_wait指等待并发请求完成所能等待的的最长时间,单位为秒。
补充:
由于Oracle的请求操作时并发处理,执行此函数将很可能等待很长时间,因此,一般不建议使用该函数,其实fnd_request.submit_request函数返回值不为零已经表示成功提交请求了。
5、可以使用过程editor_pkg.report(REQUEST_ID,'Y')来显示成功执行请求之后生成的报表。但是因为Oracle的 并发处理机制,执行此函数将很可能等待很长时间才能够显示生成的报表,因为需要请求完成才能生成相应的报表,才能执行该过程。
例:
PROCEDURE PRINT IS L_DEFAULT_LANGUAGE VARCHAR2(20); L_DEFAULT_TERRITORY VARCHAR2(20); L_TEMPLATE_CODE VARCHAR2(200); REQUEST_ID NUMBER; V_LAYOUT BOOLEAN; BEGIN BEGIN SELECT XTV.DEFAULT_LANGUAGE, XTV.DEFAULT_TERRITORY, XTV.TEMPLATE_CODE INTO L_DEFAULT_LANGUAGE, L_DEFAULT_TERRITORY, L_TEMPLATE_CODE FROM XDO_TEMPLATES_VL XTV WHERE XTV.APPLICATION_SHORT_NAME = 'CUX' AND XTV.TEMPLATE_CODE = :PRINT_BANK_APY.TEMPLATE_CODE; EXCEPTION WHEN OTHERS THEN FND_MESSAGE.SET_NAME('CUX', 'RTF文件有误!'); FND_MESSAGE.ERROR; RAISE FORM_TRIGGER_FAILURE; END; V_LAYOUT := FND_REQUEST.ADD_LAYOUT('CUX', L_TEMPLATE_CODE, L_DEFAULT_LANGUAGE, L_DEFAULT_TERRITORY, 'PDF'); REQUEST_ID := FND_REQUEST.SUBMIT_REQUEST(APPLICATION => 'CUX', PROGRAM => 'CUXAPYPNT', DESCRIPTION => NULL, START_TIME => NULL, SUB_REQUEST => FALSE, ARGUMENT1 => :CUX_EXP_CREDIT_HEADERS.CREDIT_HEADER_ID); COMMIT; IF REQUEST_ID IS NULL OR REQUEST_ID <= 0 THEN FND_MESSAGE.SET_NAME('CUX', '提交合同打印请求出错'); FND_MESSAGE.ERROR; RAISE FORM_TRIGGER_FAILURE; ELSE FND_MESSAGE.SET_NAME('CUX', '您提交了开证申请书打印请求,请求号为:' || REQUEST_ID); FND_MESSAGE.SHOW; CANCLE; END IF; END;
相关推荐
本文将深入探讨如何在ASP.NET中配置允许jQuery进行跨域提交请求数据的方法。 首先,了解CORS的工作原理。CORS通过在HTTP头信息中添加`Access-Control-Allow-*`字段来实现跨域访问。服务器需要明确允许哪些源可以...
**Ajax 三种提交请求的方法详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升...
系统的主要任务是构建一个机制,当用户通过AJAX提交请求后,能够阻止其在服务器响应之前再次发起相同的请求,从而防止数据的重复插入或更新。 2.1.1 系统目标 目标是提供一个用户友好且健壮的解决方案,确保每次...
在Android客户端向服务器提交请求时,遇到中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致或处理不当导致的。以下将详细解释这个问题的原因、影响以及如何解决。 首先,我们要明白字符编码的基本原理。...
本话题涉及的是一个C++编写的动态链接库(DLL),它能够实现向WEB服务器提交POST请求,尤其处理带有中文参数的情况。DLL是Windows操作系统中的一种共享库机制,允许不同进程调用同一份代码,提高资源利用率。 首先...
### GitLab 拉取与推送代码,提交合并请求详解 #### 一、拉取代码 **1. 初始化 Git 信息** 在开始任何 Git 操作之前,首先需要配置您的 Git 用户名和电子邮件地址,这将用于标识您提交的代码。 ```bash git ...
根据文件中的描述,造成jQuery重复提交请求主要有两个原因:一是没有取消事件绑定,二是多次引用同一个JavaScript文件。 首先,我们来详细探讨第一点,没有取消事件绑定。在jQuery中,事件绑定通常通过点击(click...
首先,模拟POST提交请求通常涉及到以下几个关键步骤: 1. **构建请求URL**:指定你要发送POST请求的目标接口URL,例如在示例中的`$url = 'http://mobile.jschina.com.cn/jschina/register.php';`。 2. **准备POST...
通过这种方式,我们就可以有效避免用户在AJAX请求还未完成时重复点击按钮提交请求,防止因多次请求给服务器带来不必要的压力,同时也给用户提供更好的交互体验。需要注意的是,在实际开发中,AJAX请求的发送通常是在...
URL的openConnection()方法将返回一个URLConnection对象,该对象...程序可以通过URLConnection实例向该URL发送请求,读取URL引用的资源。 程序Demo示范了如何向Web站点发送GET请求、POST请求,并从Web站点取得响应。
根据实际的开发项目整理的一个window的open方法把get请求转成post请求处理方式逻辑,由于window.open方法的get实现时,请求传入的参数长度不能超过2000这样一个字符长度,故需转换成post请求处理方式达到既能用到...
总结来说,Android中使用URLConnection提交请求涉及的主要步骤包括:创建URL对象、建立URLConnection、设置请求参数、发送GET或POST请求以及处理响应。理解这些步骤对于进行Android网络编程至关重要。
一次性验证码是常用的方法,它要求用户在提交请求前输入一个随机生成的图像中的字符序列。这种方式可以有效地防止自动化工具的无限尝试,因为每个请求都需要用户手动输入正确的验证码。设计验证码时需要平衡安全性和...
- **重新提交审批**:完成所有必要的修改后,再次提交请求进行审批。这一步骤是确保修改后的请求符合组织的政策和流程要求。 #### 4. 遵守组织政策 在进行任何修改之前,还需要注意遵守所在组织的特定政策和程序。...
2. 当客户端提交请求时,服务器端检查提交记录是否存在,如果存在,则视为重复提交,否则,记录提交请求。 3. 在检查提交记录时,可以根据客户端的 IP 地址、用户 ID、提交参数等信息来进行比较。 自定义注解 ...
本文主要讨论如何解决Tomcat在处理GET提交请求时出现的乱码问题。 首先,我们要明白GET请求与POST请求的区别。GET请求通常用于获取资源,而POST请求则用于向服务器发送数据。对于POST请求,Spring框架提供了`...
httppost可以模拟post发送和get方法向目标网站提交请求,这个是电脑端的软件,不是运行于web的脚本代码 1. testhttppost.exe:http post上传文件工具; 2. TestHttpPost: 源码; 3.lr_post.txt: 录制的loadrunner ...
比如,当用户首次提交请求时,服务器可以在会话中设置一个标志,后续的相同请求如果发现此标志,则忽略处理。 6. **HTTP状态码和重定向**: 使用HTTP状态码来通知客户端操作结果,例如返回200表示成功,303或307...
当客户端再次提交请求时,需要将这个令牌一起发送回服务器。服务器端验证令牌的有效性,如果匹配则处理请求,否则拒绝。 2. **实现步骤**: - **生成令牌**:在接收到客户端请求时,服务端生成一个唯一的、随机的...