這要看你是什么需求。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了萬年免費建站歡迎大家使用!
如果你要用.Net 調(diào)用SAP的一些功能,比如外部系統(tǒng)查SAP內(nèi)的物料信息、用BAPI做憑證、調(diào)用RFC函數(shù)等等,可以使用 .Net Connector,從.Net平臺調(diào)用SAP的服務(wù)。
如果你是要用SAP調(diào)用.Net的服務(wù),比如取外部系統(tǒng)的某些數(shù)據(jù),那么直接用Web Service就可以了,用ASP.Net寫個Web Service,在SAP下用ABAP調(diào)用。SAP ECC 5.0以上的版本都支持直接調(diào)用外部Web Service,可以在SE80中建立Enterprise Service代理類來調(diào)用Web Service,原理和.Net下調(diào)用Web Service的方法完全一樣。
另外,所謂的VS2003支持 .Net Connector,只是說SAP .Net Connector 的圖形界面目前只支持VS2003,可以直接在VS2003下面用圖形界面添加SAP服務(wù)器,并進行相應(yīng)的配置,但是在VS2005里面做不到,如果要在2005里面用.Net Connector,必須手工添加和配置相應(yīng)代碼。
對于一個已經(jīng)用VS2003編寫好的C#或VB托管DLL工程,可以用VS2005打開修改其內(nèi)容,并且編譯后繼續(xù)使用。
SAP.Net Connector 本質(zhì)上是對SAP的DCOM接口組件(也就是Librfc32.dll)的托管代碼封裝,此外還有對于VS2003的圖形界面插件。
關(guān)于.Net Conncetor,可以看下面這篇帖子
根據(jù)系統(tǒng)數(shù)據(jù)交換的方式以及讀寫數(shù)據(jù)的相對關(guān)系不同,可以將外部系統(tǒng)與SAP系統(tǒng)的接口形式分為:主動式,被動式和中間式\x0d\x0a\x0d\x0a1、主動式接口\x0d\x0a\x0d\x0a即外部系統(tǒng)將SAP系統(tǒng)所需的信息直接寫入SAP系統(tǒng)的數(shù)據(jù)庫中。這種方式要求詳細了解SAP系統(tǒng)內(nèi)部的數(shù)據(jù)庫結(jié)構(gòu),并且SAP系統(tǒng)允許外部系統(tǒng)往里寫數(shù)據(jù)(即有寫的權(quán)限)。一般來說,主動式接口形式需要對SAP系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)很清楚,對SAP系統(tǒng)錄入數(shù)據(jù)時需要進行哪些數(shù)據(jù)校驗也要很清楚,同時也要遵循SAP系統(tǒng)的數(shù)據(jù)校驗規(guī)范,將其所需的物料信息、產(chǎn)品信息、加工信息等一一寫入SAP系統(tǒng)中,保證數(shù)據(jù)的準確性和有效性。\x0d\x0a\x0d\x0a采用主動式接口形式的優(yōu)點:外部系統(tǒng)與SAP系統(tǒng)中的信息同步性好。但在安全性方面存在一定問題,如出現(xiàn)寫數(shù)據(jù)沖突,即外部系統(tǒng)寫數(shù)據(jù)到SAP系統(tǒng)的同時,SAP系統(tǒng)本身也在往數(shù)據(jù)庫中寫入數(shù)據(jù)。對于SAP系統(tǒng)建議一般不要采用此種方式。\x0d\x0a\x0d\x0a2、被動式接口\x0d\x0a\x0d\x0a被動式接口,即SAP系統(tǒng)從外部系統(tǒng)中讀取所需的數(shù)據(jù),將其寫入自已的數(shù)據(jù)庫中。對于被動式又有兩種方式:全被動式和半被動式。\x0d\x0a\x0d\x0a.全被動式:外部系統(tǒng)完全公開其表達和存儲信息的數(shù)據(jù)庫結(jié)構(gòu),SAP系統(tǒng)讀取信息時自行判斷哪些信息是增加的,哪些是修改的,哪些己刪除了。\x0d\x0a\x0d\x0a.半被動式:外部系統(tǒng)除公開其數(shù)據(jù)庫結(jié)構(gòu)外,還提供一些握手信號單獨存入握手信號表中,握手信息說明哪些信息作了更新,這樣SAP系統(tǒng)在讀取外部系統(tǒng)中的信息(如某物料更改信息)時,根據(jù)握手信號表來讀取外部系統(tǒng)中已經(jīng)發(fā)生更改的部分信息,不需要全部讀一遍,這樣可以提高接口處理的速度。\x0d\x0a\x0d\x0a采用被動式接口形式的優(yōu)點:外部系統(tǒng)與SAP系統(tǒng)的同步性也做得比較好,安全性方面也比主動式要好。但實現(xiàn)起來較為麻煩,需要有較強的SAP接口方面的知識。一般由專門的SAP實施顧問來完成這種開發(fā)。\x0d\x0a\x0d\x0a3、中間式接口\x0d\x0a\x0d\x0a中間式接口,即外部系統(tǒng)將SAP系統(tǒng)所需的信息生成中間文件或中間數(shù)據(jù)表,SAP系統(tǒng)直接讀取中間文件或?qū)⒅虚g表中的信息寫入數(shù)據(jù)庫中,這種方式要求對外部系統(tǒng)和SAP系統(tǒng)兩方都要做一些開發(fā)工作。\x0d\x0a\x0d\x0a需要特別提出的是:采用中間式接口時必須時刻注意如何保證外部和SAP信息一致性。常用的有兩種方式:一種是由SAP系統(tǒng)來保證,即外部系統(tǒng)將SAP系統(tǒng)所需的信息定期寫在中間文件或數(shù)據(jù)表中,SAP系統(tǒng)讀取該信息時與SAP系統(tǒng)中已有的信息進行分析比較,判斷哪是新增的、哪是修改的、哪些刪除了,最后把更新的信息寫入SAP系統(tǒng)中:另一種是,外部系統(tǒng)在生成中間文件或數(shù)據(jù)表時,與SAP系統(tǒng)中己有的數(shù)據(jù)進行比較,判斷哪些數(shù)據(jù)進行了更新,并將更新的數(shù)據(jù)寫入中間文件或數(shù)據(jù)表。然后,SAP系統(tǒng)讀取中間文件或數(shù)據(jù)表中的數(shù)據(jù)直接寫入自己的數(shù)據(jù)庫中。這種方式要求在外部系統(tǒng)寫中間文件之前SAP系統(tǒng)將其數(shù)據(jù)庫中的數(shù)據(jù)導出,以供外部系統(tǒng)進行比較用。\x0d\x0a\x0d\x0a中間式接口是比較常用的一種方式,這種方式外部系統(tǒng)和SAP系統(tǒng)相對獨立,接口不涉及雙方內(nèi)部的結(jié)構(gòu),而且接口的責任也很明確,數(shù)據(jù)的安全性也得到了保證。但這種方式存在的問題就是兩個系統(tǒng)的數(shù)據(jù)同步性稍差一些,但只要合理地規(guī)定讀寫中間文件或數(shù)據(jù)表的時間,數(shù)據(jù)的同步性是不會影響使用的。
php連接sapwebservices接口
public function getwebservice($param){
$user = 'username';
$password = 'password';
$wsdl = '*****';? ?/*wsdl地址*/
$SOAP_CONFIG = array(
? ? ? 'login' = $user,
? ? 'password' = $password,
? ? ? 'trace' =true,
? ? ? 'soap_version'=SOAP_1_2,
? ? ? 'connection_timeout' = 50,
? ? ? 'encoding' = 'UTF-8',
? ? ? 'cache_wsdl' = WSDL_CACHE_NONE,
? ? ? 'keep_alive' = false
? ? ? );
? ? try {
? ? ? ? ? ? $client = new \SoapClient($wsdl, $SOAP_CONFIG); //調(diào)用sap里的接口
? ? ? ? ? ? /* $param= array(
? ? ? ? ? ? ? ? ? ? '參數(shù)1'? ? =? ? '1',
? ? ? ? ? ? ? ? ? ? '參數(shù)2'? ? = '2',
? ? ? ? ? ? ? ? ? ? '參數(shù)3'? ? =? '3',
? ? ? ? ? ? ? ? ? ? '參數(shù)4'? ? =? ? '4');*/
? ? ? ? ? ? $ve=$client-__call("ZSdSoInfo", array($param));
? ? ? ? ? return $ve;
} catch (Exception $e) {
? ? ? ? ? ? ? print $e-getMessage();
? }
}
php鏈接.net接口
$ws = "http://*****?wsdl";//webservice服務(wù)的地址
$client = new SoapClient ($ws);
$result=$client-kelOtp(array('參數(shù)1'=參數(shù)1,'參數(shù)2'=參數(shù)2);
$a= $result-kelOtpResult;/