plsql提交請求
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等幾種狀態。
例如:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> 1l_request_status := Fnd_Concurrent.Wait_For_Request(l_request_id,
25,
30,
4l_phase,
5l_status,
6l_dev_phase,
7l_dev_status,
8l_message);
9
10IF l_request_status THEN
11IF l_dev_status = 'NORMAL' THEN
12NULL;
13ELSE
14Fnd_Message.Debug('請求執行不成功:'||l_dev_status);
15RETURN;
16END IF;
17ELSE
18Fnd_Message.Debug('請求未完成,無法檢視報表內容!');
19RETURN;
20END IF;
21
22Editor_Pkg.Report(l_request_id,'Y');
23
總結:FND_REQUEST.SUBMIT_REQUEST是一種通過後臺方式提交請教的方法,可以在pkg和form中使用,在form中使用要將引數寫全。 FND_CONCURRENT.WAIT_FOR_REQUEST是一個等待當前請求執行完畢的程式,可以利用這個等待當前的請求程式執行完畢再執行下面的程式。
有時候提交請求一直會返回0的情況:
檢查是否有初始化環境:
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
);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29063131/viewspace-1094107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式中載入layout以及提交請求
- 提交一個併發請求(Concurrent Program)
- iOS 使用form表單形式提交post請求iOSORM
- 深入理解OkHttp原始碼(一)——提交請求HTTP原始碼
- EBS提交併發請求的簡單例子單例
- EBS 取消“是否提交另一項請求”提示
- 安卓基礎-get post請求與提交資料安卓
- Oracle EBS提交過多請求批量取消的方法Oracle
- POST 請求的三種常見資料提交格式
- iOS 同步請求 非同步請求 GET請求 POST請求iOS非同步
- 15年前提交的請求,終於有了結果
- 【web】Spring RestTemplate提交時設定POST請求引數WebSpringREST
- 如何使POST請求具有冪等性防止重複提交 - mscharhag
- 使用axios post 請求資料無法提交的問題iOS
- Php通過curl提交post內容為Json的請求PHPJSON
- EBS 11i log檔案太多引起請求無法提交
- 【web】Spring RestTemplate提交時設定http header請求頭WebSpringRESTHTTPHeader
- SpringMVC中如何傳送GET請求、POST請求、PUT請求、DELETE請求。SpringMVCdelete
- 請求框架&移動請求框架
- 封裝axios請求並對提交引數進行校驗封裝iOS
- EBS R12.1中如何提交一個請求(Concurrent Request)
- 在jsp中提交請求而不重新整理頁面的方法JS
- 請求OpenFeign的GET請求時,請求為何失敗?
- 有趣的請求引數/請求頭
- 【轉】怎麼用PHP傳送HTTP請求(POST請求、GET請求)?PHPHTTP
- EBS 11i使用者的請求無法提交一直等待
- 網路請求優化之取消請求優化
- ajax請求
- 批量請求
- http請求HTTP
- HTTP 請求HTTP
- 如何根據介面請求型別和請求方法,自動執行對應請求型別
- 使用 Laravel 請求類來驗證表單請求Laravel
- URL請求不能解決中文請求的問題
- 請求重定向和請求轉發的區別
- Zttp 傳送 form params 請求 而非 JSON 請求ORMJSON
- Android Http請求框架一:Get 和 Post 請求AndroidHTTP框架
- Android okHttp網路請求之Get/Post請求AndroidHTTP