You are on page 1of 12

FUSION APPLICATIONS USER ROLE DETAIL REPORT

AUTHOR : ASHISH HARBHAJANKA

FUSION APPLICATIONS USER ROLE DETAIL REPORT


BUSINESS REQUIREMENT:

It is a very common requirement in almost all implementation where in the Stakeholders are
interested to know how many user accounts are there is the system along with the corresponding
roles attached to them. While oracle has delivered some seeded Reports which could be run from
Application Diagnostic Framework, screenshot below (Troubleshooting -> Run Diagnostic
Tests)

ORACLE DELIVERED REPORTS

1) User Roles Display


2) User and Role : Role Details
3) User and Role : User Details

NAVIGATION TO RUN DELIVERED REPORTS

Login to Application -> Run Diagnostic Tests

After Running Reports :

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

DELIVERED REPORT 1 -> USER ROLES DISPLAY

User Roles Display: (Displays the Roles attached to procurement user)

Input Value : Sachin.Satpute

Output Screenshot :

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

DELIVERED REPORT 2 -> USER AND ROLE : ROLE DETAILS

User and Role : Role Details


Takes Role Name as input and displays all users who have the role attached to their user account.
( Secured i.e if the individual who is running the Report has access to a specific Data Set
individuals belonging to that Data Set would only be displayed).

Input Value : Employee

Output Screenshot :

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

DELIVERED REPORT 3 -> USER AND ROLE : USER DETAILS

User and Role : User Details


Takes User Name as input and displays all roles attached to the user. (Secured i.e if the
individual who is running the Report has access to a User Account being passed as input data
would be displayed else no.)

Input value : Sachin.Satpute

Output Screenshot :

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

NEED FOR A CUSTOM CONSOLIDATED R EPORT

But if we need a consolidated report which will list all the users along with all the roles they
have neither of the delivered ones help.
So we need a Custom Report (Preferred O/P Format could be RTF, Interactive, Excel,PPT. )
Since we are planning to display a colorful report with Different colour Code Combination (
using Conditional Formatting feature we choose PPT Format for this example)

CUSTOM REPORT NAME -> USER AND ROLE DETAILS REPORT


SQL USED FOR USER AND ROLE DETAILS R EPORT

select papf.person_number "PersonNumber",


ppnf_emp.full_name "PersonName",
pu_emp.user_start_date "UserAccountStartDate",
pu_emp.user_end_date "UserAccountEndDate",
pu_emp.is_user_account_active "UserAccountStatus",
pu_emp.username "UserAccountName",
pu_emp.is_user_account_suspended "IsUserAccountSuspended",
pu_emp.user_distinguished_name "UserAccountInternalName",
pur_emp.method_code "RoleProvisioningMethod",
pur_emp.is_user_role_active "IsUserRoleActive",
pur_emp.is_user_role_terminated "IsUserRoleTerminated",
Case
When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'No' ) Then 'Active'
When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'No') Then
'NeitherActiveNorTerminated'
When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'Yes') Then
'ActiveAndTerminated'
When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'Yes' ) Then
'InactiveAndNotTerminated'
End as "UserRoleStatus",
pur_emp.role_start_date "UserRoleStartDate",
pur_emp.role_end_date "UserRoleEndDate",
prd_emp.abstract_role "IsRoleAAbstractRole",
prd_emp.job_role
"IsRoleAJobRole",
prd_emp.data_role
"IsRoleADataRole",
prd_emp.is_role_active "IsRoleActive",
Case
When (prd_emp.abstract_role = 'Y' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'N' ) Then 'Abstract
Role'
When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'Y' AND prd_emp.data_role = 'N' ) Then 'Job Role'

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'Y' ) Then 'Data Role'
When (prd_emp.abstract_role is NULL AND prd_emp.job_role is NULL AND prd_emp.data_role is NULL ) Then '-NA--'
End as "UserRoleType",
prd_emp.role_common_name "RoleCommonName",
prd_emp.multitenancy_common_name "MultitenancyCommonName",
prd_emp.role_distinguished_name "IsRoleDistinguishedName",
prdt_emp.role_name
"UserRoleName",
prdt_emp.RoleDescription
FROM per_all_people_f papf
JOIN
(
SELECT ppnf.full_name,
ppnf.person_id
FROM per_person_names_f ppnf
WHERE ppnf.name_type = 'GLOBAL'
AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date AND ppnf.effective_end_date
) ppnf_emp
ON (
ppnf_emp.person_id = papf.person_id
AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date
)
LEFT OUTER JOIN
(
SELECT pu.person_id,
pu.user_id,
pu.username,
to_char(pu.start_date,'DD-MM-RRRR') user_start_date,
to_char(pu.end_date,'DD-MM-RRRR') user_end_date,
DECODE(pu.active_flag,'N','Inactive','Y','Active') is_user_account_active,
DECODE(pu.suspended,'N','No','Y','Yes') is_user_account_suspended,
pu.user_distinguished_name
FROM per_users pu
) pu_emp
ON (pu_emp.person_id = papf.person_id AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND
papf.effective_end_date)
LEFT OUTER JOIN
(
SELECT pur.user_id,
pur.role_id,
pur.role_guid,
DECODE(pur.method_code,'A','Automatic','M','Manually','E','Externally Provisioned') method_code,
DECODE(pur.active_flag,'N','No','Y','Yes') is_user_role_active,
DECODE(pur.terminated_flag,'N','No','Y','Yes') is_user_role_terminated,
to_char(pur.start_date,'DD-MM-RRRR') role_start_date,
to_char(pur.end_date,'DD-MM-RRRR') role_end_date
FROM per_user_roles pur
) pur_emp
ON (pu_emp.user_id = pur_emp.user_id)
JOIN
(
SELECT
prd.role_id,
prd.role_guid,
prd.abstract_role,
prd.job_role,
prd.data_role,
DECODE(prd.active_flag,'N','No','Y','Yes') is_role_active,
prd.role_common_name,

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

prd.multitenancy_common_name,
prd.role_distinguished_name
FROM per_roles_dn prd
) prd_emp
ON (pur_emp.role_id = prd_emp.role_id AND pur_emp.role_guid = prd_emp.role_guid)
JOIN
(
SELECT
prdt.role_id,
prdt.role_name,
prdt.description RoleDescription,
prdt.source_lang
FROM
per_roles_dn_tl prdt
) prdt_emp
ON (prd_emp.role_id = prdt_emp.role_id AND pur_emp.role_id = prdt_emp.role_id AND prdt_emp.source_lang = 'US' )
WHERE papf.person_number = nvl(:pn_person_number, papf.person_number)
AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date

CONDITIONAL FORMATTING

The different colour code feature can be added using the Conditional Formatting fields
( Highlight and Manage Formats )

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

REPORT OUTPUT

SCHEDULING THE REPORT

Scheduling the Report :

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

SCHEDULED OUTPUT (PPT FORMAT)

ESS J OB CREATION

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

PARAMETER DEFINITION

RUNNING SCHEDULED J OB

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

RUNNING SCHEDULED J OB FOR ONE PERSON

Person Number : 10

FUSION APPLICATIONS USER ROLE DETAIL REPORT


AUTHOR : ASHISH HARBHAJANKA

You might also like