We can end date a responsibility which is already assigned to all users / for a single user using the API fnd_user_pkg.delresp
DECLARE
v_user_name
VARCHAR2 (100) := NULL;
v_application_name VARCHAR2 (100) :=
NULL;
v_responsibility_key
VARCHAR2 (100) := NULL;
v_security_group
VARCHAR2 (100) := NULL;
CURSOR xx_iexpenses_cursor
IS
SELECT
fu.user_name,
fa.application_short_name,
frv.responsibility_key,
(select security_group_key from
apps.fnd_security_groups
fsg
where
fsg.security_group_id = furgd.security_group_id) Security_Group
FROM apps.fnd_user fu,
apps.fnd_user_resp_groups_direct furgd,
apps.fnd_responsibility_vl frv,
apps. fnd_application fa
WHERE fu.user_id = furgd.user_id
AND fa.application_id =
frv.application_id
AND
furgd.responsibility_id =
frv.responsibility_id
AND
furgd.end_date
IS NULL
AND
furgd.start_date
<= sysdate
AND NVL(furgd.end_date, sysdate
+ 1) > sysdate
AND
fu.start_date
<= sysdate
AND NVL(fu.end_date, sysdate +
1) > sysdate
AND
frv.start_date <= sysdate
--AND fu.user_name = 'XX12345'
AND frv.responsibility_name like
'XX%Internet%Expenses';
l_xx_iexpenses_rec xx_iexpenses_cursor%ROWTYPE;
BEGIN
OPEN xx_iexpenses_cursor;
LOOP
FETCH xx_iexpenses_cursor into
v_user_name, v_application_name,v_responsibility_key, v_security_group ;
EXIT WHEN xx_iexpenses_cursor%NOTFOUND;
DBMS_OUTPUT.put_line
(v_user_name);
DBMS_OUTPUT.put_line
(v_application_name);
DBMS_OUTPUT.put_line
(v_responsibility_key);
DBMS_OUTPUT.put_line
(v_security_group);
fnd_user_pkg.delresp
(
username =>
v_user_name,
resp_app
=> v_application_name,
resp_key
=> v_responsibility_key,
security_group
=> v_security_group
);
END LOOP;
COMMIT;
CLOSE xx_iexpenses_cursor;
END;
Comments
Post a Comment