Jak zainstalować SAPRFC?

23 grudnia, 2010 (11:43) | sap | By: konrad

Wbrew pozorom „SAPRFC” to nie jest to samo, co „SAP RFCSDK”.

Jak możemy przeczytać na stronie projektu:

SAPRFC is the extension module for PHP4 and PHP5 that allow call ABAP functions in an SAP R/3 system from PHP scripts. On other side it’s also possible write RFC server program in PHP and call PHP functions from ABAP.

Jest to rozszerzenie napisane przez programistów niezależnych od samego SAPa i służące jako interfejs pomiędzy systemem SAP R/3 a programami pisanymi w PHP4/5.

SAP RFCSDK natomiast, to produkt napisany przez załogę SAPa i umożliwiający:

The RFC Library offers an interface to a SAP System. The RFC Library is the most commonly used and installed component of existing SAP Software. This interface provides the opportunity to call any RFC Function in a SAP System from an external application. Moreover, the RFC Library offers the possibility to write a RFC Server Program, which is accessible from any SAP System or external application. Most SAP Connectors use the RFC Library as communication platform to SAP Systems.

Żeby nie było zbyt łatwo, SAPRFC korzysta z SAP RFCSDK :-)

Ponieważ moi koledzy zajmujący się SAPem postanowili stworzyć nowy portal (który pewnie będzie służył jakiemuś wyższemu celowi) używając PHP, „zaszła potrzeba” instalacji interfejsu właśnie go PHPa.

Do dzieła…

Po pierwsze, musimy pobrać pakiet z wersją instalacyjną programu. W chwili obecnej jest to wersja 1.4.1 i (patrząc na datę wydania) nie sądzę, aby to się miało szybko – jeżeli w ogóle – zmienić.
[kbechler@ticket saprfc]$ wget "http://sourceforge.net/projects/saprfc/files/saprfc/1.4.1/saprfc-1.4.1.All.zip/download"
--2010-12-23 10:21:27-- http://sourceforge.net/projects/saprfc/files/saprfc/1.4.1/saprfc-1.4.1.All.zip/download
Resolving sourceforge.net... 216.34.181.60
Connecting to sourceforge.net|216.34.181.60|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://downloads.sourceforge.net/project/saprfc/saprfc/1.4.1/saprfc-1.4.1.All.zip?r=&ts=1293096087&use_mirror=puzzle [following]
--2010-12-23 10:21:27-- http://downloads.sourceforge.net/project/saprfc/saprfc/1.4.1/saprfc-1.4.1.All.zip?r=&ts=1293096087&use_mirror=puzzle
Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://puzzle.dl.sourceforge.net/project/saprfc/saprfc/1.4.1/saprfc-1.4.1.All.zip [following]
--2010-12-23 10:21:28-- http://puzzle.dl.sourceforge.net/project/saprfc/saprfc/1.4.1/saprfc-1.4.1.All.zip
Resolving puzzle.dl.sourceforge.net... 195.141.111.5
Connecting to puzzle.dl.sourceforge.net|195.141.111.5|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 216617 (212K) [application/zip]
Saving to: `saprfc-1.4.1.All.zip'
100%[============================================================================================================================>] 216,617 62.2K/s in 3.4s
2010-12-23 10:21:32 (62.2 KB/s) - `saprfc-1.4.1.All.zip' saved [216617/216617]
[kbechler@ticket saprfc]$

Po drugie, trzeba to wypakować:[kbechler@ticket saprfc]$ unzip ./saprfc-1.4.1.All.zip
Archive: ./saprfc-1.4.1.All.zip
inflating: ChangeLog
[...]
inflating: ext/php_saprfc_530.dll
[kbechler@ticket saprfc]$

Teraz mamy do wyboru dwie drogi:

  • przebudować całego PHPa z włączonym dodatkiem saprfc (czego bardzo nie chciałbym robić),
  • skompilować saprfc jako dynamiczny moduł PHP (co chciałbym zrobić).

Żeby zbudować moduł dla PHPa, musimy wklepać po kolei:

  • phpize
  • ./configure
  • make
  • sudo make install

Jak już to wszystko uda nam się zainstalować, to w katalogu usr/lib64/php/modules (lub /usr/lib64/php/modules dla systemów 64-bitowych) powinniśmy dostać plik saprfc.so będący upragnionym przeze mnie modułem.

Ostatnim krokiem jest utworzenie pliku, który powie PHPowi, aby z naszego nowego modułu skorzystał:
[kbechler@ticket ~]$ cat /etc/php.d/sap.ini
extension=saprfc.so
[kbechler@ticket ~]$

I to właściwie tyle. Pozostaje zrestartować Apache’a i oddać system w ręce kolegów od SAPa :-)

UWAGI:
Błąd linkera /usr/bin/ld: skipping incompatible /usr/sap/rfcsdk/lib/librfccm.so when searching for -lrfccm nie oznacza wcale, że mamy złą wersję (w sensie numerka) biblioteki, tylko że próbujemy linkować do złej architektury (w moim przypadku był to system x86_64 i 32-bitowa wersja SAP RFCSDK).

Trackback URL: https://konrad.bechler.pl/2010/12/jak-zainstalowac-saprfc/trackback/

«

»

Write a comment





*