Boedot’s Weblog


Menggunakan modul php SAPRFC
October 15, 2019, 11:23 am
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

saprfc_test

Selanjutnya isi:

Application server: ?

System Number: ?

Client:?

Username: ?

Password:?

SAP Codepage: 1100

Setelah login muncul halaman berikut :

BAPI_Function_page

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.

SO_USER_LIST_READ

Lalu tekan tombol “Call SO_USER_LIST_READ”, hasilnya berikut :

hasil-SO_USER_LIST_READ

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

 

 

 

 


Leave a Comment so far
Leave a comment



Leave a comment