1610: -- Business Rules :
1611: -- Parameters : itemtype, itemkey, actid, funcmode, resultout, p_user_id,
1612: -- x_name, x_description
1613: -- Version : 1.1
1614: -- MDOKAL : Bug 2902588, changed code to check for fnd_user info 1st
1615: -- and then WF_ROLES instead of WF_USERS.
1616: -- : 19-NOV-03 MDOKAL Bug 3262184 - changed order in which
1617: -- wf users are retrieved.
1618: -- End of comments
1631: FROM WF_ROLES
1632: WHERE orig_system_id = c_emp_id
1633: AND orig_system = c_system;
1634:
1635: CURSOR fnd_users_csr(c_user_id NUMBER)
1636: IS
1637: SELECT USER_NAME, DESCRIPTION, EMPLOYEE_ID
1638: FROM FND_USER
1639: WHERE user_id = c_user_id;
1634:
1635: CURSOR fnd_users_csr(c_user_id NUMBER)
1636: IS
1637: SELECT USER_NAME, DESCRIPTION, EMPLOYEE_ID
1638: FROM FND_USER
1639: WHERE user_id = c_user_id;
1640:
1641: l_user VARCHAR2(50);
1642: l_desc VARCHAR2(100);
1652: OKL_DEBUG_PUB.LOG_DEBUG(G_LEVEL_PROCEDURE,L_MODULE_NAME,'Begin(+)');
1653: END IF;
1654:
1655: /* The logic for retrieving a wf user follows this hierarchy:
1656: [Step 1] First check if p_user_id is for an FND user.
1657: [Step 2] If FND user found, then find if attached to a HR person
1658: [Step 3] If Step 2 is TRUE then get user where orig system is 'PER'
1659: based on the HR person id (l_emp)
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1653: END IF;
1654:
1655: /* The logic for retrieving a wf user follows this hierarchy:
1656: [Step 1] First check if p_user_id is for an FND user.
1657: [Step 2] If FND user found, then find if attached to a HR person
1658: [Step 3] If Step 2 is TRUE then get user where orig system is 'PER'
1659: based on the HR person id (l_emp)
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1661: to a HR person, use the FND user as is.
1657: [Step 2] If FND user found, then find if attached to a HR person
1658: [Step 3] If Step 2 is TRUE then get user where orig system is 'PER'
1659: based on the HR person id (l_emp)
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1661: to a HR person, use the FND user as is.
1662: [Step 5] If FND user not found, then check if the p_user_id passed
1663: is indeed for a HR person that is attached to an FND user.
1664: [Step 6] If FND user not found and PER user not found, check if the
1665: p_user_id pertains to a HR person not attached to an FND user.
1658: [Step 3] If Step 2 is TRUE then get user where orig system is 'PER'
1659: based on the HR person id (l_emp)
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1661: to a HR person, use the FND user as is.
1662: [Step 5] If FND user not found, then check if the p_user_id passed
1663: is indeed for a HR person that is attached to an FND user.
1664: [Step 6] If FND user not found and PER user not found, check if the
1665: p_user_id pertains to a HR person not attached to an FND user.
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1659: based on the HR person id (l_emp)
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1661: to a HR person, use the FND user as is.
1662: [Step 5] If FND user not found, then check if the p_user_id passed
1663: is indeed for a HR person that is attached to an FND user.
1664: [Step 6] If FND user not found and PER user not found, check if the
1665: p_user_id pertains to a HR person not attached to an FND user.
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1667:
1660: [Step 4] If Step 2 TRUE but l_emp is NULL therefore not attached
1661: to a HR person, use the FND user as is.
1662: [Step 5] If FND user not found, then check if the p_user_id passed
1663: is indeed for a HR person that is attached to an FND user.
1664: [Step 6] If FND user not found and PER user not found, check if the
1665: p_user_id pertains to a HR person not attached to an FND user.
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1667:
1668: */
1661: to a HR person, use the FND user as is.
1662: [Step 5] If FND user not found, then check if the p_user_id passed
1663: is indeed for a HR person that is attached to an FND user.
1664: [Step 6] If FND user not found and PER user not found, check if the
1665: p_user_id pertains to a HR person not attached to an FND user.
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1667:
1668: */
1669: -- 1st Check fnd users
1665: p_user_id pertains to a HR person not attached to an FND user.
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1667:
1668: */
1669: -- 1st Check fnd users
1670: OPEN fnd_users_csr(p_user_id);
1671: FETCH fnd_users_csr INTO l_user, l_desc, l_emp;
1672: IF fnd_users_csr%notfound THEN
1673: -- 2nd check if id passed belongs to an employee rather then fnd user
1666: [Step 7] Finally, this is an invalid user, user the sysadmin user.
1667:
1668: */
1669: -- 1st Check fnd users
1670: OPEN fnd_users_csr(p_user_id);
1671: FETCH fnd_users_csr INTO l_user, l_desc, l_emp;
1672: IF fnd_users_csr%notfound THEN
1673: -- 2nd check if id passed belongs to an employee rather then fnd user
1674: OPEN wf_roles_csr(p_user_id, 'PER');
1667:
1668: */
1669: -- 1st Check fnd users
1670: OPEN fnd_users_csr(p_user_id);
1671: FETCH fnd_users_csr INTO l_user, l_desc, l_emp;
1672: IF fnd_users_csr%notfound THEN
1673: -- 2nd check if id passed belongs to an employee rather then fnd user
1674: OPEN wf_roles_csr(p_user_id, 'PER');
1675: FETCH wf_roles_csr INTO l_user, l_desc;
1668: */
1669: -- 1st Check fnd users
1670: OPEN fnd_users_csr(p_user_id);
1671: FETCH fnd_users_csr INTO l_user, l_desc, l_emp;
1672: IF fnd_users_csr%notfound THEN
1673: -- 2nd check if id passed belongs to an employee rather then fnd user
1674: OPEN wf_roles_csr(p_user_id, 'PER');
1675: FETCH wf_roles_csr INTO l_user, l_desc;
1676: IF wf_roles_csr%notfound THEN
1669: -- 1st Check fnd users
1670: OPEN fnd_users_csr(p_user_id);
1671: FETCH fnd_users_csr INTO l_user, l_desc, l_emp;
1672: IF fnd_users_csr%notfound THEN
1673: -- 2nd check if id passed belongs to an employee rather then fnd user
1674: OPEN wf_roles_csr(p_user_id, 'PER');
1675: FETCH wf_roles_csr INTO l_user, l_desc;
1676: IF wf_roles_csr%notfound THEN
1677: CLOSE wf_roles_csr;
1674: OPEN wf_roles_csr(p_user_id, 'PER');
1675: FETCH wf_roles_csr INTO l_user, l_desc;
1676: IF wf_roles_csr%notfound THEN
1677: CLOSE wf_roles_csr;
1678: -- Maybe a HR user not attached to FND user
1679: OPEN wf_roles_csr(p_user_id, 'HZ_PARTY');
1680: FETCH wf_roles_csr INTO l_user, l_desc;
1681: CLOSE wf_roles_csr;
1682: ELSE
1682: ELSE
1683: CLOSE wf_roles_csr;
1684: END IF;
1685: END IF;
1686: CLOSE fnd_users_csr;
1687:
1688: -- if l_emp is not null then the user is attached to an employee
1689: IF l_emp IS NOT NULL THEN
1690: