Agustus 2, 2011

Interfacing PHP SAP

Ditulis dalam 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 berkata,

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

  2. Devo Avidianto P berkata,

    thanks nih cara nya ya , salam kenal :)

  3. john berkata,

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


Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

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

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 1.428 pengikut lainnya.