ITPub博客

首页 > Linux操作系统 > Linux操作系统 > fnd_request.submit_request

fnd_request.submit_request

Linux操作系统 作者:zangchangyu 时间:2016-02-29 17:55:44 0 删除 编辑
 --submit the request
      l_req_id_fee := fnd_request.submit_request('PO',
                                                 'REQIMPORT',
                                                 '',
                                                 '',
                                                 FALSE,
                                                 'POP_REQUEST',
                                                 to_char(SYSDATE, 'YYYYMMDD'),
                                                 'ALL',
                                                 '',
                                                 'N',
                                                 'N');
     
      if (l_req_id_fee is null) or (l_req_id_fee = 0) then
         raise l_submit_req;
      else
         --提交请求
         COMMIT;
         --更新状态(只有请求成功,状态才更改)
         UPDATE hek_om_pop_headers_all
         SET flow_status = 'reg_purchase'
         --select * from hek_om_pop_headers_all
         WHERE header_id IN (SELECT h.header_id
                               FROM hek_om_pop_headers_v h
                              WHERE h.flow_status = 'wait');
         COMMIT;        
      end if;

1、关于fnd_request.submit_request的用法
fnd_request.submit_request
的用法:
FND_REQUEST.SUBMIT_REQUEST
函数是用来提交一个请求的,它返回一个NUMBER值.具体调用如下
:result := fnd_request.submit_request(application CHAR, --AP
模快
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);
英文说明(zt oracle) :
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),代表这个参数不用传递给调用的请求;
在Package里面调用只需要传递需要的参数个数,因为它有默认值指示结束;
在form里面则不行,要写满105个,而且我们参数结束之后要用一个chr(0)来表示结束

例
fnd_request.submit_request('AR',
'SVAINEX_P',
'',
'',
FALSE,
:parameter.invoice_store,
chr(0),
'','','',
'','','','','','','','','','','','','','','','','','','','',
'','','','','','','','','','','','','','','','','','','','',
'','','','','','','','','','','','','','','','','','','','',
'','','','','','','','','','','','','','','','','','','','',
'','','','','','','','','','','','','','','');

2、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等几种状态。

例如: 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');

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26373197/viewspace-2016848/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 报表传参数问题
下一篇: XML TYPE 学习
请登录后发表评论 登录
全部评论

注册时间:2015-09-01

  • 博文量
    42
  • 访问量
    38670