Create User
CREATE TABLE
APPS.XX_CREATE_USER_STG
(
USER_NAME
VARCHAR2(111 BYTE),
PASSWORD
VARCHAR2(111 BYTE),
OWNER
VARCHAR2(111 BYTE),
PROCESS_FLAG
VARCHAR2(111 BYTE),
ERROR_MSG
VARCHAR2(1000 BYTE)
)
*/
CREATE OR REPLACE
PROCEDURE xx_create_fnd_user_prc
IS
CURSOR
c_user
IS
SELECT ROWID, t.* FROM XX_CREATE_USER_STG t;
l_user_name VARCHAR2 (100);
l_user_password VARCHAR2 (100);
l_person_id VARCHAR2 (111);
l_process_flag VARCHAR2 (50);
l_error_msg VARCHAR2 (200);
l_status
VARCHAR2 (10);
BEGIN
FOR i IN
c_user
LOOP
BEGIN
SELECT person_id
INTO l_person_id
FROM per_all_people_f paf
WHERE FULL_NAME = i.OWNER
AND SYSDATE BETWEEN EFFECTIVE_START_DATE
AND EFFECTIVE_END_DATE;
DBMS_OUTPUT.put_line ('person_id : ' || l_person_id);
l_status := 'S';
EXCEPTION
WHEN OTHERS
THEN
l_error_msg := l_error_msg || '--Person ID is NULL';
l_status := NULL;
END;
BEGIN
SELECT user_name
INTO l_user_name
FROM fnd_user
WHERE USER_NAME = i.user_name;
l_status := 'N';
EXCEPTION
WHEN OTHERS
THEN
l_status := 'S';
-- l_error_msg:=l_error_msg||'--Person ID is NULL';
END;
BEGIN
IF l_status = 'S'
THEN
fnd_user_pkg.
CreateUser (x_user_name
=> i.user_name,
x_owner
=> I.OWNER,
x_unencrypted_password => i.password,
x_start_date
=> NULL,
x_end_date
=>
NULL,
x_last_logon_date =>
NULL,
x_description
=> NULL,
x_password_date
=> NULL,
x_password_accesses_left => NULL,
x_password_lifespan_accesses => NULL,
x_password_lifespan_days => NULL,
x_employee_id
=> l_person_id,
x_email_address
=> NULL,
x_fax
=> NULL,
x_customer_id
=> NULL,
x_supplier_id
=> NULL);
DBMS_OUTPUT.
put_line ('USER is Created Successfully:=' ||
i.user_name);
UPDATE XX_CREATE_USER_STG
SET process_flag = 'S', error_msg =
l_error_msg
WHERE ROWID = i.ROWID;
COMMIT;
ELSE
UPDATE XX_CREATE_USER_STG
SET process_flag = 'E', error_msg =
l_error_msg
WHERE ROWID = i.ROWID;
COMMIT;
END IF;
end;
END LOOP;
END;
EXEC
xx_create_fnd_user_prc