If you want to implement Single Sign On (SSO) Or you need to standardize username to match oracle username with Active Directory usernames, oracle provided a simple API to accomplish this task. However it works fine when done from ERP Application front end but to update all the user names is a tedious job or we can use some tools like data loader to change the usernames from the front end.
Using APPS.FND_USER_PKG API to change the username as well as update the related WF tables.
1. Collect the list of users
Identify the active users from fnd_user excluding seeded users.
SQL> SELECT user_name
FROM fnd_user
WHERE end_date IS NOT NULL
AND user_name NOT IN
('SYSADMIN',
'AUTOINSTALL',
'GUEST',
'IEXADMIN',
'OP_SYSADMIN',
'ASGUEST',
'IRC_EXT_GUEST',
'IRC_EMP_GUEST',
'PORTAL30',
'PORTAL30_SSO',
'XML_USER');
2. Modify the user name
Execute the below procedure to change the user name.
SQL> BEGIN
fnd_user_pkg.change_user_name (x_old_user_name => 'OLDUSERNAME',
x_new_user_name => 'NEWUSERNAME'
);
COMMIT;
END;
/
3. Update WF_NOTIFICATIONS.receipient_role with new user names.
After changing the username, users cannot find their old notifications in the worklist.
Execute the below procedure to update the user name.
SQL> exec WF_MAINTENANCE.PropagateChangedName('OLDUSERNAME','NEWUSERNAME');
(4) Execute the following query to find out if the usernames in WF_NOTIFICATIONS were changed
SQL> select notification_id, begin_date, end_date, mail_status, status,recipient_role
from wf_notifications
where recipient_role in ('OLDUSERNAME');
Above query should not supposed to return any rows for old user names.
5. Verify the change
SQL> select user_name, end_date from fnd_user where user_name='NEWUSERNAME';
USER_NAME |END_DATE
------------------|---------
NEWUSERNAME |
SQL> select user_name, role_name from wf_local_user_roles where user_name='NEWUSERNAME';
USER_NAME |ROLE_NAME
-----------------------|-------------------------------------
NEWUSERNAME |FND_RESP|SQLGL|MS_GL|STANDARD
NEWUSERNAME |FND_RESP|SYSADMIN|SYSTECH|STANDARD
NEWUSERNAME |FND_RESP|SYSADMIN|SYSTEM_ADMINISTRATOR|STANDARD
The new user name is being accepted at login. Checked few old transactions created by the user for verification.