2010-11-05 43 views
2

現在我試圖做一個簡單的消費SAP Web服務的應用程序。我通過soap管理器獲得了wsdl鏈接,並將其添加到項目中作爲web refences。 C#創建了一個複雜的類型,其中包括我的RFC的導入導出參數和表,如果我想調用Web服務方法,我必須發送所有我的值在一個變量類型複雜也返回值回到我的變量thats類型相同。但返回的表格是最初的。問題,使用.Net的SAP網絡服務

但是,我通過wsconfig和wsadmin在另一個系統中獲得了wsdl鏈接,但是在相同的RFC中,C#沒有創建任何複雜類型。它爲每個RFC的參數創建了不同的類型,並且我可以在不同的變量中發送我的值也返回值是正確的。

爲什麼soap manager和wsconfig創建不同的wsdl或爲什麼C#爲相同的RFC創建不同的類型和方法? 如何解決這個問題?你知道任何提示或技巧嗎?

感謝您的建議

回答

0

這兩個系統是否處於同一發行版級別?隨着新版本的發佈,wsdl生成機制可能會發生變化。所以wsconfig/wsadmin已經被棄用了,你應該使用soamanager(如果可用的話)。

+0

不同水平。如果我使用soapmanager wsdl,則返回的表是空的。 – Abaper 2010-11-08 11:52:04

+0

這是爲什麼?你有沒有調試過SAP側的函數調用? – Richard 2010-12-02 18:39:19

1

如前所述,wsconfig和wsadmin被視爲棄用,因此您應該始終使用soamanager事務。當您在soamanager中爲Web服務打開WSDL時,您將在新的瀏覽器窗口中看到它。在它的地址欄中(比如URL),你在末尾的某個地方看到一個「../ws_policy/ ..」 - 嘗試將它替換爲「../standard/ ..」,然後用這個新的WSDL重新加載WSDL地址,然後爲您的客戶端程序使用此新/其他WSDL。

這有幫助嗎?

+0

感謝您的建議,但它不起作用。它再次創建複雜類型並返回值不正確。 – Abaper 2010-11-23 12:44:04