Concurrent Programs in the same request set
0digg
At
times there might be a requirement to spawn a concurrent request based
on the output of another concurrent program in a request set. However there are no api's to provide with the request set id. There
are ways to identify the request set because each request set launches a
concurrent program which in turn launches the concurrent programs that
are constituents of a request set. For e.g if a request Set SET1 has the following programs that would fire in the order: Program A Program B Program C Launching the request set would launch the spawned process(request id 0) with the following requests for Program A - request id 1 parent request id 0 Program B - request id 2 parent request id 0 Program C - request id 3 parent request id 0 Therefore
the following code would help identify the request id of the programs
that have executed as part of the same request set: FUNCTION get_peer_request_id ( p_request_id NUMBER, p_peer_request_program_name VARCHAR2 ) RETURN NUMBER IS l_peer_request_id NUMBER; BEGIN SELECT parent_req.request_id INTO l_peer_request_id FROM fnd_concurrent_requests parent_req, fnd_concurrent_programs_vl fp, fnd_concurrent_requests child WHERE parent_req.concurrent_program_id = fp.concurrent_program_id AND parent_req.parent_request_id = child.parent_request_id AND parent_req.request_id != child.request_id AND parent_req.parent_request_id != -1 AND fp.concurrent_program_name = p_peer_request_program_name AND child.request_id = p_request_id; RETURN l_peer_request_id; EXCEPTION WHEN OTHERS THEN l_peer_request_id := -1; RETURN l_peer_request_id; END get_peer_request_id; Once we have the request id we can use the sql select * from fnd_requests where request_id=p_request_id to get information about the request. |
Technical > Concurrent Programs >