日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

php5.2通过saprfc扩展远程连接sap730成功案例

發(fā)布時間:2025/3/20 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php5.2通过saprfc扩展远程连接sap730成功案例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? 公司剛上sap系統(tǒng),由于資金有限,sap與其它系統(tǒng)的數(shù)據(jù)交換需要公司內(nèi)部實現(xiàn)。于是,領(lǐng)導(dǎo)決定入庫申請流程需要在sap與OA系統(tǒng)里實現(xiàn)電子簽核流,重?fù)?dān)果然落到我的身上。好在我只負(fù)責(zé)OA,還一位同事負(fù)責(zé)sap。

? ? ?OA是用PHP開發(fā)的,于是連接語言自然使用PHP。網(wǎng)上搜了下,發(fā)現(xiàn)php的saprfc擴展早在2005年就有了,不過雖然過了那么多年,擴展依然可用。

一、下載saprfc擴展并在php.ini啟用。訪問http://pan.baidu.com/s/1kVPemn9,下載saprfc1.4.1完整版,里面包含windows版php4.4、php5.2、php5.3 dll擴展文件,以及sapclasses文件夾下的接口類等。復(fù)制相應(yīng)版本的php_saprfc_5xx.dll至php的擴展文件夾下,修改php配置文件php.ini,在dynamic extensions下面增加一行:extension=php_saprfc_5xx.dll.然后重啟httpd服務(wù)。網(wǎng)頁訪問phpinfo(),出現(xiàn)以下信息,表示php saprfc擴展安裝成功。

二、安裝sap客戶端并根據(jù)saprfc1.4.1完整版里的example_userlist.php測試與sap服務(wù)器的連接。saprfc本質(zhì)上是模擬sapGUI登錄。所以需要安裝rfcsdk才能實現(xiàn)連接。為簡化操作,直接安裝sapGUI客戶端,則rfcsdk也安裝完成。同理,若是linux版的php,需安裝Non-Unicode SAP RFCSDK 6.40,不過似乎這個東西不好找。然后修改example_userlist.php里的logindata參數(shù)為本公司的sap參數(shù)保存,例如

$sap = new saprfc(array("logindata"=>array("ASHOST"=>"yourhostip" // application server,"SYSNR"=>"00" // system number,"CLIENT"=>"800" // client,"USER"=>"youruser" // user,"PASSWD"=>"yourpwd" // password,"CODEPAGE"=>"8300" //定義字符集,否則會中文亂碼 ),"show_errors"=>false // let class printout errors,"debug"=>false)) ; // detailed debugging information

網(wǎng)頁訪問http://xxxxxx/example_userlist.php,若出現(xiàn)以下信息,表示php與sap通信成功。

三、使用saprfc類連接sap。saprfc1.4.1完整版提供了一系列的類連接sap、調(diào)用函數(shù)、操作內(nèi)表,以及創(chuàng)建服務(wù)接口等。

$params=array("ASHOST"=>"appip" // application server,"SYSNR"=>"00" // system number,"CLIENT"=>"600" // client,"USER"=>"account" // user,"PASSWD"=>"pwd" // password//,"LANG"=>"ZH","CODEPAGE"=>"6240" //8400 gbk code); include_once("sapclasses/sap.class.php");$sapConn=new SAPConnection();$sapConn->Connect($params); // set conncet data array$sapConn->Open(); // set/get rfc handle $sapConn->rfc$sapFunc=new SAPFunction();$sapFunc->Discover($sapConn->rfc,"Z_OA_SIGN");//set/get function handle $sapFunc->fce,z_oa_sign函數(shù)名$para=array( array("EXPORT","TYP"),//默認(rèn)情況下export參數(shù)不用定義,不過定義也沒關(guān)系array("EXPORT","MSG"),array("IMPORT","ZOANUM",$oanum)); //rfc函數(shù)輸入Import,輸出export參數(shù)定義$sapFunc->DefVars($para); //DefVars方法在類里面并沒有,需要手動加入,代碼見下文。 $sapFunc->Call();//echo $sapFunc->TYP;//echo $sapFunc->MSG;if($sapFunc->TYP=="S")echo "S"; //TYP、MSG為rfc函數(shù)的返回值else echo $sapFunc->MSG;$sapFunc->Close();$sapConn->Close();

SAPFunction類的DefVars方法:

function DefVars($parameters){foreach ($parameters as $key => $param) {$type=$param[0];$name=$param[1];$value=isset($param[2])?$param[2]:"";switch ($type) {case "IMPORT":$this->$name=$value;break;case "EXPORT":$this->$name="";break; default:return "saprfc::callFunction() Wrong Parameter-Type. Must be IMPORT, EXPORT or TABLE.";}}}

掌握了以上代碼后,估計使用php連接sap已不是什么難事了。

總結(jié)

以上是生活随笔為你收集整理的php5.2通过saprfc扩展远程连接sap730成功案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。