oracle应用程序SQL提交方式,Oracle Submit Request - 请求的调用方法: FND_REQUEST.SUBMIT_REQUEST...

FND_REQUEST.SUBMIT_REQUEST 函数是用来提交一个请求的,它返回一个NUMBER值.具体调用如下

:result := fnd_request.submit_request(application CHAR, --模快

program CHAR,      --应用程式

description CHAR,   --请求说明(可选)

start_time CHAR,    --RUN 时间(可选)

sub_request BOOLEAN, --立刻提交请求

argument1 CHAR,   --参数1

argument2 CHAR,   --参数2

argument3 CHAR,   --参数3

argument4 CHAR,   --参数4

argument5 CHAR,   --参数5.......

argument100 CHAR);

英文说明 :

Parameters are as follows:

> application - Short name of the application associated with the concurrent  request to be submitted.

> program - Short name of the concurrent program (not the executable) for which  the request should be submitted.

> description - Description of the request that is displayed in the Concurrent  Requests form. (Optional.)

> start_time - Time at which the request should start running, formatted as HH24:MI or HH24:MI:SS (Optional.)

> sub_request - Set to TRUE if the request is submitted from another request and  should be treated as a sub-request.

> argument1...100 - Arguments for the concurrent request; up to 100  arguments are permitted. If submitted from Oracle Forms, you must specify all  100 arguments.

补充说明:

在用fnd_request.submit_request的时候,第五个参数用false,不要被参数名称误导;

这个函数有105个参数,前面五个定义请求本身,后面100个是传递给请求的具体参数,都是Char类型,

我们需要转换,默认值是chr(0),代表这个参数不用传递给调用的请求;

注意:

1. 在Package里面调用只需要传递需要的参数个数,因为它有默认值指示结束;

2. 在form里面则不行,要写满105个,而且我们参数结束之后要用一个chr(0)来表示结束 。

如何查Application(模块), program(程序)

有两种方法:一种是从界面上去查,第二种通过SQL去查。

方法一:

首先你需得先知道要执行哪支程序(名称)。查到后你可以看到有:简称,应用产品。简称就是Request中的Program项的值。

4932011fb3693bd0ba91b3b754fc5d20.png

然后依据对应的“应用产品”名称,到“注册”中去查找,会发现有个简称,而这个“简称”就是Request对应的Application的值。

5fc3b45e584d35ef24596033bb449a10.png

方法二:

SELECT DISTINCT

fa.APPLICATION_SHORT_NAME,

fa.BASEPATH,

fat.APPLICATION_NAME,

fe.EXECUTABLE_NAME,

fe.EXECUTION_FILE_NAME,

fcp.CONCURRENT_PROGRAM_NAME,

fcp.OUTPUT_FILE_TYPE,

fcp.OUTPUT_PRINT_STYLE,

fcpT.USER_CONCURRENT_PROGRAM_NAME,

fcpT.LANGUAGE,

fcpT.DESCRIPTION

FROM fnd_application_tl fat,

fnd_application fa,

fnd_concurrent_programs_tl fcpt,

fnd_concurrent_programs fcp,

fnd_executables fe

WHERE 1 = 1

AND fat.APPLICATION_ID = fa.APPLICATION_ID

AND fat.LANGUAGE = fcpt.LANGUAGE

AND fa.APPLICATION_ID = fcp.APPLICATION_ID

AND fcpt.LANGUAGE = 'ZHS'

AND fcpt.CONCURRENT_PROGRAM_ID = fcp.CONCURRENT_PROGRAM_ID

AND fcp.executable_id = fe.executable_id

--AND fcp.enabled_flag = 'Y'

AND fe.EXECUTABLE_NAME = 'RVCTP' -- 要查询的报表简称

在FORM里提交REQUEST(模板)

在Form里面,可以用APPS.FND_REQUEST.SUBMIT_REQUEST

提交一个Request到Oracle Request Manager。

如果提交成功,该函数返回Request ID,否则,返回0。

初始化

在提交一个Request之前,我们会调用Oracle Standard的Procedure对这个Request做一些基本的参数的初始化。

APPS.FND_GLOBAL.apps_initialize

user_id =>APPS.FND_GLOBAL.user_id,

resp_id =>APPS.FND_GLOBAL.resp_id,

resp_appl_id =>APPS.FND_GLOBAL.resp_appl_id

);

FND_REQUEST.SUBMIT_REQUEST

函数APPS.FND_REQUEST.SUBMIT_REQUEST有105个参数:

APPS.FND_REQUEST.SUBMIT_REQUEST

(

APPLICATION IN VARCHAR2 DEFAULT NULL,

PROGRAM IN VARCHAR2 DEFAULT NULL,

DESCRIPTION IN VARCHAR2 DEFAULT NULL,

START_TIME IN VARCHAR2 DEFAULT NULL,

SUB_REQUEST IN BOOLEAN DEFAULT FALSE,

chr(0),'','','','','','','','','','','','','','','','','','','',

'','','','','','','','','','', '','','','','','','','','','',

'','','','','','','','','','', '','','','','','','','','','',

'','','','','','','','','','', '','','','','','','','','','',

'','','','','','','','','','', '','','','','','','','','',''

)

RETURN NUMBER;

例子

PROCEDURE SUBMIT_REQUEST(p_group_id number) IS

v_request_id number;

v_org_id number;

BEGIN

FND_GLOBAL.APPS_INITIALIZE(FND_GLOBAL.USER_ID,

FND_GLOBAL.RESP_ID,

FND_GLOBAL.RESP_APPL_ID);

select OPERATING_UNIT

into v_org_id

from ORG_ORGANIZATION_DEFINITIONS

where 1=1

and organization_id = :parameter.org_id;

v_request_id := FND_request.SUBMIT_request( 'PO', 'RVCTP', '', '', false,

'BATCH', p_group_id, v_org_id, CHR(0), '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '',

'', '', '', '', '', '', '', '', '', '' );

Commit;

FND_MESSAGE.DEBUG('已提交后台程序'||':'||'Request_Id='||v_request_id);

END;

Oracle ERP等待报表运行机制

主要是用到了Fnd_concurrent.wait_for_ruqest这个function.

Fnd_concurrent.wait_for_request返回Boolean值,主要参数如下:

function FND_CONCURRENT.WAIT_FOR_REQUEST

(request_id IN number default NULL, --请求ID

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;

dev_phase有Pending,Running,Complete,Inactive等几种,每种对应不同的Dev-Status,比如Complete阶段后就有Normal,Error,Warning,Cancelled,Terminated等几种状态。

例如:

BEGIN

l_request_status := fnd_concurrent.wait_for_request(l_request_id,

5,

0,

l_phase,

l_status,

l_dev_phase,

l_dev_status,

l_message);

IF l_request_status THEN

IF l_dev_status = 'NORMAL' THEN

NULL;

ELSE

fnd_message.debug ('请求运行不成功:' || l_dev_status);

RETURN;

END IF;

ELSE

fnd_message.debug ('请求未完成,无法查看报表内容!');

RETURN;

END IF;

editor_pkg.report (l_request_id, 'Y');

END;

总结:FND_REQUEST.SUBMIT_REQUEST是一种通过后台方式提交请教的方法,可以在pkg和 form中使用,在form中使用要将参数写全。 FND_CONCURRENT.WAIT_FOR_REQUEST是一个等待当前请求运行完毕的程序,可以利用这个等待当前的请求程序运行完毕再运行下面的程序。

有时候提交请求一直会返回0的情况:

检查是否有初始化环境:

--在PLSQL中设定初始的方法

SELECT user_id

INTO l_num_user_id

FROM applsys.fnd_user

WHERE user_name ='user_name';

SELECT responsibility_id

INTO l_num_resp_id

FROM apps.fnd_responsibility_vl

WHERE responsibility_name ='responsibility_name';

SELECT application_id

INTO l_num_resp_appl_id

FROM applsys.fnd_application

WHERE application_short_name = 'app_short_name';

fnd_global.apps_initialize (user_id           => l_num_user_id,

resp_id           => l_num_resp_id,

resp_appl_id      => l_num_resp_appl_id

);

--在Form设定初始的方法

-- 可直接引用全局变量

FND_GLOBAL.APPS_INITIALIZE(FND_GLOBAL.USER_ID,

FND_GLOBAL.RESP_ID,

FND_GLOBAL.RESP_APPL_ID);

转自:http://www.cnblogs.com/quanweiru/p/3814964.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java NIO系列教程(六) Selector

转载自 Java NIO系列教程(六) Selector 译文链接 作者:Jakob Jenkov 译者:浪迹v 校对:丁一 Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事…

.NET 框架兼容性简介

前言 从.NET框架4.0开始,所有主版本号为4(称为“4.x”版本)的.NET框架,都会进行就地更新。这就意味着在一段时间内,电脑上安装的只有一个.NET 4.x框架。安装.NET 4.5框架将替换.NET 4.0框架,.NET 4.5.1框架…

php滚动公告源码,好用的滚动公告HTML代码

JsCSS间断和不间断文本滚动代码.noticebox{width:150px;height:25px;line-height:25px;border:#bbb 1px solid;overflow:hidden;}.noticebox ul{margin:0;padding:0}.noticebox li{height:25px;line-height:25px;font-size:12px;text-align:center;list-style-type:none;}第一行…

当当网首页——CSS代码

charset "utf-8"; /* CSS Document *//*首页样式*/ /*右侧随鼠标滚动的广告图片*/ .right{top:50px;right:30px;position:absolute;z-index:3; } .dd_close{width:35px;height:18px;text-align:center;border:solid 1px #999;background-color:#E0E0E0;top:0px;right…

Java NIO系列教程(七) FileChannel

转载自 Java NIO系列教程(七) FileChannel 译文链接 作者:Jakob Jenkov 译者:周泰 校对:丁一 Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞…

js+php在线截图 jquery fileupload.js,另一种图片上传 jquery.fileupload.js

今天遇到另外一种上传图片方法用jquery.fileupload.js一个文件类型的元素$("#fileupload").fileupload({datatype:"json",url: "/File/UploadFiles",done: function (e, data) { //上传结束的操作if (data.result[0].result ! "OK") /…

当当网首页——JS代码

$(function($){//打开一个广告窗口window.open(open.html,,top0,left200,width500,height327,scrollbars0,resizable0);//随滚动条滚动的可关闭广告窗口$(window).scroll(function(){var st $(this).scrollTop()50;$("#right").css("top",st);});$("…

Java NIO系列教程(一) Java NIO 概述

转载自 Java NIO系列教程(一) Java NIO 概述 译文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO 由以下几个核心部分组成: ChannelsBuffersSelectors 虽然Java NIO 中除此之外还有很多…

linux原有的文件系统扩展,原来linux不用LVM也能扩展文件系统

以前总以为UNIX/LINUX使用了lvm才能扩展或缩小卷和文件系统,今天才发现我错了:即使没有lvm,linux也能扩展卷和及其相应的文件系统而不会丢失原有数据。以下是测试步骤,记录备查。1、系统是redhat linux 6[rootlocalhost ku]# unam…

当当网上书店购物车——源码

关于当当网的所有图片资源都已上传&#xff0c;下载地址&#xff1a;当当网资料&#xff0c;点击下载即可&#xff0c;下面上html代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml…

Java NIO系列教程(二) Channel

转载自 Java NIO系列教程&#xff08;二&#xff09; Channel译文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;airu 校对&#xff1a;丁一 Java NIO的通道类似流&#xff0c;但又有些不同&#xff1a; 既可以从通道中读取数据&#xff0c;又可以写数据到通…

linux写入二进制文件内容,linux – 从管道读取数据并写入标准输出,中间延迟.必须处理二进制文件...

我现在已经尝试了大约一个小时来找到解决这个问题的优雅方案.我的目标基本上是编写带宽控制管道命令,我可以在各种情况下重复使用(不仅仅是网络传输,我知道scp -l 1234).我想做的是&#xff1a;>延迟X秒.>从管道读取Y量(或者如果没有足够的话,小于Y).>将读取数据写入标…

ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

ASP.NET Core 发布至Linux生产环境 Ubuntu 系统&#xff0c;之前跟大家讲解了 dotnet publish 发布&#xff0c;而没有将整个系统串起来。 今天就跟大家综合的讲一下ASP.NET Core发布至Linux生产环境。 开发及发布环境&#xff1a;WIN10 x64 生产Linux环境&#xff1a;Ubuntu …

Java NIO系列教程(三) Buffer

转载自 Java NIO系列教程&#xff08;三&#xff09; Buffer原文链接 作者&#xff1a;Jakob Jenkov 译者&#xff1a;airu 校对&#xff1a;丁一 Java NIO中的Buffer用于和NIO通道进行交互。如你所知&#xff0c;数据是从通道读入缓冲区&#xff0c;从缓冲区写入…

Linux程序之触摸,linux 触摸屏驱动编写

早在诺基亚手机还比较流行的时候&#xff0c;那时候触摸屏用的还不多。但是随着触摸屏手机、即智能手机的流行&#xff0c;触摸屏基本成了手机的标配。所以&#xff0c;今天可以看看触摸屏驱动在linux上是如何进行的。1、驱动目录drivers/input2、看看这个目录的Makefile如何设…

跨站请求伪造(CSRF/XSRF)

简介 CSRF&#xff08;Cross-site request forgery跨站请求伪造&#xff0c;也被称为“One Click Attack”或者Session Riding&#xff0c;通常缩写为CSRF或者XSRF&#xff0c;是一种对网站的恶意利用。尽管听起来像跨站脚本&#xff08;XSS&#xff09;&#xff0c;但它与XSS非…

Java NIO系列教程(四) Scatter/Gather

转载自 Java NIO系列教程&#xff08;四&#xff09; Scatter/Gather译文地址 作者&#xff1a;Jakob Jenkov 译者&#xff1a;郭蕾 Java NIO开始支持scatter/gather&#xff0c;scatter/gather用于描述从Channel&#xff08;译者注&#xff1a;Channel在中文经常翻译为…

Linux获取本机hostname函数,Linux下获得主机与域名-gethostbyname和gethostbyaddr

1.数据结构hostent和servent:struct hostent{char *h_name;/* official domain name of host */char **h_aliases;/* null-terminated array of domain names */int h_addrtype;/* host address type (AF_INET) */int h_length;/* length of an address, in bytes */char **h_a…

ASP.NET Core Docker部署

前言 在前面文章中&#xff0c;介绍了 ASP.NET Core在 macOS&#xff0c;Linux 上基于Nginx和Jexus的发布和部署&#xff0c;本篇文章主要是如何在Docker容器中运行ASP.NET Core应用程序。 Asp.Net Core 发布和部署&#xff08; MacOS Linux Nginx &#xff09; Asp.Net Core…

Java NIO系列教程(五) 通道之间的数据传输

转载自 Java NIO系列教程&#xff08;五&#xff09; 通道之间的数据传输译文地址 作者&#xff1a;Jakob Jenkov 译者&#xff1a;郭蕾 校对&#xff1a;周泰 在Java NIO中&#xff0c;如果两个通道中有一个是FileChannel&#xff0c;那你可以直接将数据从一个chan…