Filed under: Uncategorized
Pada tulisan pertama saya sdh menjelaskan bagaimana melakukan install modul extension saprfc php5 pada Linux Debian 8. Selanjutnya menjelaskan bagaimana memanfaatkan modul saprfc tersebut.
Pertama copy extract saprfc-1.4.1 ke folder default apache2 (/var/www/html/). File ext php pd modul saprfc ini dibuat masih dengan php4, jadi masih ditulis dengan short_open_tag <? bukan <?php. Jadi agar jalan dengan normal harus edit file php.ini
nano /etc/php5/apache2/php.ini
setting “On” menjadi short_open_tag = On
Selanjutnya reload modul apache2.
service apache2 reload
selanjutnya buka browser dan ketik address dimana apache2 dan php di install. Conthnya saya install pada server dgn ip 10.1.2.70 : http://10.1.2.70/saprfc-1.4.1/saprfc_tes.php
Selanjutnya isi:
Application server: ?
System Number: ?
Client:?
Username: ?
Password:?
SAP Codepage: 1100
Setelah login muncul halaman berikut :
Selanjut pada form Function module isi BAPI Function yg sdh dibuat/ada pada server SAP tsb, misalnya “SO_USER_LIST_READ” utk menampil user SAP.
Lalu tekan tombol “Call SO_USER_LIST_READ”, hasilnya berikut :
Tekan tombol “Back”, lalu tekan tombol “Generate php”.
Maka akan di download file SO_USER_LIST_READ.php yg isinya sbb:
//RFC Call for SO_USER_LIST_READ
//Generated by saprfc_test.php (http://saprfc.sourceforge.net)//Login to SAP R/3
$login = array (
“ASHOST”=>”10.x.x.x”,
“SYSNR”=>”xx”,
“CLIENT”=>”xxx”,
“USER”=>”xxxx”,
“PASSWD”=>”xxxxx”,
“CODEPAGE”=>”1100”);
$rfc = saprfc_open ($login );
if (! $rfc ) { echo “RFC connection failed”; exit; }
//Discover interface for function module SO_USER_LIST_READ
$fce = saprfc_function_discover($rfc,”SO_USER_LIST_READ”);
if (! $fce ) { echo “Discovering interface of function module failed”; exit; }
//It’s possible to define interface manually. If you would like do it, uncomment following lines:
/*$def = array (
array (
“name”=>”USER_GENERIC_NAME”,
“type”=>”IMPORT”,
“optional”=>”0”,
“def”=> array (
array (“name”=>””,”abap”=>”C”,”len”=>12,”dec”=>0,”offset”=>0)
)
),
array (
“name”=>”USER_DISPLAY_TAB”,
“type”=>”TABLE”,
“optional”=>”0”,
“def”=> array (
array (“name”=>”SAPNAM”,”abap”=>”C”,”len”=>12,”dec”=>0,”offset”=>0),
array (“name”=>”USRNAM”,”abap”=>”C”,”len”=>12,”dec”=>0,”offset”=>12),
array (“name”=>”OCSNAM”,”abap”=>”C”,”len”=>10,”dec”=>0,”offset”=>24),
array (“name”=>”USRTP”,”abap”=>”C”,”len”=>3,”dec”=>0,”offset”=>34),
array (“name”=>”USRYR”,”abap”=>”C”,”len”=>2,”dec”=>0,”offset”=>37),
array (“name”=>”USRNO”,”abap”=>”C”,”len”=>12,”dec”=>0,”offset”=>39),
array (“name”=>”ADRNAME”,”abap”=>”C”,”len”=>35,”dec”=>0,”offset”=>51)
)
)
);
$fce = saprfc_function_define($rfc,”SO_USER_LIST_READ”,$def);
*/
//Set import parameters. You can use function saprfc_optional() to mark parameter as optional.
saprfc_import ($fce,”USER_GENERIC_NAME”,”endrops”);
//Fill internal tables
saprfc_table_init ($fce,”USER_DISPLAY_TAB”);
saprfc_table_append ($fce,”USER_DISPLAY_TAB”, array (“SAPNAM”=>””,”USRNAM”=>””,”OCSNAM”=>””,”USRTP”=>””,”USRYR”=>””,”USRNO”=>””,”ADRNAME”=>””));
//Do RFC call of function SO_USER_LIST_READ, for handling exceptions use saprfc_exception()
$rfc_rc = saprfc_call_and_receive ($fce);
if ($rfc_rc != SAPRFC_OK) { if ($rfc == SAPRFC_EXCEPTION ) echo (“Exception raised: “.saprfc_exception($fce)); else echo (saprfc_error($fce)); exit; }
//Retrieve export parameters
$rows = saprfc_table_rows ($fce,”USER_DISPLAY_TAB”);
for ($i=1;$i<=$rows;$i++)
$USER_DISPLAY_TAB[] = saprfc_table_read ($fce,”USER_DISPLAY_TAB”,$i);
//Debug info
saprfc_function_debug_info($fce);
saprfc_function_free($fce);
saprfc_close($rfc);
Selanjutnya kita bisa lihat coding php dan struktur data yg berasal dr SAP yg bisa modify programnya sesuai kebutuhan.
Saya sudah lama tdk menggunakan php utk production, ttp menggunakan python. Ttp saya masih sering mendownload script php yg digenerate oleh aplikasi saprfc ini utk membantu pekerjaan saya. Selanjutnya pada tulisan berikut saya akan terangkan bagaimana penggunaannya saprfc pada beberapa bahasa programing yg lain seperti pada php7,python dan nodejs. Dan membuat server API service utk SAP. Ikuti terus dalam mohon komentarnya
Jika ada pertanyaan dpt iajukan melalui website ini kontak saya dibawah, semoga saya bisa bantu mencari solusinya.
Budi Rachmansyah
Mobile/WA :+628567588989
Email : brachmansyah@gmail.com
Filed under: Uncategorized
Sebenarnya aplikasi ini sudah lama saya kerjakan, yaitu di tahun 2006-2007. Pernah saya tulis di website phpug-id dan saya presentasikan pada pertemuan ke-2 phpug-id. Berhubung website phpug-id sdh tdk ada, saya akan sharing lagi di blog saya ini (setelah vacum sekian lama …).
Ketika itu saya dapat tugas utk buat akses PO parts via website yang langsung ke system ERP SAP R3 yg perusahaan kami gunakan. Saya menemukan website http://saprfc.sourceforge.net/ tentang SAPRFC extension utk PHP yg di buat oleh Eduard Koucky. Extension tsb bisa digunakan sebagai penghubung aplikasi website php dgn SAP server.
Selanjutnya saya tulis ulang, bagaimana menginstallnya di server Linux Ubuntu 14.04. (Utk server windows pernah saya tulis di website php-ug dan sepertinya tulisan saya ada yg mengcopynya..silahkan cari sendiri). Kenapa Ubuntu server 14.04? Disesuaikan zamannya saat itu di tahun 2006-2007. Extension diatas support dgn php4 dan php5 dan tdk support dgn php7. Utk php7 saya akan buatkan pada tulisan berikutnya.
- Install server linux Debian 8 whezzy, lalu install apache2 dan php5 serta php5-dev utk penambahan modul extension SAP.
- Kita memerlukan SAPSDK yg dpt diperoleh dr CD SAP yg terletak pada directory Linux/Unix dan dapat di temukan file RFC.SAR dan SAPCAR. Atau download diwebsite SAP http://service.sap.com/swdc dgn login. SAPCAR adalah aplikasi dekompresi file dari RFC.SAR. Cara melakuka extract dgn mengetik ./SAPCAR -xvf RFC.CAR. Selanjutnya copy hasil extract td ke folder /usr/sa/rfcsdk
- Download php modul extesion SAPRFC. Lalu di extract
tar zxvf saprfc-1.4.1.tar.gzcd SAPRFC-1.4.1
- Kemudian edit file saprfc.c, pada line 47 ganti “function_entry” ==> “zend_function_entry” dan save.
- Selanjutnya kita compile :
/opt/saprfc-1.4.1#phpize
/opt/saprfc-1.4.1#./configure –with-saprfc=/usr/sap/rfcsdk
/opt/saprfc-1.4.1#make
/opt/saprfc-1.4.1#make install - Selanjutnya kita aktifkan modul extension saprfc.so pada php.
nano /etc/php5/mods-available/saprfc.ini
ketik/tambahkan sbb :
extension = saprfc.so - Kemudian buat link agar modul extension baru di baca apache :
ln -s /etc/php5/mods-available/saprfc.ini /etc/php5/cli/conf.d/20-saprfc.ini
ln -s /etc/php5/mods-available/saprfc.ini /etc/php5/apache2/conf.d/20-saprfc.ini - Reload service apache2 :
service apache2 reload
- Cek apakah modul sdh teregistrasi, maka ditemukan modul saprfc
#php -m
Demikianlah cara untuk melakukan install modul saprfc dalam php5. Selanjutnya saya akan jelaskan bagaimana cara menggunakan modul saprfc utk melakukan analisa dan ambil data SAP ABAP Function serta memanfaatkannya.