You are on page 1of 3

Untitled

CREATE TABLE fnd_user_tmp (


user_name VARCHAR(20),description VARCHAR(240),full_name VARCHAR(240));
CREATE TABLE fnd_user_resp_tmp( user_name VARCHAR(20),responsibility_name
VARCHAR(240));
-- SCRIPT to LOAD into actual interface FND USER TABLE .
DECLARE
--By: Muthu
v_session_id INTEGER := USERENV ('sessionid');
-- v_user_name VARCHAR2 (30) := UPPER ('&Enter_User_Name');
v_person_id NUMBER;
v_resp_key VARCHAR (240);
v_resp_app VARCHAR (240);
v_email_address VARCHAR (240);
v_count NUMBER := 0;
l_person_name VARCHAR (240) := '';
l_user_name VARCHAR (40) := '';
l_responsibility_name VARCHAR2 (3000) := '';
CURSOR c_users
IS
SELECT *
FROM fnd_user_tmp;
CURSOR c_resp (c_user_name VARCHAR)
IS
SELECT *
FROM ych_user_resp_tmp
WHERE user_name = c_user_name;
rec_users c_users%ROWTYPE;
rec_resp c_resp%ROWTYPE;
BEGIN
--Note, can be executed only when you have apps password.
-- Call the procedure to Creaet FND User
FOR rec_users IN c_users
LOOP
/*IF (SELECT count(*)
FROM fnd_user
WHERE user_name = rec_users.user_name)=0
THEN*/
l_person_name := rec_users.full_name;
l_user_name := rec_users.user_name;
l_responsibility_name := '';
Page 1
Untitled
v_resp_key := '';
v_resp_app := '';
v_person_id := '';
v_email_address := '';
SELECT employee_id, email_address
INTO v_person_id, v_email_address
FROM hr_employees
WHERE UPPER (full_name) LIKE '%' || UPPER (rec_users.full_name)
|| '%' ;

v_count := v_count + 1;
fnd_user_pkg.createuser (x_user_name => rec_users.user_name,
x_owner => '',
x_unencrypted_password => 'welcome',
x_session_number => v_session_id,
x_start_date => SYSDATE - 10,
x_description => rec_users.description,
x_employee_id => v_person_id,
x_email_address => v_email_address
);
DBMS_OUTPUT.put_line ( 'Employee_name - '
|| l_person_name
|| ' , Email - '
|| v_email_address
|| ' -- completed'
);
FOR rec_resp IN c_resp (rec_users.user_name)
LOOP
SELECT a.responsibility_key, b.application_short_name
INTO v_resp_key, v_resp_app
FROM fnd_responsibility_vl a, fnd_application_vl b
WHERE a.application_id = b.application_id
AND a.responsibility_name = rec_resp.responsibility_name;
fnd_user_pkg.addresp (username => UPPER
(rec_resp.user_name),
resp_app => v_resp_app,
resp_key => v_resp_key,
security_group => 'STANDARD',
description => '',
start_date => SYSDATE - 10,
end_date => NULL
);
l_responsibility_name :=
l_responsibility_name || ' , ' || rec_resp.responsibility_name;

Page 2
Untitled
END LOOP;
DBMS_OUTPUT.put_line ('SUCCESS');
DBMS_OUTPUT.put_line
('****************************************************');
DBMS_OUTPUT.put_line ('Employee_name - ' || l_person_name);
DBMS_OUTPUT.put_line ('Person_id - ' || v_person_id);
DBMS_OUTPUT.put_line ('User_name - ' || l_user_name);
DBMS_OUTPUT.put_line ('Responsibility - ' || l_responsibility_name);
DBMS_OUTPUT.put_line ('Resp app - ' || v_resp_app);
DBMS_OUTPUT.put_line ('Resp key - ' || v_resp_key);
DBMS_OUTPUT.put_line
('****************************************************');
---END IF;
END LOOP;
COMMIT;
DBMS_OUTPUT.put_line (v_count || ' users created successfully');
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('ERROR');
DBMS_OUTPUT.put_line
('****************************************************');
DBMS_OUTPUT.put_line ('Employee_name - ' || l_person_name);
DBMS_OUTPUT.put_line ('User_name - ' || l_user_name);
DBMS_OUTPUT.put_line ('Person_id - ' || v_person_id);
DBMS_OUTPUT.put_line ('Responsibility - ' || l_responsibility_name);
DBMS_OUTPUT.put_line ('Resp app - ' || v_resp_app);
DBMS_OUTPUT.put_line ('Resp key - ' || v_resp_key);
DBMS_OUTPUT.put_line
('****************************************************');
ROLLBACK;
END;
/
DROP TABLE fnd_user_tmp;
/
DROP TABLE fnd_user_resp_tmp;
/
Page 3

You might also like