Query to get UserName by Service details in Fusion HCM

 SELECT DISTINCT priv.service
,      u.user_login         user_login
-- ,      pu.user_id
 ,      pu.person_id
-- ,      ppf.person_number
,      priv.code               privilege
,      priv.name               privilege_name
--,      priv.description        Privilege_Description
,      fr.top_role_id          role_id
,    rtl.role_name
,      fr.top_role_code        role_code,
pu.active_flag username_status,
pu.suspended suspend_status,
pu.hr_terminated,
(select paf.ASSIGNMENT_STATUS_TYPE 
from per_all_assignments_f paf
where paf.person_id = pu.person_id
and paf.primary_flag = 'Y'
  AND paf.assignment_type in ('E','C','P')
and paf.effective_latest_change = 'Y'
and paf.assignment_sequence = (select max(paf1.assignment_sequence)
from per_all_assignments_f paf1
where paf1.person_id = pu.person_id
and paf1.primary_flag = 'Y'
  AND paf1.assignment_type in ('E','C','P')
  and paf1.effective_latest_change = 'Y'
  and trunc(sysdate) BETWEEN paf1.EFFECTIVE_START_DATE and paf1.EFFECTIVE_END_DATE)
  and trunc(sysdate) BETWEEN paf.EFFECTIVE_START_DATE and paf.EFFECTIVE_END_DATE
) ASSIGNMENT_STATUS_TYPE,
(select paf.ASSIGNMENT_number 
from per_all_assignments_f paf
where paf.person_id = pu.person_id
and paf.primary_flag = 'Y'
  AND paf.assignment_type in ('E','C','P')
and paf.effective_latest_change = 'Y'
and paf.assignment_sequence = (select max(paf1.assignment_sequence)
from per_all_assignments_f paf1
where paf1.person_id = pu.person_id
and paf1.primary_flag = 'Y'
  AND paf1.assignment_type in ('E','C','P')
  and paf1.effective_latest_change = 'Y'
  and trunc(sysdate) BETWEEN paf1.EFFECTIVE_START_DATE and paf1.EFFECTIVE_END_DATE)
  and trunc(sysdate) BETWEEN paf.EFFECTIVE_START_DATE and paf.EFFECTIVE_END_DATE
) ASSIGNMENT_number,
  
  (select paf.assignment_type 
from per_all_assignments_f paf
where paf.person_id = pu.person_id
and paf.primary_flag = 'Y'
  AND paf.assignment_type in ('E','C','P')
and paf.effective_latest_change = 'Y'
and paf.assignment_sequence = (select max(paf1.assignment_sequence)
from per_all_assignments_f paf1
where paf1.person_id = pu.person_id
and paf1.primary_flag = 'Y'
  AND paf1.assignment_type in ('E','C','P')
  and paf1.effective_latest_change = 'Y'
  and trunc(sysdate) BETWEEN paf1.EFFECTIVE_START_DATE and paf1.EFFECTIVE_END_DATE)
  and trunc(sysdate) BETWEEN paf.EFFECTIVE_START_DATE and paf.EFFECTIVE_END_DATE
) assignment_type,
  
  (select paf.action_code 
from per_all_assignments_f paf
where paf.person_id = pu.person_id
and paf.primary_flag = 'Y'
  AND paf.assignment_type in ('E','C','P')
and paf.effective_latest_change = 'Y'
and paf.assignment_sequence = (select max(paf1.assignment_sequence)
from per_all_assignments_f paf1
where paf1.person_id = pu.person_id
and paf1.primary_flag = 'Y'
  AND paf1.assignment_type in ('E','C','P')
  and paf1.effective_latest_change = 'Y'
  and trunc(sysdate) BETWEEN paf1.EFFECTIVE_START_DATE and paf1.EFFECTIVE_END_DATE)
  and trunc(sysdate) BETWEEN paf.EFFECTIVE_START_DATE and paf.EFFECTIVE_END_DATE
) action_code 
FROM   fusion.ase_user_role_mbr ur
,      fusion.ase_role_tl  rtl
,      fusion.ase_user_b u
,      fusion.per_users pu
,    ( SELECT CONNECT_BY_ROOT parent_role_code top_role_code
       ,      CONNECT_BY_ROOT parent_role_id   top_role_id
       ,      CONNECT_BY_ROOT parent_role_guid top_role_guid
       ,      child_role_code role_code
       ,      child_role_id   role_id
       ,      child_role_guid role_guid
       FROM ( SELECT pr.code      parent_role_code
              ,      pr.role_id   parent_role_id
              ,      pr.guid      parent_role_guid
              ,      cr.code      child_role_code
              ,      cr.role_id   child_role_id
              ,      cr.guid      child_role_guid
              FROM fusion.ase_role_b pr
              ,    fusion.ase_role_b cr
              ,    fusion.ase_role_role_mbr rr
              WHERE rr.effective_end_date IS NULL
              AND   cr.role_id = rr.parent_role_id
              AND   pr.role_id = rr.child_role_id ) role_hierarchy
       CONNECT BY NOCYCLE PRIOR child_role_id = parent_role_id
       UNION ALL
       SELECT r.code
       ,      r.role_id
       ,      r.guid
       ,      r.code
       ,      r.role_id
       ,      r.guid
       FROM   fusion.ase_role_b r) fr
,    ( SELECT privrole.role_id
       ,      priv.code
       ,      privtl.name
       ,      privtl.description
       ,      privrole.effective_start_date policy_start_date
       ,      privrole.effective_end_date policy_end_date
       ,      metric.metric_name service
       FROM   fusion.ase_priv_role_mbr privrole
       ,      fusion.ase_privilege_b priv
       ,      fusion.ase_privilege_tl privtl
       ,    ( SELECT vl.translated_value metric_set_code
              ,      vl.description      metric_set_name
              FROM   fnd_vs_value_sets vs
              ,      fnd_vs_values_b v
              ,      fnd_vs_values_tl vl
              WHERE  vs.value_set_code = 'ORA_PER_METRICS_SETS'
              AND    v.value_set_id = vs.value_set_id
              AND    v.enabled_flag = 'Y'
              AND    SYSDATE between nvl(v.start_date_active , SYSDATE) AND nvl(v.end_date_active , SYSDATE)
              AND    vl.value_id = v.value_id
              AND    vl.language = 'US' ) metricset
       ,    ( SELECT vs.value_set_code metric_set_code
              ,      vl.translated_value metric_code
              ,      vl.description metric_name
              FROM   fnd_vs_value_sets vs
              ,      fnd_vs_values_b v
              ,      fnd_vs_values_tl vl
              WHERE  v.value_set_id = vs.value_set_id
              AND    v.enabled_flag = 'Y'
              AND    v.flex_value_attribute17 is null
              AND    SYSDATE between nvl(v.start_date_active , SYSDATE) AND nvl(v.end_date_active , SYSDATE)
              AND    vl.value_id = v.value_id
              AND    vl.language = 'US' ) metric
       ,    ( SELECT vs.value_set_code metric_code
              ,      vl.translated_value priv_code
              FROM   fnd_vs_value_sets vs
              ,      fnd_vs_values_b v
              ,      fnd_vs_values_tl vl
              WHERE  v.value_set_id = vs.value_set_id
              AND    v.enabled_flag = 'Y'
              AND    SYSDATE between nvl(v.start_date_active , SYSDATE) AND nvl(v.end_date_active , SYSDATE)
              AND    vl.value_id = v.value_id
              AND    vl.language = 'US' ) metricpriv
       WHERE  priv.privilege_id = privrole.privilege_id
       AND    priv.privilege_id = privtl.privilege_id
       AND    privtl.Language  = 'US'
       AND    metric.metric_set_code = metricset.metric_set_code
       AND    metricpriv.metric_code = metric.metric_code
       AND    priv.code = metricpriv.priv_code ) priv
WHERE  ur.user_id = u.user_id
AND    rtl.role_id = ur.role_id
AND    rtl.language = 'US'
AND    fr.top_role_id = ur.role_id
AND    priv.role_id = fr.role_id
AND    NVL( ur.effective_end_date , SYSDATE ) >= SYSDATE 
AND    priv.policy_start_date <= NVL( ur.effective_end_date , SYSDATE )
AND    NVL( priv.policy_end_date , SYSDATE ) >= SYSDATE
AND    u.user_guid = pu.user_guid
AND  ( pu.suspended is null or pu.suspended = 'N' )
AND    u.user_login not in
       ( 'orcladmin'
       , 'weblogic_read_only'
       , 'xelsysadm'
       , 'oamSoftwareUser'
       , 'IDROUser'
       , 'PolicyROUser'
       , 'PolicyRWUser'
       , 'oimAdminUser'
       , 'IDMPolicyROUser'
       , 'IDMPolicyRWUser'
       , 'faoperator'
       , 'saas_readonly'
       , 'em_monitoring'
       , 'oamAdminUser'
       , 'weblogic_idm'
       , 'IDRWUser'
       , 'PUBLIC'
       , 'FAAdmin'
       , 'weblogic'
       , 'XELOPERATOR'
       , 'OblixAnonymous'
       , 'OCLOUD9_osn_APPID' )
AND    u.user_login not like 'FUSION_APPS_%_APPID'
order by service, user_login

Comments

Popular posts from this blog

Query to get Salary Change details in Fusion HCM

Oracle Fusion HCM - Enhancements to Summary of Changes and History Sections in Redwood Workforce Structures Pages

๐Ÿงพ Streamlining Payroll Operations with Oracle Payroll Activity Center