15. Februar 2011

Oracle Information Rights Management - Reports mit BI Publisher

Eines der richtig coolen Security Lösungen von Oracle ist in der Tat Oracle Information Rights Management. Diese Lösung gruppiert Oracle mittlerweile in die Gruppe der Identity  Management Lösungen. Wer sich in diesem Bereich auskennt, der weiß, dass alle Identity Management Lösungen von Oracle mit verschiedenen vorgefertigten BI Publisher Reports ausgeliefert werden.

Leider ist das nicht so bei der Oracle Informations Rights Management Lösung. Daher habe ich einen BI Publisher Report implementiert, den man gegen das Oracle IRM Repository ablaufen lassen kann.

Was muss man hierfür tun?
  • Im BI Publisher wird die Datenquelle eingerichtet. Hierfür definiert man eine JDBC Datenquelle
  • Sobald die Datenquelle eingerichtet ist, kann man einen Report anlegen und die entsprechenden Daten aus der Datenbank selektieren. Ich habe mich wegen der Übersichtlichkeit entschieden, ein concatenated Statement zu definieren, das aus vier Einzel-Select besteht. Der BI Publisher fasst das Ergebnis wunderbar zusammen:
IRM_AUDIT-DATA: 
select ll.name CONTEXT_NAME,
 cje.item_code_value DOCUMENT,
 to_char(je.time,'MM-DD-YYYY HH24:MI:SS') ACTION_TIME,
 je.feature_id ACTION,
 je.ACCOUNT_NAME ACCOUNT_NAME,
 je.status ACTION_STATUS,
 je.URI DOCUMENT_URI,
 je.DESKTOP_VERSION IRM_DESKTOP_VERSION,
 je.OS OS,
 je.APPLICATION APPLICATION,
 je.CONTAINER CONTAINER,
 je.DEVICE_NAME DEVICE_NAME
 from context_journal_entry cje,
 journal_entry je,
 context_instance_labels cil,
 label ll
where cje.context_instance_id = cil.context_instance_id
 and cil.label_id = ll.label_id
 and cje.journal_entry_id = je.journal_entry_id
 and ( upper(cje.item_code_value) like nvl(upper(:DOCUMENT_NAME),'%')
 and upper(ll.name) like nvl(upper(:CONTEXT_NAME),'%')
 and upper(je.ACCOUNT_NAME) like nvl(upper(:USER_NAME),'%')
 and je.time >= nvl(:START_DATE, sysdate-2000)
 and je.time <= nvl(:END_DATE, sysdate+1)
 )
DOC-SUMMARY: select cje.item_code_value DOCUMENT,
 je.feature_id ACTION,
 ll.name CONTEXT_NAME,
 count(je.feature_id) Count_Action 
 from context_journal_entry cje,
 journal_entry je,
 context_instance_labels cil,
 label ll
where cje.journal_entry_id = je.journal_entry_id 
 and cje.context_instance_id = cil.context_instance_id
 and cil.label_id = ll.label_id
 and je.status = 'SUCCESS'
and ( upper(cje.item_code_value) like nvl(upper(:DOCUMENT_NAME),'%')
 and upper(ll.name) like nvl(upper(:CONTEXT_NAME),'%')
 and upper(je.ACCOUNT_NAME) like nvl(upper(:USER_NAME),'%')
 and je.time >= nvl(:START_DATE, sysdate-2000)
 and je.time <= nvl(:END_DATE, sysdate+1)
 )
group by cje.item_code_value, je.feature_id, ll.name
PARAMETERS: select nvl(to_char(:START_DATE,'dd-mm-yyyy'),'No Start Date') START_DATE, 
 nvl(to_char(:END_DATE,'dd-mm-yyyy'),'No End Date') END_DATE, 
 nvl(:USER_NAME,'All') USER_NAME, 
 nvl(:DOCUMENT_NAME,'All') DOCUMENT_NAME, 
 nvl(:CONTEXT_NAME,'All') CONTEXT_NAME
from dual
FAILED_DOC_SUMMARY:select cje.item_code_value DOCUMENT,
 je.feature_id ACTION,
 ll.name CONTEXT_NAME,
 count(je.feature_id) Count_Action 
 from journal_entry je,
 context_journal_entry cje,
 context_instance_labels cil,
 label ll
where je.journal_entry_id = cje.journal_entry_id
 and cje.context_instance_id = cil.context_instance_id
 and cil.label_id = ll.label_id
 and je.status = 'FAILURE'
 and ( upper(cje.item_code_value) like nvl(upper(:DOCUMENT_NAME),'%')
 and upper(ll.name) like nvl(upper(:CONTEXT_NAME),'%')
 and upper(je.ACCOUNT_NAME) like nvl(upper(:USER_NAME),'%')
 and je.time >= nvl(:START_DATE, sysdate-2000)
 and je.time <= nvl(:END_DATE, sysdate+1)
 )
group by cje.item_code_value, je.feature_id, ll.name
  • Im BI Publisher sieht der Editier-Modus wie nachfolgend aufgeführt aus
  •  Sobald das concatenated Select Statement eingerichtet ist, kann man mit dem BI Publisher den Report ausführen und erhält nur XML Daten, da wir noch kein Template definiert haben. 
  • Nun exportiert man die Daten in ein XML-File und nutzt diese Informationen, um z.B. mit Word ein Layout-Template zu definieren (Vorher BI Publisher Desktop installieren). Die Template Erstellung funktioniert ähnlich einem Serienbrief. (in der Version 11g kann man auch den Online Layout Builder nutzen). Ist das Layout definiert, so kann man die Layout Datei dem Report zuordnen und fertig ist der Report. 
  • Die Profis unter Euch können dann noch Parameter definieren, um so das Ergebnis im Report besser einschränken zu können.
Das Ergebnis meines Reports sieht dann wie folgt aus und ist automatisch in verschiedenen Ausgabeformate wie PDF, Word, Excel, HTML etc. generierbar:

Wer das komplette BI Publisher IRM Report Paket haben möchte, sendet mir einfach eine Email.

Keine Kommentare:

Kommentar veröffentlichen