Agustus 2, 2011
Interfacing PHP SAP
INSTALASI
Untuk melakukan koneksi dari PHP ke SAP, dibutuhkan software-software berikut:
- NetWeaver RFC SDK, dari sumber tulisan Pak Piers Sharding anda bisa mendapatkannya dengan cara di bawah ini: You need to go to the SAP service Portal for Software downloads, and follow the path of: Download -> Support Packages and Patches -> Entry by Application Group -> Additional Components -> SAP NW RFC SDK -> SAP NW RFC SDK 7.10 -> SAP NW RFC SDK 7.10. There is an accompanying OSS note: 1025361.
- PHP Netweaver RFC SDK bisa download di sini, http://www.piersharding.com/download/php/sapnwrfc/
Selanjutnya adalah langkah instalasi:
- Extract Netweaver RFC SDK ke suatu folder, biasanya di /usr/local/lib
- Selanjutnya extract PHP Netweaver RFC SDK
- Untuk pengguna Windows, anda bisa langsung menggunakan library prebuilt yang ada di folder tersebut, tetapi untuk pengguna selain Linux, anda harus mengcompile nya terlebih dahulu. Selanjutnya adalah langkah-langkah untuk instalasi library di Linux
- Masuk ke folder hasil extract (cd <sapnwrfc dir>)
- Jalankan perintah phpize di dalam folder tersebut, oh ya sebelumnya pastikan anda telah menginstall paket php-dev dari distro linux anda.
- Jalankan ./configure –with-sapnwrfc=<path to nwrfcsdk> misal /configure –with-sapnwrfc=/usr/local/lib/nwrfcsdk
- Jalankan make
- Setelah berhasil, maka jalankan make install. Perintah make install ini akan menginstall/mengkopi library PHP-SAP ke folder extension_dir, sebagai contoh extension_dir di komputer saya ada di /usr/lib/php5/20090626+lfs/
- Selanjutnya restart web server anda
- Untuk memastikan instalasi PHP NW RFC SDK telah terinstal dengan benar, ketika eksekusi phpinfo(); harus muncul ekstensi sapnwrfc seperti gambar berikut:

- Jangan lupa tambahkan konfigurasi di ld.so.conf dengan path ke nwrfcsdk, berikut konfigurasi file /etc/ld.so.conf.d/lib.conf saya yang baru:
#libc default configuration
/usr/local/lib
/usr/local/lib/nwrfcsdk/lib/
CONTOH PENGGUNAAN
Dengan menggunaan library nwrfc anda bisa memanggil fungsi BAPI yang ada di SAP. Untuk melihat daftar fungsi-fungsi BAPI yang ada di SAP:
Untuk melihat detail dokumentasi dari BAPI gunakan tcode se37
Berikut akan saya contohkan cara memanggil BAPI ZRFC_READ_TABLE, BAPI ini berfungsi untuk membaca tabel yang ada di SAP.
<?php
$rfc = new sapnwrfc(array ("ashost"=>"x.x.x.x", "sysnr"=>"xx", "client"=>"xxx", "user"=>"xxx", "passwd" =>"xxx"));
$fce = $rfc->function_lookup("ZRFC_READ_TABLE");
$parms = array('QUERY_TABLE' => 'BPJA','DELIMITER'=>'|','ROWCOUNT'=>10,'FIELDS'=>array(array('FIELDNAME'=>'WTJHR'),array('FIELDNAME'=>'WLJHR'),array('FIELDNAME'=>'WTJHV'),array('FIELDNAME'=>'WLJHV'),array('FIELDNAME'=>'WRTTP'),array('FIELDNAME'=>'VORGA'),array('FIELDNAME'=>'GJAHR')), 'OPTIONS'=>array(array('TEXT'=>"OBJNR = 'PR00217119' AND TWAER = 'IDR'")));
print "<pre>";
print print_r($fce->invoke($parms));
print "</pre>";
?>
Berikut penjelasan ringkas mengenai fungsi di atas:
$rfc = new sapnwrfc(array ("ashost"=>"x.x.x.x", "sysnr"=>"xx", "client"=>"xxx", "user"=>"xxx", "passwd" =>"xxx"));
Berfungsi melakukan inisial koneksi ke server SAP. Parameter ashost adalah server SAP, sysnr biasanya adalah 00, lalu kemudian user dan password untuk melakukan koneksi.
$fce = $rfc->function_lookup("ZRFC_READ_TABLE");
Berfungsi melakukan lookup terhadap BAPI.
$parms = array('QUERY_TABLE' => 'BPJA','DELIMITER'=>'|','ROWCOUNT'=>10,'FIELDS'=>array(array('FIELDNAME'=>'WTJHR'),array('FIELDNAME'=>'WLJHR'),array('FIELDNAME'=>'WTJHV'),array('FIELDNAME'=>'WLJHV'),array('FIELDNAME'=>'WRTTP'),array('FIELDNAME'=>'VORGA'),array('FIELDNAME'=>'GJAHR')), 'OPTIONS'=>array(array('TEXT'=>"OBJNR = 'PR00217119' AND TWAER = 'IDR'")));
Perintah di atas merupakan parameter yang diperlukan untuk pemanggilan ZRFC_READ_TABLE. Untuk memperjelas mari kita lihat dokumentasi BAPI ZRFC_READ_TABLE melalui tcode se37.
Pertama-tama buka tcode se37, lalu ketikkan ZRFC_READ_TABLE pada textfield Function Module
Klik Display, Selanjutnya pilih tab Import
Bisa dilihat bahwa ZRFC_READ_TABLE ternyata memiliki atribut-atribut yang bisa kita gunakan, seperti yang ditampilkan di screnshoot di atas.
Pada contoh kode di atas, berarti tabel yang akan diquery adalah BPJA, dengan DELIMITER (pemisah) “|”, Field-field yang akan ditampilkan adalah WTJHR, WLJHR, WTJHV, WLJHV,
Untuk melakukan filtering pada tabel (opsi “where” pada sql) yang akan diquery gunakan OPTIONS, pada contoh di atas saya menggunakan 'OPTIONS'=>array(array('TEXT'=>"OBJNR = 'PR00217119' AND TWAER = 'IDR'")));
Berarti pada saat melakukan query saya melakukan filtering dengan “where OBJNR = ‘PR00217119' AND TWAER = 'IDR'“.
Demikian sedikit sharing tentang cara melakukan interfacing dari PHP ke SAP.
Catatan:
Untuk melihat isi tabel SAP gunakan tcode SE16







evolva berkata,
Agustus 2, 2011 pada 9:14 am
wah aku ga paham nih…besok aku harus diajarin ya Fuad :D
Devo Avidianto P berkata,
Agustus 3, 2011 pada 4:43 am
thanks nih cara nya ya , salam kenal :)
john berkata,
November 16, 2011 pada 4:57 am
Bos, pernah nyoba pakai bapi_user_change tidak bos, untuk mereser password user account di sap? kalau pernah, boleh nanya nanya bos?