Tuesday, 6 January 2015

Discoverer Workbook wise Sharing Details

SELECT DISTINCT disco_docs.doc_name "Discoverer Workbook",
                TRUNC (disco_docs.doc_created_date) "Workbook Create Date",
                CASE
                   WHEN INSTR
                          (disco_docs.doc_created_by,
                           '#'
                          ) = 0
                      THEN disco_docs.doc_created_by
                   WHEN INSTR (disco_docs.doc_created_by, '#') > 0
                   AND INSTR (disco_docs.doc_created_by, '#', 2) = 0
                      THEN (SELECT fu.user_name
                              FROM fnd_user fu
                             WHERE fu.user_id =
                                      SUBSTR (disco_docs.doc_created_by, 2, 5))
                   ELSE NULL
                END "Workbook Owner/Creator",
                disco_users.eu_username,
                CASE
                   WHEN INSTR
                          (disco_users.eu_username,
                           '#'
                          ) = 0
                      THEN disco_users.eu_username
                   WHEN INSTR (disco_users.eu_username, '#') > 0
                   AND INSTR (disco_users.eu_username, '#', 2) = 0
                      THEN (SELECT fu.user_name
                              FROM fnd_user fu
                             WHERE fu.user_id =
                                        SUBSTR (disco_users.eu_username, 2, 5))
                   ELSE (SELECT resp.responsibility_name
                           FROM fnd_responsibility_vl resp
                          WHERE resp.responsibility_id =
                                        SUBSTR (disco_users.eu_username, 2, 5)
                          --AND        ROWNUM =1
                          )
                END AS "Shared Name / Responsibility"
           FROM DISC_EUL_10G_US.eul5_documents disco_docs,
                DISC_EUL_10G_US.eul5_access_privs disco_shares,
                DISC_EUL_10G_US.eul5_eul_users disco_users
          WHERE disco_docs.doc_id = disco_shares.gd_doc_id
            AND disco_users.eu_username(+) NOT IN ('DISC_EUL_US', 'PUBLIC')
            AND disco_users.eu_id(+) = disco_shares.ap_eu_id
            AND disco_docs.doc_name LIKE '%'||:object_no||'%';

Responsibility wise Discoverer Object Sharing Details

SELECT DISTINCT disco_docs.doc_name "Discoverer Workbook",
                TRUNC (disco_docs.doc_created_date) "Workbook Create Date",
                CASE
                   WHEN INSTR
                          (disco_docs.doc_created_by,
                           '#'
                          ) = 0
                      THEN disco_docs.doc_created_by
                   WHEN INSTR (disco_docs.doc_created_by, '#') > 0
                   AND INSTR (disco_docs.doc_created_by, '#', 2) = 0
                      THEN (SELECT fu.user_name
                              FROM fnd_user fu
                             WHERE fu.user_id =
                                      SUBSTR (disco_docs.doc_created_by, 2, 5))
                   ELSE NULL
                END "Workbook Owner/Creator",
                disco_users.eu_username,
                disco_docs.doc_name,
                frv.responsibility_name
           FROM DISC_EUL_10G_US.eul5_documents disco_docs,
                DISC_EUL_10G_US.eul5_access_privs disco_shares,
                DISC_EUL_10G_US.eul5_eul_users disco_users,
                fnd_responsibility_vl frv
          WHERE disco_docs.doc_id = disco_shares.gd_doc_id
            AND disco_users.eu_username(+) NOT IN ('DISC_EUL_US', 'PUBLIC')
            AND disco_users.eu_id(+) = disco_shares.ap_eu_id
            and SUBSTR (disco_users.eu_username, 2, 5) like '%' || frv.responsibility_id || '%'
            and upper(frv.responsibility_name) like '%' ||upper(:responsibility_name) || '%'

Monday, 5 January 2015

Discoverer Workbook History

select  decode(usr.user_name,'DISCO','DISCO','USER') "Workbook Owner Type",
         usr.user_name, ba.custom_ba "Custom Business Area",
         ba.custom_folder_name,
         ba.complex_ba "Complex Business Area",
         ba.complex_folder_name,
         doc.doc_name "Work Book",  acc.qs_doc_details "Sheet Name",
         min(qs_act_elap_time) "Fastest (s)",
         max(qs_act_elap_time) "Slowest (s)",
         round(avg(qs_act_elap_time),2) "AVG (s)",
         round(avg(qs_act_elap_time)/60,2) "AVG (m)",
         round((avg(qs_act_elap_time)/60)/60,2) "AVG (hr)",
         count(*) "Often Used",
         doc.doc_created_date,
         min(acc.qs_created_date) "First Access",
         max(acc.qs_created_date) "Last Access"
         ,(select user_name from fnd_user where user_id = (select substr(qs_created_by,2,length(qs_created_by)) from DISC_EUL_10G_US.eul5_qpp_stats
         where qs_id = (select max(qs_id) from DISC_EUL_10G_US.eul5_qpp_stats where qs_doc_name = doc.doc_name ))) "Last Accessed By"
 from    DISC_EUL_10G_US.eul5_documents doc,
         apps.fnd_user usr,
         DISC_EUL_10G_US.eul5_qpp_stats acc,
         (select distinct gd_doc_id from DISC_EUL_10G_US.eul5_access_privs ) privs,
         (select distinct ba_to.ba_name Custom_BA, ba_from.ba_name Complex_BA,
            decode(obj_from.obj_type,'CUO','Custom Folder','COBJ','Complex Folder',obj_from.obj_type) object_type,
            obj_from.obj_name complex_folder_name, obj_to.obj_name custom_folder_name, doc.doc_name, doc.doc_id
from
    DISC_EUL_10G_US.eul5_bas ba_from,
    DISC_EUL_10G_US.eul5_bas ba_to,
    DISC_EUL_10G_US.eul5_ba_obj_links bol_from,
    DISC_EUL_10G_US.eul5_ba_obj_links bol_to,
    DISC_EUL_10G_US.eul5_objs obj_from,
    DISC_EUL_10G_US.eul5_objs obj_to,
    DISC_EUL_10G_US.eul5_elem_xrefs eex,
    DISC_EUL_10G_US.eul5_documents doc,
    DISC_EUL_10G_US.EUL5_OBJ_DEPS odep
where  ba_from.ba_id = bol_from.bol_ba_id
and ba_to.ba_id = bol_to.bol_ba_id
and bol_from.bol_obj_id = obj_from.obj_id
and bol_to.bol_obj_id = obj_to.obj_id
and obj_from.obj_id = odep.od_obj_id_from
and obj_to.obj_id = odep.od_obj_id_to
and obj_from.obj_name = eex.ex_to_par_name(+)
and doc.doc_id(+) = eex.ex_from_id
         )ba
 where   '#'||usr.user_id=doc.doc_created_by
         And doc.doc_name=acc.qs_doc_name
         And privs.gd_doc_id = doc.doc_id
         And usr.user_name = upper(acc.QS_DOC_OWNER)
         And doc.doc_created_date<acc.qs_created_date
         And doc.doc_id=BA.doc_id
         --and (doc.doc_name) like upper('%' || :Work_Name || '%')
         --and upper(acc.qs_doc_details) like upper('%Partial%' )
         --and qs_created_date between sysdate - 1 and sysdate
         and upper(ba.complex_folder_name) = upper(:complex_folder_name)
 group by ba.custom_ba, ba.complex_ba,
         usr.user_name, ba.complex_folder_name,ba.custom_folder_name,
         doc.doc_name,
         acc.qs_doc_details,
         doc.doc_created_date
order by 1;