You are on page 1of 2

DECLARE

v_responsibility_name VARCHAR2 (100) := 'XX AP Inquiry'; ---this


responsibility will get added to user through API
v_application_name VARCHAR2 (100) := NULL;
v_responsibility_key VARCHAR2 (100) := NULL;
v_security_group VARCHAR2 (100) := NULL;
v_description VARCHAR2 (100) := NULL;
--this cursor is used to fetch employee list which are already having below
responsibility
CURSOR get_user IS
SELECT fu.user_id,
fu.user_name,
frt.responsibility_name,
TO_CHAR(furg.start_date,'DD-MON-YYYY') start_date,
furg.end_date
FROM fnd_user fu ,
fnd_user_resp_groups_direct furg ,
fnd_responsibility_vl frt
WHERE fu.user_id = furg.user_id
AND frt.responsibility_id = furg.responsibility_id
AND frt.application_id = furg.responsibility_application_id
AND NVL(furg.end_date,sysdate+1) > sysdate
AND NVL(frt.end_date,sysdate +1) > sysdate
AND NVL(fu.end_date,sysdate +1) > sysdate
AND frt.responsibility_name ='Application Developer';
BEGIN
---This query is used to fetch required values of varaibale
v_responsibility_name for assigning responsibility to user
SELECT fa.application_short_name, fr.responsibility_key,
fsg.security_group_key, frt.description
INTO v_application_name, v_responsibility_key,
v_security_group, v_description
FROM apps.fnd_responsibility fr,
fnd_application fa,
fnd_security_groups fsg,
fnd_responsibility_tl frt
WHERE frt.responsibility_name = v_responsibility_name
AND frt.LANGUAGE = USERENV ('LANG')
AND frt.responsibility_id = fr.responsibility_id
AND fr.application_id = fa.application_id
AND fr.data_group_id = fsg.security_group_id;
FOR i IN get_user
LOOP
fnd_user_pkg.addresp (username => i.user_name,
resp_app => v_application_name,
resp_key => v_responsibility_key,
security_group => v_security_group,
description => v_description,
start_date => SYSDATE,
end_date => NULL
);
DBMS_OUTPUT.put_line ( 'Responsiblity '|| v_responsibility_name|| ' is attached
to the user '|| i.user_name|| ' Successfully');
COMMIT;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line
( 'Unable to attach responsibility to user due to'||
SQLCODE|| ' '|| SUBSTR (SQLERRM, 1, 100));
END;

You might also like