<ROOT>
 <APPS_INITIALIZE_DATA>
  <USER_NAME>ENGINATICS</USER_NAME>
  <RESPONSIBILITY_KEY>SYSTEM_ADMINISTRATOR</RESPONSIBILITY_KEY>
  <APPLICATION_SHORT_NAME>SYSADMIN</APPLICATION_SHORT_NAME>
 </APPS_INITIALIZE_DATA>
<REPORTS>
<!-- loader xml for Enginatics Blitz Report: EIS View Dependencies -->
 <REPORTS_ROW>
  <GUID>5C6941B9A60979A1E0630100007F92F4</GUID><ENABLED>Y</ENABLED>
  <SQL_TEXT>select
x.application,
x.view_owner,
x.view_name,
x.reports,
x.active_reports,
x.runs,
x.via_synonym,
x.object_owner,
x.object_name,
x.object_type,
x.object_category,
xxen_util.yes(x.flexfield_only) flexfield_columns_only
from
(
select
y.*,
case
when y.object_owner=&apos;XXEIS&apos; then
  case
  when y.object_type=&apos;TABLE&apos; then &apos;XXEIS Table&apos;
  when y.object_type=&apos;VIEW&apos; then &apos;XXEIS View&apos;
  when y.object_name like &apos;XX%&apos; and y.object_name not like &apos;XXEIS%&apos; then &apos;Custom Code in XXEIS&apos;
  else &apos;EIS Code&apos;
  end
when y.object_owner=&apos;APPS&apos; then case when y.object_name like &apos;XX%&apos; or y.object_name like &apos;EIS%&apos; then &apos;APPS Custom&apos; else &apos;Standard&apos; end
when y.object_owner in (&apos;SYS&apos;,&apos;SYSTEM&apos;,&apos;PUBLIC&apos;) or y.object_owner in (select fou.oracle_username from fnd_oracle_userid fou, fnd_product_installations fpi where fou.oracle_id=fpi.oracle_id and fpi.application_id&lt;20000) then &apos;Standard&apos;
else &apos;Custom Schema&apos;
end object_category
from
(
select
era.application_name application,
z.view_id,
z.view_owner,
z.view_name,
z.reports,
z.active_reports,
z.runs,
min(z.via_synonym) via_synonym,
z.object_owner,
z.object_name,
max(nvl(do.object_type,z.referenced_type)) object_type,
case when count(z.flexfield_only)=count(*) then &apos;Y&apos; end flexfield_only
from
(
select
w.view_id,
w.application_id,
w.view_owner,
w.view_name,
w.reports,
w.active_reports,
w.runs,
decode(dd.referenced_type,&apos;SYNONYM&apos;,dd.referenced_owner||&apos;.&apos;||dd.referenced_name) via_synonym,
dd.referenced_type,
coalesce(ds3.table_owner,ds2.table_owner,ds1.table_owner,dd.referenced_owner) object_owner,
coalesce(ds3.table_name,ds2.table_name,ds1.table_name,dd.referenced_name) object_name,
case when dbms_lob.instr(w.code,lower(dd.referenced_name))&gt;0 and regexp_instr(w.code_outside_flex,&apos;[^a-z0-9_$#]&apos;||replace(lower(dd.referenced_name),&apos;$&apos;,&apos;\$&apos;)||&apos;[^a-z0-9_$#]&apos;)=0 then &apos;Y&apos; end flexfield_only
from
(
select /*+ no_merge */
w.*,
--removes the column blocks EIS generated between a start and an end flexfield marker of the same kind, then literals and comments
case when dbms_lob.instr(w.code,&apos;#start&apos;)&gt;0 then
regexp_replace(
regexp_replace(
regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(w.code,
&apos;descr#flexfield#(groupby)?start&apos;,chr(1)),&apos;descr#flexfield#(groupby)?end&apos;,chr(2)),
&apos;kff#(groupby)?start&apos;,chr(3)),&apos;kff#(groupby)?end&apos;,chr(4)),
&apos;(gl|bal)#accountff#(groupby)?start&apos;,chr(5)),&apos;(gl|bal)#accountff#(groupby)?end&apos;,chr(6)),
chr(1)||&apos;[^&apos;||chr(1)||&apos;-&apos;||chr(6)||&apos;]*&apos;||chr(2)||&apos;|&apos;||chr(3)||&apos;[^&apos;||chr(1)||&apos;-&apos;||chr(6)||&apos;]*&apos;||chr(4)||&apos;|&apos;||chr(5)||&apos;[^&apos;||chr(1)||&apos;-&apos;||chr(6)||&apos;]*&apos;||chr(6),&apos; &apos;),
&apos;&apos;&apos;[^&apos;&apos;]*&apos;&apos;|--[^&apos;||chr(10)||&apos;]*|/\*.*?\*/&apos;,&apos; &apos;,1,0,&apos;n&apos;)
end code_outside_flex
from
(
select /*+ no_merge */
w.*,
case when v.obj# is not null then &apos; &apos;||lower(xxen_util.long_to_clob(&apos;SYS.VIEW$&apos;,&apos;TEXT&apos;,v.rowid))||&apos; &apos; end code
from
(
select
erv.view_id,
erv.application_id,
do.owner view_owner,
do.object_name view_name,
do.object_type view_type,
do.object_id,
v.reports,
v.active_reports,
v.runs,
row_number() over (partition by erv.view_id order by decode(do.owner,erv.view_owner,1,&apos;APPS&apos;,2,3)) rnk
from
(
select
err.view_id,
count(*) reports,
count(erp.report_id) active_reports,
sum(erp.runs) runs
from
xxeis.eis_rs_reports err,
(
select
erp.report_id,
count(*) runs
from
xxeis.eis_rs_processes erp
where
2=2 and
erp.submission_source in (&apos;eXpress&apos;,&apos;XL Connect&apos;)
group by
erp.report_id
) erp
where
err.paste_view_sql is null and
err.report_id=erp.report_id(+)
group by
err.view_id
) v,
xxeis.eis_rs_views erv,
dba_objects do
where
v.view_id=erv.view_id and
nvl(erv.object_type,&apos;VIEW&apos;)&lt;&gt;&apos;SQL&apos; and
erv.view_name=do.object_name and
do.owner in (erv.view_owner,&apos;APPS&apos;,&apos;XXEIS&apos;) and
do.object_type in (&apos;VIEW&apos;,&apos;SYNONYM&apos;)
) w,
sys.view$ v
where
w.rnk=1 and
w.object_id=v.obj#(+)
) w
) w,
dba_dependencies dd,
dba_synonyms ds1,
dba_synonyms ds2,
dba_synonyms ds3
where
w.view_owner=dd.owner and
w.view_name=dd.name and
w.view_type=dd.type and
dd.referenced_type&lt;&gt;&apos;NON-EXISTENT&apos; and
dd.referenced_owner=ds1.owner(+) and
dd.referenced_name=ds1.synonym_name(+) and
ds1.table_owner=ds2.owner(+) and
ds1.table_name=ds2.synonym_name(+) and
ds2.table_owner=ds3.owner(+) and
ds2.table_name=ds3.synonym_name(+)
) z,
xxeis.eis_rs_applications era,
dba_objects do
where
z.application_id=era.application_id(+) and
z.object_owner=do.owner(+) and
z.object_name=do.object_name(+) and
do.namespace(+)=1 and
do.subobject_name(+) is null
group by
era.application_name,
z.view_id,
z.view_owner,
z.view_name,
z.reports,
z.active_reports,
z.runs,
z.object_owner,
z.object_name
) y
) x
where
1=1
order by
x.application,
x.view_name,
x.object_owner,
x.object_name</SQL_TEXT>
  <VERSION_COMMENTS>New report: database objects referenced by the EIS report views with synonyms resolved, object category, flexfield columns only flag and report usage per view.</VERSION_COMMENTS>
  <REPORT_TRANSLATIONS>
   <REPORT_TRANSLATIONS_ROW>
    <LANGUAGE>US</LANGUAGE>
    <REPORT_NAME>EIS View Dependencies</REPORT_NAME>
    <DESCRIPTION>Database objects referenced by the EIS report views, one row per view and referenced object (direct dependencies from dba_dependencies), with synonyms resolved to the object they point to. It shows which XXEIS objects the EIS reports still need before the XXEIS schema can be dropped.

Only views that a report runs from are listed. Reports running from pasted SQL or from a SQL-type view have no database view and are not covered, although their SQL can reference XXEIS objects as well.

Reports counts the reports running from the view, Active Reports those executed within Executed within Days and Runs their executions from eXpress and XL Connect (email distributions are not counted). EIS purges its run history, so a view without runs may still have been used before the earliest retained run.

Flexfield Columns Only marks objects that the view references only in the flexfield columns EIS generated into it between its descr#flexfield, kff and gl#accountff markers, typically EIS_RS_DFF and EIS_RS_FIN_UTILITY. The import into Blitz Report drops these columns and shows descriptive flexfields through its own DFF columns, so the migrated reports do not need these objects. The import also replaces the EIS org access, GL security and lookup functions with standard code; EIS Reports with Show Migration Analysis lists the XXEIS objects a migrated report still uses.

APPS objects count as APPS Custom only when named XX or EIS, so customer objects in APPS with other prefixes show as Standard.

The Objects template totals the counts per referenced object.</DESCRIPTION>
   </REPORT_TRANSLATIONS_ROW>
  </REPORT_TRANSLATIONS>
  <CATEGORY_ASSIGNMENTS>
   <CATEGORY_ASSIGNMENTS_ROW>
    <CATEGORY>EIS</CATEGORY>
   </CATEGORY_ASSIGNMENTS_ROW>
  </CATEGORY_ASSIGNMENTS>
  <ANCHORS>
   <ANCHORS_ROW>
    <ANCHOR>1=1</ANCHOR>
   </ANCHORS_ROW>
   <ANCHORS_ROW>
    <ANCHOR>2=2</ANCHOR>
   </ANCHORS_ROW>
  </ANCHORS>
  <PARAMETERS>
   <PARAMETERS_ROW>
    <SORT_ORDER>1</SORT_ORDER>
    <DISPLAY_SEQUENCE>10</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.application=:application</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV custom</PARAMETER_TYPE_DSP>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
era.application_name value,
era.description
from
xxeis.eis_rs_applications era
order by
era.application_name</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Application</PARAMETER_NAME>
      <DESCRIPTION>EIS application the view is registered in.</DESCRIPTION>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>2</SORT_ORDER>
    <DISPLAY_SEQUENCE>20</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.view_id in (select err.view_id from xxeis.eis_rs_reports err where err.report_name=:report_name)</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV custom</PARAMETER_TYPE_DSP>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
err.report_name value,
err.description
from
xxeis.eis_rs_reports err
order by
err.report_name</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Report Name</PARAMETER_NAME>
      <DESCRIPTION>Lists the view the report is defined on.</DESCRIPTION>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>3</SORT_ORDER>
    <DISPLAY_SEQUENCE>30</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.view_name=:view_name</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV custom</PARAMETER_TYPE_DSP>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select distinct
erv.view_name value,
erv.user_view_name description
from
xxeis.eis_rs_views erv
where
nvl(erv.object_type,&apos;VIEW&apos;)&lt;&gt;&apos;SQL&apos; and
erv.view_id in (select err.view_id from xxeis.eis_rs_reports err where err.paste_view_sql is null)
order by
erv.view_name</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>View Name</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>4</SORT_ORDER>
    <DISPLAY_SEQUENCE>40</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.object_category=:object_category</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV custom</PARAMETER_TYPE_DSP>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select &apos;EIS Code&apos; value, &apos;EIS package, function or type in schema XXEIS&apos; description from dual union all
select &apos;Custom Code in XXEIS&apos;, &apos;Code in schema XXEIS named XX, but not XXEIS&apos; from dual union all
select &apos;XXEIS Table&apos;, &apos;Table in schema XXEIS&apos; from dual union all
select &apos;XXEIS View&apos;, &apos;View in schema XXEIS&apos; from dual union all
select &apos;APPS Custom&apos;, &apos;APPS object named XX or EIS&apos; from dual union all
select &apos;Custom Schema&apos;, &apos;Object outside APPS, XXEIS and the Oracle EBS product schemas&apos; from dual union all
select &apos;Standard&apos;, &apos;Object in an Oracle EBS product schema or SYS, or any other APPS object&apos; from dual</LOV_QUERY_DSP>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Object Category</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>5</SORT_ORDER>
    <DISPLAY_SEQUENCE>50</DISPLAY_SEQUENCE>
    <ANCHOR>2=2</ANCHOR>
    <SQL_TEXT>erp.start_time&gt;=sysdate-:executed_within_days</SQL_TEXT>
    <PARAMETER_TYPE_DSP>Number</PARAMETER_TYPE_DSP>
    <DEFAULT_VALUE>365</DEFAULT_VALUE>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Executed within Days</PARAMETER_NAME>
      <DESCRIPTION>Usage window in days before today, by run start. Blank counts the whole retained history.</DESCRIPTION>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>6</SORT_ORDER>
    <DISPLAY_SEQUENCE>60</DISPLAY_SEQUENCE>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.active_reports&gt;0</SQL_TEXT>
    <PARAMETER_TYPE_DSP>LOV Oracle</PARAMETER_TYPE_DSP>
    <LOV_NAME>Yes_No</LOV_NAME>
    <VALIDATE_FROM_LIST_DSP>Y</VALIDATE_FROM_LIST_DSP>
    <LOV_QUERY_DSP>select
lookup_code id,
meaning value,
null description
from
fnd_lookups
where fnd_lookups.lookup_type=&apos;YES_NO&apos;
order by value,description</LOV_QUERY_DSP>
    <MATCHING_VALUE>Y</MATCHING_VALUE>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Executed</PARAMETER_NAME>
      <DESCRIPTION>Yes lists the views with a report run within the usage window, No the others.</DESCRIPTION>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
   <PARAMETERS_ROW>
    <SORT_ORDER>7</SORT_ORDER>
    <ANCHOR>1=1</ANCHOR>
    <SQL_TEXT>x.active_reports=0</SQL_TEXT>
    <MATCHING_VALUE>N</MATCHING_VALUE>
    <PARAMETER_TRANSLATIONS>
     <PARAMETER_TRANSLATIONS_ROW>
      <LANGUAGE>US</LANGUAGE>
      <PARAMETER_NAME>Executed</PARAMETER_NAME>
     </PARAMETER_TRANSLATIONS_ROW>
    </PARAMETER_TRANSLATIONS>
   </PARAMETERS_ROW>
  </PARAMETERS>
  <TEMPLATES>
  </TEMPLATES>
  <DEFAULT_TEMPLATES>
  </DEFAULT_TEMPLATES>
  <UPLOAD_COLUMNS>
  </UPLOAD_COLUMNS>
  <UPLOAD_PARAMETERS>
  </UPLOAD_PARAMETERS>
  <UPLOAD_SQLS>
  </UPLOAD_SQLS>
 </REPORTS_ROW>
</REPORTS>
</ROOT>
