Generally we use FND_REQUEST.SUBMIT_REQUEST to submit a concurrent program using a PL/SQL script. But we can not attach a layout to the concurrent request using the above said API.
We can attach a layout to the concurrent request by using another procedure ADD_LAYOUT which belongs to the same package FND_REQUEST
Below is the signature of the procedure ADD_LAYOUT:
fnd_request.add_layout ( template_appl_name => 'Template Application', template_code => 'Template Code', template_language => 'en', --Use language from template definition template_territory => 'US', --Use territory from template definition output_format => 'PDF' --Use output format from template definition ); |
Note:
- ADD_LAYOUT procedure should be called only when there is a layout associated to a concurrent program
- Session context should be set using ‘FND_GLOBAL.APPS_INITIALIZE’ before calling the ADD_LAYOUT procedure
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | DECLARE -- l_responsibility_id NUMBER; l_application_id NUMBER; l_user_id NUMBER; l_request_id NUMBER; l_layout NUMBER; -- BEGIN -- SELECT DISTINCT fr.responsibility_id, frx.application_id INTO l_responsibility_id, l_application_id FROM apps.fnd_responsibility frx, apps.fnd_responsibility_tl fr WHERE fr.responsibility_id = frx.responsibility_id AND LOWER (fr.responsibility_name) LIKE LOWER('XXTest Resp'); -- SELECT user_id INTO l_user_id FROM fnd_user WHERE user_name = 'STHALLAM'; -- --To set environment context. -- apps.fnd_global.apps_initialize (l_user_id,l_responsibility_id,l_application_id); -- --Setting Layout for the Request -- l_layout := apps.fnd_request.add_layout( template_appl_name => 'XXCUST', template_code => 'XXEMP', template_language => 'en', template_territory => 'US', output_format => 'EXCEL'); -- --Submitting Concurrent Request -- l_request_id := fnd_request.submit_request ( application => 'XXCUST', program => 'XXEMP', description => 'XXTest Employee Details', start_time => sysdate, sub_request => FALSE, argument1 => 'Smith' ); -- COMMIT; -- IF l_request_id = 0 THEN dbms.output.put_line ('Concurrent request failed to submit'); ELSE dbms_output.put_line('Successfully Submitted the Concurrent Request'); END IF; -- EXCEPTION WHEN OTHERS THEN dbms_output.put_line('Error While Submitting Concurrent Request '||TO_CHAR(SQLCODE)||'-'||SQLERRM); END; / |