Showing posts with label DBA. Show all posts
Showing posts with label DBA. Show all posts
Friday, September 23, 2022
Test Instance: R12.2.5
Query:
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 IN ( 'System Administrator' ,'Application Developer' ,'Application Developer Common Modules' ,'CRM HTML Administration' ,'Functional Administrator' ,'Functional Developer' ,'Knowledge Administrator' ,'Oracle Sales Administrator' ,'Sales Administrator' ,'TeleSales Administration' );
Friday, September 23, 2022 by Team search · 0
Monday, August 24, 2020
In this post, we have given a query which gives you the list of activities performed by a proxy user in Oracle apps R12. This comes handy for any debugging or audit reports.
Key Tables:
JTF_PF_ALL_ACTIVITY_VL
FND_FORM_VL
JTF_DPF_PHYSICAL_PAGES_VL
FND_RESPONSIBILITY_VL
FND_USER
Query:
SELECT DECODE(tech_stack, 'JTF', NVL((SELECT physical_page_description FROM jtf_dpf_physical_pages_vl WHERE physical_page_name=pagename AND ROWNUM =1 ) ,pagename ), 'OAF', DECODE(INSTR(pagename, '>') - 1, -1, pagename, SUBSTR(pagename, 0, INSTR(pagename, '>') - 1) ), 'FORM', NVL((SELECT USER_FORM_NAME FROM fnd_form_VL FF WHERE FR.APPLICATION_ID = FF.APPLICATION_ID AND FF.FORM_ID =pagename AND ROWNUM =1 ) ,pagename ), pagename ) action, fu.user_name, fr.responsibility_name, pa.day event_date, TO_CHAR(pa.TIMESTAMP,'HH24:MI:SS') event_time, pa.sessionid, pa.langid, pa.pagename FROM jtf_pf_all_activity_vl pa, fnd_user fu, fnd_responsibility_vl fr WHERE pa.proxyid =fu.user_id AND pa.proxyid! =-1 AND fr.responsibility_id=pa.respid AND fr.application_id =pa.appid /* AND pa.userid = (SELECT user_id FROM fnd_user WHERE user_name = 'XXSHARE' ) */ AND pa.day BETWEEN TO_DATE('13-SEP-2016') AND TO_DATE('12-OCT-2016');
Monday, August 24, 2020 by Team search · 0
Friday, July 17, 2020
Tested: R12.2.4
API: FND_USER_PKG.DELRESP
Script:
CREATE OR REPLACE PROCEDURE xxsh_delete_resp_assignment (piv_user_name IN VARCHAR2, piv_resp_name IN VARCHAR2, pov_status OUT VARCHAR2, pov_error_dtls OUT VARCHAR2 ) AS lv_application_name VARCHAR2 (100) := NULL; lv_responsibility_key VARCHAR2 (100) := NULL; lv_security_group VARCHAR2 (100) := NULL; ld_dummy_date DATE; ln_count NUMBER; le_stop_program EXCEPTION; BEGIN -- Whether user exists BEGIN SELECT end_date INTO ld_dummy_date FROM fnd_user WHERE user_name = piv_user_name; IF ld_dummy_date < SYSDATE THEN pov_status := 'ERROR'; pov_error_dtls := 'Username already end dated'; RAISE le_stop_program; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN pov_status := 'ERROR'; pov_error_dtls := 'Username not found'; RAISE le_stop_program; END; -- Whether responsibility iexists or not s already assigned to user BEGIN SELECT fa.application_short_name, fr.responsibility_key, frg.security_group_key INTO lv_application_name, lv_responsibility_key, lv_security_group FROM fnd_responsibility fr, fnd_application fa, fnd_security_groups frg, fnd_responsibility_tl frt WHERE fr.application_id = fa.application_id AND fr.data_group_id = frg.security_group_id AND fr.responsibility_id = frt.responsibility_id AND frt.LANGUAGE = USERENV ('LANG') AND frt.responsibility_name = piv_resp_name; EXCEPTION WHEN NO_DATA_FOUND THEN pov_status := 'ERROR'; pov_error_dtls := 'REsponsibility does not exists'; RAISE le_stop_program; END; -- Whether responsibility iexists or not s already assigned to user BEGIN SELECT a.end_date INTO ld_dummy_date FROM fnd_user_resp_groups_direct a, fnd_user b, fnd_responsibility_tl c WHERE a.user_id = b.user_id AND a.responsibility_id = c.responsibility_id AND c.language = USERENV('LANG') AND user_name = piv_user_name AND responsibility_name = piv_resp_name; IF ld_dummy_date < SYSDATE THEN pov_status := 'ERROR'; pov_error_dtls := 'Responsibility Assignment Already ended'; RAISE le_stop_program; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN pov_status := 'ERROR'; pov_error_dtls := 'REsponsibility is not assigned to User'; RAISE le_stop_program; END; -- Call the API to end date responsibility assignment FND_USER_PKG.DELRESP (username => piv_user_name, resp_app => lv_application_name, resp_key => lv_responsibility_key, security_group => lv_security_group ); COMMIT; DBMS_OUTPUT.put_line ( 'Responsiblity ' || piv_resp_name || ' is removed from the user ' || piv_user_name || ' Successfully' ); EXCEPTION WHEN le_stop_program THEN DBMS_OUTPUT.put_line ('Custom Error: '||pov_error_dtls); WHEN OTHERS THEN DBMS_OUTPUT.put_line ('Unhandled Error: '||SQLERRM); END xxsh_delete_resp_assignment; / SHOW ERRORS;Execution Script:SET SERVEROUTPUT ON; DECLARE lv_status VARCHAR2(200); lv_error_message VARCHAR2(2000); BEGIN xxsh_delete_resp_assignment('SYSADMIN', 'CRM ETF Administration', lv_status, lv_error_message ); END;
Friday, July 17, 2020 by Team search · 1
Subscribe to:
Posts (Atom)
Disclaimer
The ideas, thoughts and concepts expressed here are my own. They, in no way reflect those of my employer or any other organization/client that I am associated. The articles presented doesn't imply to any particular organization or client and are meant only for knowledge Sharing purpose. The articles can't be reproduced or copied without the Owner's knowledge or permission.