PHP und SAPRFC
Die PHP-Extension SAPRFC wurde ab 2001 von Eduard Koucky entwickelt und steht zurzeit in der Version 1.4.1 unter saprfc.sourceforge.net zum Download bereit. SAPRFC übernimmt quasi die Middl
eware-Aufgaben des SAP BC und ermöglicht PHP einen direkten Zugriff auf die SAP-Funktionsbausteine. Dies klingt interessant und funktioniert auch. Es gibt aber mindestens drei Probleme, die beim Einsatz von SAPRFC zu beachten sind:
- Die Entwicklung von SAPRFC ist/war eine One-man-show. Die version 1.4.1 ist von Ende 2005 und scheint aktuell nicht mehr weiterentwickelt zu werden. Im SAP Community Network gibt es einen Beitrag in dem darauf hingewiesen wird, dass Eduard Koucky für die Weiterentwicklung nicht mehr zur Verfügung steht.
- Die Sourcen müssen immer gegen die aktuelle PHP-Version kompiliert werden, ansonsten gibt PHP eine Warnung aus: „saprfc: Unable to initialize module“. Da hilft nur a) selber kompilieren oder b) warten – zumindest für die meisten Windows-User, bis die passende DLL auf Sourceforge.net zum Download bereitsteht. Die DLL für PHP 5.2.5 ist dort gar nicht zu finden und auf die DLL für PHP 5.2.6 mussten die Anwender einige Wochen warten.
- Für SAPRFC werden auch SAP-Sourcen benötigt: Für Linux das SAPSDK und unter Windows die librfc32.dll. Letztere ist aber auf jedem System verfügbar auf dem auch ein SAPGUI installiert ist. Man findet sie meist unter c:\windows\system32.
Natürlich steht dem auch ein entsprechender Vorteil gegenüber: man benötigt kein Drittsystem, für das ggf. Lizenzkosten zu zahlen sind, um PHP mit SAP zu verbinden, sondern PHP hat direkten Zugriff auf alle RFC-fähigen Funktionsbausteine. Wenn nun (z.B. statt des SAP BC) SAPRFC zum Einsatz kommen soll, sind zumindest die folgenden zwei Dinge zu beachten:
- Es gibt keine Zwischenschicht, die die SAP-Daten aufbereitet und transformiert. Somit gibt es auch kein XML zu verarbeiten, sondern SAPRFC liefert ein numerisches Array, das für jeden SAP-Datensatz eine PHP-stdClass enthält.
- Damit PHP mit SAP sprechen kann, wird im Skript/der Applikation ein SAP-User mit Passwort benötigt. Dies wird von den SAP-Admins u. U. gar nicht gerne gesehen und erfordert einen besonderen Schutz auf der PHP-Seite, damit keine Unbefugten Zugriff auf die Zugangsdaten bekommen.
Für das Kompilieren der Extension sei auf die Anleitung auf der SAPRFC-Homepage verweisen. Wer nun gespannt auf den ersten Beispielcode gewartet hat, wird hier nun leider enttäuscht sein. Es gibt einen sehr guten Artikel in der PHP|Architect vom Dezember 2004 dem nichts hinzuzufügen ist. Man kann damit recht schnell erste Erfolgserlebnisse erzielen. Der einzige Punkt ist, dass der Code noch in schicke PHP5-Klassen verpackt werden sollte – wie der Autor Jason Simmons auch selber anmerkt.
Links
SAPRFC Homepage
http://saprfc.sourceforge.net/
Integrating SAP with PHP – PHP|Architect 12-2004 – frei verfügbar bei sap.com
http://sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/a5d5b6f6-0301-0010-4fae-f3b91bcfd642
The SAP Developer’s Guide to PHP – Buch bei SAP Press von Craig Cmehil zu SAPRFC
http://www.sap-hefte.de/katalog/hefte/titel/gp/titelID-1150?GalileoSession=14173940A3szcCsB7UA
SAP Developer Network / SAP Community Network
https://www.sdn.sap.com/
Beiträge von Eduard Koucky im SAP Developer Network
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=pnUnWGO89iK+B4zJJe5hfQ==