Workflow Background Process is a concurrent program which is run for processing deferred activities, timed out activities, and stuck processes using the parameters specified. The background engine executes all activities that satisfy the given arguments at the time that the background engine is invoked. This procedure does not remain running long term, so you must restart this procedure periodically. Any activities that are newly deferred or timed out or processes that become stuck after the current background engine starts are processed by the next background engine that is invoked.
Workflow Background Process is run with the help of Workflow Background Engine which is PL/SQL Procedure which runs this concurrent program with specified parameters.
Workflow Background Process Parameters:
- Item Type – Specify an item type to restrict this engine to activities associated with that item type. If you do not specify an item type, the engine processes any activity regardless of its item type.
- Minimum Threshold – Specify the minimum cost that an activity must have for this background engine to execute it, in hundredths of a second.
- Maximum Threshold – Specify the maximum cost that an activity can have for this background engine to execute it, in hundredths of a second. By using Minimum Threshold and Maximum Threshold you can create multiple background engines to handle very specific types of activities. The default values for these arguments are null so that the background engine runs activities regardless of cost.
- Process Deferred – Specify whether this background engine checks for deferred activities. Setting this parameter to Yes allows the engine to check for deferred activities.
- Process Timeout – Specify whether this background engine checks for activities that have timed out. Setting this parameter to Yes allows the engine to check for timed out activities.
- Process Stuck – Specify whether this background engine checks for stuck processes. Setting this parameter to Yes allows the engine to check for stuck processes.
BEGIN wf_engine.background (itemtype=>NULL , minthreshold=>NULL , maxthreshold=>NULL , process_deferred=>TRUE , process_timeout=>FALSE , process_stuck=>FALSE); END;
DECLARE
l_responsibility_id NUMBER;
l_application_id NUMBER;
l_user_id NUMBER;
l_request_id 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 ('OM SuperUser, Comm');
--
SELECT user_id
INTO l_user_id
FROM fnd_user
WHERE user_name = 'XXXXX';
--
--To set environment context.
--
apps.fnd_global.apps_initialize (l_user_id,
l_responsibility_id,
l_application_id);
--
--Submitting Concurrent Request
--
l_request_id := fnd_request.submit_request (application => 'FND',
program => 'FNDWFBG',
description => NULL,
start_time => NULL,
sub_request => FALSE,
argument1 => 'OEOH', --Item Type
argument2 => NULL, --Minimum Threshold
argument3 => NULL, --Maximum Threshold
argument4 => 'Y' , --Process Deferred
argument5 => 'N', --Process Timeout
argument6 => NULL --Process Stuck
);
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: '||l_request_id);
END IF;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error While Submitting Concurrent Request '||TO_CHAR(SQLCODE)||'-'||sqlerrm);
END;
/
Comments
Post a Comment