Agustus 2, 2011

Interfacing PHP SAP

Posted in komputer, php tagged pada 6:19 am oleh fuad

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.

Selanjutnya adalah langkah instalasi:

  1. Extract Netweaver RFC SDK ke suatu folder, biasanya di /usr/local/lib
  2. Selanjutnya extract PHP Netweaver RFC SDK
  3. 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
  4. Masuk ke folder hasil extract (cd <sapnwrfc dir>)
  5. Jalankan perintah phpize di dalam folder tersebut, oh ya sebelumnya pastikan anda telah menginstall paket php-dev dari distro linux anda.
  6. Jalankan ./configure –with-sapnwrfc=<path to nwrfcsdk> misal /configure –with-sapnwrfc=/usr/local/lib/nwrfcsdk
  7. Jalankan make
  8. 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/
  9. Selanjutnya restart web server anda
  10. Untuk memastikan instalasi PHP NW RFC SDK telah terinstal dengan benar, ketika eksekusi phpinfo(); harus muncul ekstensi sapnwrfc seperti gambar berikut:
  11. 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

3 Komentar »

  1. evolva said,

    wah aku ga paham nih…besok aku harus diajarin ya Fuad :D

  2. thanks nih cara nya ya , salam kenal :)

  3. john said,

    Bos, pernah nyoba pakai bapi_user_change tidak bos, untuk mereser password user account di sap? kalau pernah, boleh nanya nanya bos?


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: