共用方式為


設定 SAP 系統的用戶端系結

產生 WCF 用戶端類別之後,您可以建立 WCF 用戶端 (實例) ,並叫用其方法來取用適用于 mySAP Business Suite 的 Microsoft BizTalk 配接器。 如需如何針對 SAP 配接器所公開之作業產生 WCF 用戶端類別和協助程式程式程式碼的資訊,請參閱 產生 WCF 用戶端或 SAP 解決方案成品的 WCF 服務合約

若要建立 WCF 用戶端,您必須指定端點位址和系結。 端點位址必須包含有效的 SAP 連線 URI,而系結必須是 SAP 系結的實例, (SAPBinding) 。 如需 SAP 連線 URI 的詳細資訊,請參閱 建立 SAP 系統連線 URI

您可以在程式碼或組態檔中指定 SAP 系結和端點位址。 當您使用 [新增配接器服務參考 Visual Studio 外掛程式] 來產生 WCF 用戶端類別時,也會為您的專案建立組態檔 (app.config) 。 此檔案包含組態設定,這些組態設定會反映系結屬性和連線資訊 (,但當您使用 [新增配接器服務參考外掛程式] 連接到 SAP 系統時所指定的認證) 除外。

在程式碼中指定系結和端點位址

下列程式碼示範如何在程式碼中指定系結和端點位址來建立 WCF 用戶端。 最好是使用 WCF 用戶端的 ClientCredentials 屬性來指定 SAP 系統認證,而不是在端點位址提供的連線 URI 中指定。

// A WCF client that targets an RFC is created  
// by using a binding object and endpoint address  
SAPBinding sapBinding = new SAPBinding();  
EndpointAddress sapAddress = new EndpointAddress("sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00");  
  
RfcClient rfcClient = new RfcClient(sapBinding, sapAddress);  
  
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";  
rfcClient.ClientCredentials.UserName.Password = "YourPassword";  
  
rfcClient.Open();  

在組態檔中指定系結和端點位址

下列程式碼示範如何在 app.config 檔案中指定系結和端點位址,以建立 WCF 用戶端。

// A WCF client that targets an RFC is created  
// by specifying the client endpoint information in app.config  
RfcClient rfcClient = new RfcClient("SAPBinding_Rfc");  
  
rfcClient.ClientCredentials.UserName.UserName = "YourUserName";  
rfcClient.ClientCredentials.UserName.Password = "YourPassword";  
  
rfcClient.Open();  

下列 XML 顯示新增配接器服務參考外掛程式為 EMP 資料表建立的組態檔。 此檔案包含上述範例中所參考的用戶端端點組態。

<?xml version="1.0" encoding="utf-8"?>  
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">  
    <system.serviceModel>  
        <bindings>  
            <sapBinding>  
                <binding name="SAPBinding" closeTimeout="00:01:00" openTimeout="00:01:00"  
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" receiveIdocFormat="Typed"  
                    generateFlatFileCompatibleIdocSchema="true" maxConnectionsPerSystem="50"  
                    enableConnectionPooling="true" idleConnectionTimeout="00:15:00"  
                    flatFileSegmentIndicator="SegmentDefinition" enablePerformanceCounters="false"  
                    autoConfirmSentIdocs="false"  
                    acceptCredentialsInUri="false" padReceivedIdocWithSpaces="false"  
                    enableBizTalkCompatibilityMode="false" />  
            </sapBinding>  
        </bindings>  
        <client>  
            <endpoint address="sap://CLIENT=800;LANG=EN;@a/YourSAPHost/00?RfcSdkTrace=False&AbapDebug=False&UseSapGui=Without"  
                binding="sapBinding" bindingConfiguration="SAPBinding" contract="Rfc"  
                name="SAPBinding_Rfc" />  
        </client>  
    </system.serviceModel>  
</configuration>  

如果專案有多個 WCF 用戶端,組態檔中會定義多個用戶端端點專案。 每個 WCF 用戶端專案都會根據其系結組態和目標 SAP 系統成品 (有唯一的名稱,例如 Rfc 和 Trfc) ;例如,「SAPBinding_Rfc」。 如果您多次連線以在專案中建立 WCF 用戶端,將會建立多個系結組態專案,每個連線各建立一個。 這些系結組態專案會以下列方式命名:SAPBinding1、SAPBinding2 等等。 在特定連接期間建立的每個用戶端端點專案都會參考在該連接期間建立的系結專案。

重要

SAP 配接器會顯示相同類型 (的不同 SAP 成品,例如 RFC、TRFC 和 IDOC) 為相同服務合約的不同作業。 例如,兩個不同的 RFC RFC_EXAMPLE_A和RFC_EXAMPLE_B都會顯示在相同的服務合約下, (「Rfc」) 。 這表示這兩個 RFC 都會由相同的 WCF 用戶端類別 RfcClient叫用,而且這兩個 RFC 的參數都會在相同的命名空間中宣告。 因此,您必須在相同的新增配接器服務參考外掛程式會話期間產生兩個 RFC 的 WCF 用戶端, (連線) 以避免在建置解決方案時發生命名空間衝突。

另請參閱

使用 WCF 服務模型開發 SAP 應用程式
產生 SAP 解決方案成品的 WCF 用戶端或 WCF 服務合約
建立 SAP 系統連線 URI