1. FND_CONC_GLOBAL包
这个包用于从PL/SQL程序中提交子请求。
u 函数FND_CONC_GLOBAL.REQUEST_DATA
描述:用于获取全局REQUEST_DATA的值
u 函数FND_CONC_GLOBAL.SET_REQ_GLOBALS
描述:原文描述有误,是上一个函数的描述。从后文的例子来看作用应该是设置请求的状态。
示例代码:
CREATE OR REPLACE PROCEDURE
PARENT(errbuf OUT VARCHAR2,
retcode OUT NUMBER) IS
i NUMBER;
req_data VARCHAR2(10);
r NUMBER;
BEGIN
--Read the value from REQUEST_DATA. If this
is the first run of the program, then this value will be
null.
-- Otherwise, this will be the value that
we passed to SET_REQ_GLOBALS on the previous run.
req_data :=
fnd_conc_global.request_data;
--If this is the first run, we'll set i =
1. Otherwise, we'll set i = request_data + 1, and
we'll exit if we're done.
IF (req_data IS NOT NULL) THEN
i :=
to_number(req_data);
i := i + 1;
IF (i < 11)
THEN
errbuf := 'done ! ';
retcode := 0;
RETURN;
END IF;
ELSE
i := 1;
END IF;
--Submit the child request. The sub_request
parameter must be set to 'Y'.
r :=
fnd_request.submit_request('fnd',
'child',
'child ' || to_char(i),
NULL,
TRUE,
fnd_conc_global.printer);
IF r = 0 THEN
--If request submission
failed, exit with error.
errbuf := fnd_message.get;
retcode := 2;
ELSE
--Here we set the
globals to put the program into the
--PAUSED status on exit,
and to save the state in request_data.
fnd_conc_global.set_req_globals(conc_status =>
'paused',
request_data => to_char(i));
errbuf := 'sub¨Crequest submitted ! ';
retcode := 0;
END IF;
RETURN;
END;
2. FND_CONCURRENT包
u FND_CONCURRENT.AF_COMMIT
当并发程序使用某个特殊的回滚段时用来commit,这个特殊的回滚段应该在定义并发程序表单定义。该函数没有参数。
u FND_CONCURRENT.AF_ROLLBACK
当并发程序使用某个特殊的回滚段时用来rollback,这个特殊的回滚段应该在定义并发程序表单定义。该函数没有参数。
u FND_CONCURRENT.GET_REQUEST_STATUS(客户端服务器端都有的函数)
语法形式:
FUNCTION
fnd_concurrent.get_request_status(request_id IN
OUT NUMBER,
application IN VARCHAR2 DEFAULT NULL,
program IN VARCHAR2 DEFAULT NULL,
phase OUT VARCHAR2,
status OUT VARCHAR2,
dev_phase OUT
VARCHAR2,
dev_status OUT VARCHAR2,
message OUT VARCHAR2) RETURN BOOLEAN;
描述:返回并发程序的状态,如果并发程序完成了,也返回其完成消息。它既可以返回用户友好的并发程序阶段和状态,也可以返回程序运行状态,用来驱动程序逻辑。
输入参数说明:
u request_id 要检查的并发程序的ID;
u application
与并发程序相关联的应用产品的简称,该参数只有在没有传入request_id时才是必须的;
u program
并发程序的简称,不是可执行的简称。该参数只有在没有传入request_id时才是必须的。当提供了application和program参数时,那么该程序的最后一个并发请求id将作为request_id传入。
输出参数说明:
u phase 用户友好的并发请求阶段,可以从FND_LOOKUPS查到所有的阶段名
u status 用户友好的并发请求状态可以从FND_LOOKUPS查到所有的状态名
u dev_phase 一个常量字符串,可以用来进行程序逻辑比较
u dev_status 一个常量字符串,可以用来进行程序逻辑比较
u message 如果并发程序已经