设为首页 收藏本站
查看: 468|回复: 0

[经验分享] Oracle EBS API:fnd_request.submit_request

[复制链接]

尚未签到

发表于 2016-7-27 11:02:51 | 显示全部楼层 |阅读模式
--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



是一个等待当前请求运行完毕的程序,可以利用这个等待当前的请求程序运行完毕再运行下面的程序。


  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250206-1-1.html 上篇帖子: Oracle降低HWM的集中方法 下篇帖子: Oracle about ROUNDING/ROUND_DOWN/ROUND_UP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表