SAP EP Integration in das WebLogic Portal mittels WSRP
In einem aktuellen Projekt sollten SAP HR (Self-Service) IViews - aus dem SAP Enterprise Portal (SAP EP) - mittels „Web Services for Remote Portlets“ (WSRP) [1] in das Oracle WebLogic Portal (WLP) eingebunden werden. Dieser Erfahrungsbericht beschreibt die aufgetretenen Probleme und warum schließlich nur eine Integration mittels IFrame möglich war. Des Weiteren wurde das Open-Source Portal Liferay eingesetzt, da der Oracle Support bei jedem Problem behauptete, dass SAP nicht standardkonform sei.
Probleme beim Oracle WebLogic Portal
- Schemadefinitionen innerhalb von wsrp_v1_types.xsd wollte das WLP von w3.org nachladen. In unserem Fall war ein Internetzugriff nur über einen Proxy-Server mittels NTLM-Authentifizierung möglich. Wir konnten dieses Problem mit einem Workaround (lokaler Web-Server mit modifizierter Hosts-Datei) zum Testen umgehen. Das Liferay-Portal zeigte diesen Fehler nicht.
- Das SAP Portal fordert beim WSRP Aufruf der Methode getServiceDescription User-Credentials – diese können in der WLP Admin Konsole nicht gesetzt werden, die Möglichkeit dies über die IDE zu machen war buggy. Beim Liferay-Portal war es ohne Probleme möglich, diese Werte in der Admin Konsole zu setzen. Hier die seitens SAP EP angeforderten User-Credentials:
- persistancy_mode_password
- producer_allocated_username
- producer_allocated_password
- Um die Komplexität der WSRP Kommunikation zu verringern, wollten wir SAML abstellen, dies war nicht möglich. Weder die Tipps des Oracle Forums noch die des Oracle Supports haben hier geholfen. Das Liferay-Portal funktioniert out-of-the-box ohne SAML.
Probleme beim SAP Portal
Mit Hilfe des Liferay-Portals konnten wir dann das SAP EP testen. Hierbei wurde dann jedoch schnell sichtbar, dass das SAP EP nicht standardkonform ist.
- Das SAP EP benutzt massiv IFrames innerhalb von IViews, um z.B. Informationen aus SAP HR darzustellen. Diese IViews waren in unserem Fall als Business Server Pages (BSP) implementiert. Das SAP Portal hat die IFrame Url (im an den Consumer zurückgelieferten Markup) gegen die des Liferay-Portals ausgetauscht. Dies ist bei normalen Urls valide, da diese wieder auf das Consumer-Portal zeigen müssen. Bei einem IFrame ist dies jedoch falsch.
- Der nächste Versuch mit einer einfachen Url IView scheiterte daran, dass das SAP EP einen neuen Tag in den an den Consumer zurückgelieferten Markup hinzugefügt hat. Dieses hat jedoch laut [2] dort nichts zu suchen.
Fazit
Die Integration mittels WSRP scheiterte. Bleibt man in der SAP oder Oracle Welt funktioniert alles reibungslos, jedoch wurde WSRP gerade wegen der Interoperabilität entwickelt. Der Support beider Hersteller beschuldigte den anderen, nicht standardkonform zu sein. Vielleicht funktioniert beim SAP EP der Weg über reine Java Portlets (und keine BSPs) besser, wie er vom SAP Support empfohlen wurde. Leider basieren alle unsere zu integrierenden IViews auf BSPs. Wir hätten alles neu schreiben müssen, deshalb war dies keine Lösung innerhalb unseres Projekts. Da die meisten IViews auf BSP basieren ist dies wahrscheinlich auch keine Option bei anderen Projekten. Letztlich blieb nur die Möglichkeit einer Integration per IFrames. Dies war nach ein paar Änderungen am SAP EP möglich, da dies selbst massiv IFrames benutzt.
Links
[1] WSRP
[2] wsrp_v1_types.xsd