Affiliate

19. September 2012

OBIEE Analyse per iFrame integrieren

Gewünscht war es eine OBIEE Analyse aus einem Fremdportal heraus anzuzeigen. Auf dem Weg zur Lösung sind wir nach und nach zu den folgenden Teilen gekommen.

Per GoURL kann man Analysen mittels einer URL aufrufen. Der Aufbau einer solchen URL in Kurzform:

  • Beginnt immer mit "http://server/analytics/saw.dll?GO"
  • Nun kommen die Angaben für das Login an der BI-Suite mit NQUSER und NQPASSWORD. Da steht dann also alles im Klartext! Ergo benutzt man hier besser einen gesonderten User mit eingeschränkten Rechten allein auf die erlaubte Analyse.
  • Dann folgt mit Path die Angabe wo die gewünschte Analyse im Presentation Server gespeichert ist und der Name der Analyse. Aufpassen, bei deutscher Spracheinstellung verwirrt es ein wenig da der Path /shared/ enthalten kann, was in der 'deutschen' Oberfläche aber als 'Gemeinsamer Ordner' angezeigt wird.
  • Mit 'ViewName=compoundView!1' bedeutet die angeforderte Sicht soll im Portal angezeigt werden. Den ViewName findet man im Answers beim 'Advance Tab' im dort angezeigten XML-Code.
  • Die 'Options=drf' bedeuten, dass in der Analyse unter der Ausgabe Links eingefügt werden sollen für: d – download to Excel, r – refresh results, f – printer friendly.
  • 'Action=Navigate' sagt dem Go URL Kommando, dass wir in der Analyse navigieren wollen.
  • Und so weiter und so fort, je nach Anwendungsfall könne auch Parameter übergeben werden und weiter Einstellungen in der GoURL verwendet werden. Schaut einfach mal in die Dokumentation dazu.

Diese GoURL kann dann in ein kleines Javascript eingebaut werden:

<HTML>
<head>
</head>

<BODY>
<iframe src="http://'server name':7001/analytics/saw.dll?GO&NQUSER='login user'&NQPASSWORD='password'&Path=/shared/.../'report name'&ViewName=compoundView!1&Options=drf&Action=Navigate&" width="100%"height="100%" >
</iframe>
</BODY>
</HTML>

Dieses Script wird auf dem Server des Fremdportals abgespeichert und kann in dem Portal per Aufruf-Link dann ausgeführt werden. Das Javascript wird so dann ausgeführt, meldet sich über die GoURL bei der BI-Suite an und startet die gewünschte Analyse. Das Ergebnis dieser Analyse erscheint dann in einem Frame.

Damit die BI-Suite die Analyse in einem iFrame anzeigt sind diese Anpassungen auf dem Server vorzunehmen:
1. In der Datei "instanceconfig.xml"
([OBIEE_HOME]\instances\instance1\config\OracleBIPresentationServicesComponent\coreapplication_obips1\) ist der folgende Eintrag im zu ergänzen. Erlaubte Werte sind 'allow', 'prohibit' und 'sameDomainOnly'.
<Security>
    <InIFrameRenderingMode>allow</InIFrameRenderingMode>
    <!--This Configuration setting is managed by Oracle Business Intelligence Enterprise Manager-->
    <ClientSessionExpireMinutes>210</ClientSessionExpireMinutes>
</Security>

2. ist in der Datei "web.xml" ([OBIEE_HOME]\oracleBI1\bifoundation\web\app\WEB-INF\) noch diese Ergänzung vorzunehmen. Der Wert 'never' bedeutet hier, dass der BI-Server niemals den Aufbau in einem iFrame blockieren soll. Alternativ kann hier auch der Wert 'differentDomain' eingetragen werden und damit den Aufbau in einem iFrame nur innerhalb der selben Domain erlauben.

<servlet-mapping>
      <servlet-name>RelatedContent</servlet-name>
      <url-pattern>/RelatedContent</url-pattern>
</servlet-mapping>

<context-param>
   <param-name>oracle.adf.view.rich.security.FRAME_BUSTING</param-name>
   <param-value>never</param-value>
</context-param>

<login-config>
    <auth-method>CLIENT-CERT</auth-method>
</login-config>

3. Alle BI-Komponenten sind, über den Enterprise Manager oder die Kommandozeile, neu zu starten.

Quellen:
zum Thema GoURL:
OBIEE - The Go URL to manage Answers
OBIEE Go URL Command to access Reports and Dashboards from External Portals or Applications
About the Oracle BI Presentation Services GO URL in der Oracle Dokumentation

zu Javascript:
Frame Aufruf per Javascript

zur iFrame Ausgabe:
OBIEE 11g: "OBIEE content cannot be displayed in an IFrame"
OBIEE content can not be displayed in the iframe [ID 1336401.1] aus MyOracle Support

Keine Kommentare:

Anzeige