Oracle Fusion Middleware Blog

Deutsche Informationen rund um Oracle Fusion Middleware

Archive for the ‘Development’ Category

Performanceanalyse von WebCenter Portal

leave a comment »

Wer aus alten Zeiten das Oracle Portal noch gut kennt, der hat vielleicht noch den URL Parameter _debug (http://docs.oracle.com/cd/B14099_19/portal.1014/b19305/cg_app_c.htm#i643076) in Erinnerung und schätzen gelernt. Hierüber bekam man angezeigt, welche Zeit für welches Portalseitenelement bzw. für welche Phase des Renderns benötigt wurde. So konnte man mögliche Performance Bottlenecks des Portals genauer lokalisieren.

Mit dem WebCenter Portal 11.1.1.8 gibt es nun auch eine Möglichkeit, ein solches Performance Debugging einzuschalten und die einzelnen Services auf der Portalseite zu messen.

image

Im WebCenter Portal Admin Guide beschreibt das Kapitel G4: Troubleshooting Oracle WebCenter Portal Performance Issues das Vorgehen zur Performanceanalyse.

Zuerst muss der Performance Debug Modus auf dem Portal per WLST Kommando, wie in der Doku beschrieben, eingeschaltet werden. Dazu werden zuerst Portalkonfigurationen aus dem MDS gelesen und in eine webcenter-config.xml ins Filesystem extrahiert. Dann schaltet man in dieser Datei den Debug Modus ein und importiert sie schließlich über WLST wieder zurück ins MDS. Ein Neustart des Portals ist nicht notwendig.

Die Anzeige des Timings schaltet man dann auf der Portalseiten URL mit dem Parameter &perfDebug=on ein bzw. mit &perfDebug=off wieder aus. Es werden nun die einzelnen Taskflow Renderingzeiten ermittelt und farblich gekennzeichnet.

Farbe Zeit
grün <100ms
grün/gelb 100 – 500ms
gelb 500ms –1s
orange 1-3s
rot >3s

 

<DM>

Advertisements

Written by fmtechteam

24/10/2013 at 15:40

Custom Dashboards in Oracle BPM Process Spaces 11.1.1.6

leave a comment »

Auch in der Erweiterung der BPM Suite für Web Center Spaces lassen sich spezifische Dashboards erzeugen.

Solche Dashboards können direkt in die vordefinierte BPM Process Space Applikation integriert werden. Analog zur BPM Workspace Application können dazu spezifische Pages definiert werden, um die Dashboards zu visualisieren.

Details dazu sind im Oracle Fusion Middleware User’s Guide for Oracle Business Process Management, Kap. 15 Creating Custom Dashboards in Process Spaces beschrieben.

Damit neu erzeugte oder bestehende Seiten mit solchen Dashboards ergänzt werden können, mmüssen für den jeweilige Nutzer die Funktionen „Create or Edit page“ als Menüpunkte unter der Rubrik „Spaces Actions“ verfügbar sein. Diese ist standardmäßig der spezifischen Rolle “Moderator” aus WebCenter Spaces vorbehalten.

Auf der zu erstellenden oder zu ändernden Seite ist dann über den Resource Catalog der spezifische Inhalt hinzuzufügen. Dazu ist aus dem Process Workspace Resources Folder das Element Process Dashboard zu wählen (s. Abbildung 1).

clip_image002

Abbildung 1: Erzeugung eines Dashbaord Resource

Danach kann dann – wie in der BPM Workspace Application auch – ein neues Widget mit einer passenden Data Source erzeugt werden.

Die Sichtbarkeit dieser Dashboards wird nun in Verbindung mit der BPM Workspace Applikation geregelt. Hierbei reicht aber die Process Owner Rolle alleine nicht aus, da die oben ausgewählte Resource Catalog Komponente weitere WebCenter Spaces konforme Berechtigungen braucht.

Bei der gleichzeitigen Verwendung von Dashboards in diesen Applikationen kann prinzipiell beiderseitig vorgegangen werden. Das heißt, es kann ein Dashboard zuerst in der BPM Workspace Application erzeugt werden und danach in BPM Process Spaces über die Suche nach Widget-Ids wiederverwendet werden oder umgekehrt.

Bei der Sichtbarkeit von Dashboards in BPM Process Spaces ist jedoch das Zusammen­spiel von Rollendeklarationen zwischen der BPM Workspace Application und BPM Process Spaces von entscheidender Bedeutung.

Dies hat seine Ursache darin, dass die jeweils definierten Rollenkonzepte in den einzelnen Applikationen (noch) nicht miteinander kompatibel sind und man daher besondere Sorgfalt bei der Übertragung von Berechtigungen walten lassen muß. So lassen sich z. B. bei der Definition von Zugriffsrechten auf einzelne Seiten in einem Workspace die Prozessrollen aus der BPM Workspace Application nicht nutzen.

Damit die Sichtbarkeit der Dahboards in beiden Applikation sichergestellt werden kann, ist eine bestimmte Vorgehensweise notwendig, wobei die Reihenfolge, ob die relevanten Aktivitäten zuerst in der BPM Workspace Application oder zuerst in BPM Process Spaces durchgeführt werden, nicht entscheidend ist, wohl aber die Vollständigkeit der beschriebenen Aktivitäten.

Im folgenden wird eine nutzbare Vorgehensweise beschrieben.

Erzeugung einer eigenständigen „Dashboard-Rolle“ in der BPM Workspace Application

Über die Administrationskonsole der BPM Workspace Application ist eine spezifische „Dashboard-Rolle“ außerhalb der normalen Prozessrollen zu definieren. Dieser Rolle ist neben einzelnen Nutzern/Gruppen, die später die verschiedenen Dashboards sehen sollen, in jedem Falle die LDAP-Gruppe Administrators zuzuordnen.

Im vorliegenden Beispiel aus der Abbildung 2 ist hier eine Rolle „ProcessOwner“ vom Administrator weblogic deklariert worden.

clip_image004

Abbildung 2: Erzeugung einer Dashboard Rolle in der Workspace Application

Erteilung einer Zugriffsberechtigung für eine Seite in der BPM Workspace Application

Bei der Erstellung von Custom Dashboards in der BPM Workspace Application ist nun darauf zu achten, dass diese Rolle unter dem Menüpunkt „Add Access Properties“ ausgewählt wird, was in der folgenden Abbildung 3 dargestellt ist.

clip_image006

Abbildung 3. Zuweisung der Dashboard Rolle in den Access Properties

Danach können die Dashboards mit entsprechenden Data Sources wie gewohnt erzeugt werden, wozu für dieses Beispiel die KPI-Definitionen aus dem Prozess SalesQuoteDemo sowie die Nutzer aus der Demo-Community verwendet werden.

Mit obigen Festlegungen wird der Nutzer jstein das erzeugte Dashboard sofort aufrufen können, da er für den Process SalesQuoteDemo die ProcessOwner Rolle innehat (s. Abbildung 4). Der Nutzer jlondon wird dieses Dahboard nicht sehen, weil er dieser Prozessrolle nicht zugeordnet wurde.

clip_image008

Abbildung 4: Dashboard zum Prozess SalesQuoteDemo

Erzeugung einer WebCenter Spaces Rolle

In der Applikation BPM Process Spaces ist nun für den WebCenter Workspace eine Workspace Rolle gleichen Namens wie obige Dashboard-Rolle anzulegen, deren Berechtigungsumfang in jedem Falle den Punkt „View Content and Pages“ enthalten muß (Auswahl des Role Template: Viewer). Dies muß in der Regel auch über einen Administrator-Account (weblogic) durchgeführt werden, da dieser die Moderatoren-Rolle innehat.

Dies zeigt die folgende Abbildung 5.

clip_image010

Abbildung 5: Erzeugung einer WebCenter Workspace Rolle

Nun kann eine spezifische Seite in der Applikation BPM Process Spaces erzeugt werden, um die Dashboards darzustellen.

Erteilung von Zugriffsberechtigungen auf Spaces Seite in BPM Process Spaces

Als letzter Punkt ist nun eine Zugriffberechtigung auf diese spezifische Dashboard-Seite des Workspace festzulegen.

Dieses kann beispielsweise über die Settings für den Workspace durchgeführt werden, wo der Menüpunkt „Set Page Access“ auszuwählen ist und wie es in der Abbildung 6 dargestellt ist.

clip_image012

Abbildung 6: Festlegung von Zugriffsrechten auf eine Workspace Seite

Unter der Rubrik „Use Custom Acess Settings“ kann nun der Menüpunkt „Add Access“ ausgewählt werden, um den Zugriff der soeben deklarierten Workspace Rolle auf die Workspace Seite „Custom Dashboards“ zu ermöglichen. Dieses zeigen die Abbildungen 7 und 8.

clip_image014

Abbildung 7: Deklaration von Custom Access Settings

clip_image016

clip_image018

Abbildung 8: Festlegung von Zugriffsrechten für Dashboard Rolle

Erzeugung des Dashboards in BPM Process Spaces

Danach kann dann das zuvor in der Applikation BPM Workspace Application erstellte Widget wiederverwendet werden, um das Dashboard in BPM Process Spaces darzustellen, wie in der Abbildung 9 gezeigt.

clip_image020

Abbildung 9: Auswahl eines Widgets in BPM Process Spaces

Im Endergebnis sieht beispielswesie der Nutzer jstein nun das Dashboard in der Applikation BPM Process Spaces wie in der Abbildung 10 dargestellt.

clip_image022

Abbildung 10: Dashboard dargestellt in BPM Process Spaces

<Gastautor Jörg Liedtke>

Jörg Liedtke ist Consultant bei der ORACLE Deutschland B.V. & Co KG in Düsseldorf mit Aufgabenschwerpunkt SOA/BPM

Written by fmtechteam

23/07/2012 at 22:58

Veröffentlicht in ADF, BPM, Development, SOA, WebCenter, Webcenter Spaces

Positionierung von Pop-Ups

leave a comment »

Hier eine Übersicht über die Positionierung von Popus in der <af:showPopupBehaviour> Komponente,
Property=Align

afterEnd
image
afterStart
image
beforeEnd
image
beforeStart
image
endAfter
image
endBefore
image
startAfter
image
startBefore
image

<DM>

Written by fmtechteam

30/04/2012 at 11:42

WebCenter Performance Tuning

leave a comment »

Das Oracle A-Team, eine Gruppe von Experten rund um Softwarearchitekturen, hat diverse Hinweise zum Performance Tuning für WebCenter Anwendungen in einem Blog veröffentlicht. Diese sind sehr sehenswert.

Die meisten dieser Hinweise beziehen sich auch auf reine ADF Anwendungen.

<DM>

Written by fmtechteam

18/04/2012 at 13:51

Mehrsprachige Seitennavigation in WebCenter Portal Framework Anwendungen

leave a comment »

Eine Mehrsprachigkeit wird auch in WebCenter Anwendungen grundsätzlich über Resource Bundles (im Folgenden mit RB abgekürzt) erreicht. Immer dann, wenn der Entwickler auf Code- oder Propertiesebene unterwegs ist, kann er in den meisten Fällen die jeweiligen Key-Value Pairs aus dem RB adressieren. Wie man eine Anwendung mit einem RB versieht, kann man der ADF Dokumentation bzw. entsprechenden Tutorials oder Blogs entnehmen. Das soll also nicht Gegenstand dieses Blogeintrages sein. Die Behandlung von Mehrsprachigkeit wird dann schwieriger, wenn in der Anwendung systemseitig, also durch die Software oder durch das Framework mitgebracht, Weboberflächen eingebunden oder bestimme UI Elemente gekapselt sind, auf die der Entwickler keinen oder nur indirekten Zugriff hat. In einer WebCenter Portal Framework Anwendung sind dies bspw. der Page Service und die Administrationsoberfläche. Die Adminoberfläche ist Bestandteil der WebCenter Software und demnach inhaltlich fixiert. Diese UI ist bereits in >20 Sprachen übersetzt worden (siehe dazu WebCenter Dokumentation). Das Hauptaugenmerk möchte ich auf den Pageservice richten, der einerseits ein Feature der WebCenter Software ist, andererseits aber – im Gegensatz zur Adminoberfläche – vom Entwickler oder Anwender als Quasi-Entwicklungsbaustein verwendet wird. Nur zur Erinnerung, der Pageservice ist die Funktionalität von WebCenter, die einer Webanwendung eine Seitenstruktur (ähnlich einer Website) mitgibt und auch zur Laufzeit ADF Seiten erstellen lässt. Jede Seite erhält einen Namen, der an vielen Stellen der Webanwendung auftauchen kann – sei es als Pagelabel, Navigationslink, oder Breadcrumb. Demnach sollte eine Pagestruktur auch mehrsprachig gestaltet sein, um die o.g. Elemente auch in der jeweiligen Sprache anzeigen zu können.

image

image

Die Bilder sind einer WebCenter Tippspielanwendung zur Europameisterschaft 2012 entnommen, die hier als Beispiel dienen soll. Man sieht hier hier die Navigationsleiste mit den jeweiligen Seitenlinks auf englisch und deutsch, darunter den Seitennamen als Orientierungshilfe. Diese Angaben müssen natürlich übersetzt werden. Unter http://www.youtube.com/watch?v=ha6FzOkVc24 gibt es von Bob Frazer aus dem Product Management eine Beschreibung, wie er die Navigation mehrsprachig gestalten würde. Zusammengefasst  wird mit seinem Lösungsansatz das Navigationsmodell (siehe dazu Webcenter Dokumentation) über ein RB übersetzt. Der Nachteil dieser Methode liegt darin, dass das Navigationsmodell von der Definition der Page Hierarchy (pages.xml) entkoppelt wird. Das heißt konkret, dass es in der default-navigation.xml keinen Verweis mehr auf die Pagehierarchy gibt, sondern an dieser Stelle die Seiten direkt referenziert werden. Es müssen also alle Seiten hier nocheinmal eingetragen werden, obwohl sie in der pages.xml schon definiert wurden. Eigentlich ist die pages.xml. der “Sinlge point of truth” in Sachen Sitestruktur und die Navigation sollte sich danach richten. Dieser Lösungsansatz wird dann in der Handhabung immer komplizierter, wenn z.B. zur Laufzeit neue Portalseiten über den Page Service erstellt werden. Diese müssten nämlich dann auch noch redundant im Navigationsmodell eingetragen werden, um darauf zugreifen zukönnen.

image

Das obige Bild zeigt den Normalfall, bei dem im Navigationmodell auf die Pagehierarchy verwiesen wird. Das sollte so bleiben, damit weitere Seiten, die zur Laufzeit hinzugefügt werden, auch automatisch im Navigationsbaum enthalten sind. Also sollte die Übersetzung der Seiten in der pages.xml ansetzen. Dort wird neben der Page ID auch der Seitentitel angegeben, der in der Navigation dargestellt werden soll.

image

Das Problem hier ist aber, dass man keine RB Keys im Titel eintragen kann. Das heisst, man kann hier nicht direkt eine Mehrsprachigkeit einbauen, wie zum Beispiel im Navigationsmodell lt. o.g. Lösungsansatz. Also muss man das auf anderem Weg erreichen. Hier die Lösung:

Schritt 1: RB in der WebCenter App aktivieren, meinetwegen wie im o.g. Lösungsansatz bereits gezeigt

Schritt 2: Definition der Page Hierarchy, wie gewünscht, im Feld ‘Title’ jedoch den RB Key verwenden, wie hier gezeigt.

image

Schritt 3: Eintragen der Keys in die Portal RB, wie hier gezeigt

image

Schritt 4: Verwenden der RB Keys im Page Template an den notwendigen Stellen, wie hier am Beispiel Navigationslink gezeigt

image

Das ist alles. Somit behält man die pages.xml als besagten ‘Single point of truth’ und hat gleichzeitig alle nachfolgenden Ergänzungen der Seitenstruktur zur Laufzeit in die Navigation aufgenommen. Die Frage, die sich hier zwangsläufig anschließt, ist, wie man RB zur Laufzeit ergänzen kann im Falle auch neue Seiten zur Laufzeit hinzugefügt werden und man deren Titel selbstverständlich auch wieder übersetzen muss. Das wird in einem der folgenden WebCenter Blogeinträge beschrieben.

<DM>

Written by fmtechteam

17/04/2012 at 13:02

Veröffentlicht in ADF, Detlef Müller, Development, WebCenter

Webcenter Spaces Customizing – Korrektur der fehlerhaften Darstellung des Site Template Beispiels „PortalCentricTemplates“ im JDeveloper

leave a comment »

Man kann WebCenter Spaces in die gewünschte Form bringen oder funktional erweitern bzw anpassen. Dazu gibt es ein Whitepaper als Anleitung (“Extending WebCenter Spaces”, siehe http://www.oracle.com/technetwork/middleware/webcenter/white-papers-088385.html) inklusive einer dazugehörigen JDeveloper Applikation als Grundgerüst. Will man nun ein eigenes Seitenlayout erstellen, muss man ein “Custom Site Template” entwickeln, welches im Prinzip ein ADF JSF Template ist mit entsprechenden Facettenreferenzen, die von Webcenter Spaces zur Laufzeit gefüllt werden. Man öffnet also im JDeveloper das entsprechende Projekt “CustomSiteTemplate” und schaut sich das darin enthaltene Beispiel (Web Content –> custom –> siteTemplate –> PortalCentricSitetemplate.jspx) einmal an, um die Vorgehensweise zu verstehen und ein eigenes Template laut Anleitung zu erstellen. Doch öffnet man das Beispiel Template, so sieht man im Visual Editor folgendes:

CustomTemplate1

Diese Darstellung ist mitnichten ein Designmodus und zeigt an, dass hier Bibliotheken fehlen oder falsche Referenzen vorliegen. Jedenfalls sieht dies nicht gesund aus und verursacht bei unbedarften Entwicklern oder Anfängern erste Verunsicherungen.

Um der Ursache auf den Grund zu gehen, aktiviert man die Darstellung der Logs des visuellen Editors im Message Fenster. Gehen Sie dazu im JDeveloper Hauptmenü auf Tools –> Preferences –> JSP and HTML Visual Editor. Aktivieren Sie das Häckchen bei “Show Design Time Messages in Log”)

CustomTemplate2

Starten Sie den JDeveloper neu.

Nachdem die JSF im Visual Editor geladen ist, müsste im Message Fenster folgende Meldung erscheinen:

WARNING: No RenderingContext available
WARNING: A problem was encountered executing the page.  Using fallback rendering.
java.lang.NullPointerException
    at oracle.adfinternal.view.faces.context.RichPhaseListener.afterPhase (RichPhaseListener.java:348)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:364)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

Nun die Lösung. In der web.xml dieses Projektes muss ein Filter Mapping korrigiert werden. Öffnen Sie die Datei und ersetzen Sie das Filtermapping für Trinidad. Kommentieren Sie die Zeilen 66 bis 77 aus

CustomTemplate4

und fügen Sie darunter folgenden Block ein.

<filter-mapping>
  <filter-name>trinidad</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>

Speichern Sie die web.xml und führen Sie im Visual Editor der JSP ein Full Refresh (Ctrl. + F10) durch. Nun müsste der Design Modus sauber ausgeführt werden und im Message Fenster dürfte keine neue Meldung mehr erscheinen. Das Template sieht im Visual Editor nun folgendermassen aus:

CustomTemplate5

Lassen Sie sich durch die vereinzelt nicht aufgelösten Tags nicht irritieren. Die entsprechenden Tags Libs sind zur Laufzeit verfügbar. Sie können jetzt Ihr eigenes Template wie ein herkömmliches ADF JSF Template visuell designen.

<DM>

Written by fmtechteam

19/08/2010 at 13:43