Thursday, 8 August 2019

How to check the responsibility for a concurrent program or report

SELECT --fr.responsibility_id,
         frt.responsibility_name,
         fr.responsibility_key,
         fr.start_date,
         fr.end_date,
         frt.description,
         --fr.request_group_id,
         --rgu.application_id,
         rg.request_group_name,
         --rg.description rq_desc,
         --rgu.request_unit_id,
         rg.request_group_code,
         --cp.concurrent_program_id,
         CP.CONCURRENT_PROGRAM_NAME,
         cp.enabled_flag program_enabled,
         cpt.user_concurrent_program_name,
         cpt.description ccp_desc
    FROM fnd_responsibility_tl frt,
         fnd_responsibility fr,
         FND_REQUEST_GROUP_UNITS rgu                --appid, rqgid, uaid,rquid
                                    ,
         fnd_request_groups rg                           --appid,rqgid,rqgcode
                              ,
         fnd_concurrent_programs cp --application_id, concurrent_program_id, concurrent_program_name, enabled_flag
                                   ,
         FND_CONCURRENT_PROGRAMS_TL cpt -- application_id, concurrent_program_id, user_concurrent_program_name, description
   WHERE     cp.application_id = cpt.application_id
         AND cp.concurrent_program_id = cpt.concurrent_program_id
         AND rgu.application_id = rg.application_id
         AND cp.concurrent_program_id = rgu.request_unit_id
         AND rgu.request_group_id = rg.request_group_id
         -- does something, sometimes null for valid items
         --and request_group_code is not null
         AND fr.request_group_id = rg.request_group_id
         AND frt.application_id = fr.application_id
         AND frt.responsibility_id = fr.responsibility_id
         --frt.responsibility_name like 'General Ledger Supervisor'
         --and fr.responsibility_id = '2222'
         AND rgu.request_unit_type = 'P'
         --REQUEST GROUP
         --and upper(rg.request_group_name) like upper(:REQ_GRP_NAME)
         --PROGRAM READABLE NAME
         AND UPPER (cpt.user_concurrent_program_name) LIKE UPPER (:CONCURRENT_PROGRAM_FULL_NAME)
         --PROGRAM SHORT NAME
         --AND upper(cp.concurrent_program_name) LIKE upper(:CONCURRENT_PROGRAM_SHRT_NAME)
ORDER BY cp.concurrent_program_name