ServiceModel メタデータ ユーティリティ ツールと BizTalk Adapter for mySAP Business Suite の使用

ServiceModel メタデータ ユーティリティ ツール (svcutil.exe) を使用して、Microsoft BizTalk Adapter for mySAP Business Suite が公開する操作用の WCF クライアント クラスまたは WCF サービス コントラクト (インターフェイス) を生成できます。 svcutil.exe を実行して WCF クライアント クラスまたは WCF サービス コントラクトを生成した後、生成されたファイルをコードに含め、生成されたクラスのインスタンスを作成するか、生成されたインターフェイスから WCF サービスを実装して SAP システムで操作を実行できます。

svcutil.exe を使用するには、資格情報を含む接続 URI を指定する必要があります。 既定では、SAP アダプターは接続 URI の資格情報を無効にするため、SAP アダプターの既定以外のバインドを使用するように svcutil.exe を構成する必要があります。 既定以外のバインドでは、他のバインド プロパティを構成することもできます。たとえば、BAPI 操作用の WCF クライアントを作成するには、 EnableSafeTyping バインド プロパティを true に設定する必要があります。

次のセクションでは、svcutil.exe を構成する方法と、svcutil.exe を使用して、SAP アダプターを使用して WCF クライアント コードまたは WCF サービス コントラクトを生成する方法について説明します。

SAP アダプターの svcutil.exe の構成

既定以外のバインドを使用するように svcutil.exe を構成するには、svcutil.exe のローカル コピーを作成してから、svcutil.exe.config 構成ファイルのローカル コピーを作成または変更する必要があります。

  1. フォルダーを作成し、svcutil.exe を新しいフォルダーにコピーします。 通常、svcutil.exe は Windows SDK のインストール場所 (具体的には C:\Program Files\Microsoft SDKs\Windows\v6.0\Bin) にあります。

  2. 新しいフォルダーに svcutil.exe.config という名前のファイルを作成します。

  3. バインドとクライアント エンドポイントを svcutil.exe.config ファイルに追加します。 正しい構成が使用されていることを確認するには、新しいフォルダーから svcutil.exe を実行する必要があります。

    重要

    クライアント エンドポイントの name 属性は、接続 URI で使用されるスキームを指定する必要があります。 この値は、大文字と小文字が区別されます。

    <configuration>  
      <system.serviceModel>  
        <client>  
          <!-- the name should match the required scheme of the WS-Metadata Exchange endpoint   
          and the contract should be "IMetadataExchange" -->  
          <endpoint name="sap"  
                    binding="sapBinding"  
                    bindingConfiguration="SAPBinding"  
                    contract="IMetadataExchange" />  
        </client>  
        <bindings>  
          <sapBinding>  
            <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
          </sapBinding>  
        </bindings>  
    
      </system.serviceModel>  
    
    </configuration>  
    

    バインド構成では、SAP アダプターのバインド プロパティのいずれかを設定できます。 たとえば、svcutil.exe を使用して BAPI 操作用の WCF クライアントを生成するには、次の既定以外のバインドを指定できます。

<bindings>  
  <sapBinding>  
    <binding name="SAPBinding" acceptCredentialsInUri="true"/>  
  </sapBinding>  
</bindings>  

svcutil.exe の既定以外のバインドの構成の詳細については、「 カスタムセキュリティで保護されたメタデータ エンドポイント」を参照してください。

svcutil.exe を使用した WCF クライアント クラスまたは WCF サービス コントラクトの作成

svcutil.exe を使用して、SAP アダプターの WCF クライアント コードまたは WCF サービス コントラクト (インターフェイス) を生成するには、WS-Metadata Exchange (MEX) エンドポイントと、コードを生成 svcutil.exe 操作を指定する接続 URI を指定する必要があります。 また、接続 URI で SAP システムの接続資格情報を指定する必要があります。

注意

SAP アダプターで svcutil.exe を使用するには、既定以外のバインドを使用するように構成する必要があります。これを行う方法については、「 SAP アダプターの svcutil.exe の構成」を参照してください。

次の方法で、SAP アダプター接続 URI で MEX エンドポイントとターゲット操作を指定します。

  • クエリ文字列に "wsdl" パラメーターを含める必要があります。 クエリ文字列の最初のパラメーターである場合は、疑問符 (?) の直後に指定されます。 最初のパラメーターでない場合は、アンパサンド (&) で前に置く必要があります。

  • "wsdl" パラメーターの後に 1 つ以上の "op" パラメーターを指定する必要があります。 各 "op" パラメーターの前にはアンパサンド (&) が付き、ターゲット操作のノード ID を指定します。

    次の 3 つの例は、svcutil.exe を使用してさまざまな操作を対象にする方法を示しています。

    この例では、RFC_CALCULATE_TAXES用の WCF クライアント クラスを作成します。

    .\svcutil "sap://User=YourUserName;Passwd=YourPassword;Client=800;Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Rfc/RFC_CALCULATE_TAXES"

    この例では、SALESORDER_CREATEFROMDAT201と SALESORDER_CREATEFROMDAT202 IDOC の両方に対して WCF クライアント クラスを作成します。

    .\svcutil "sap://User=YourUserName;Passwd=YourPassword;Client=800;Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Send&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT202//620/Send"

    この例では、SAP システムから SALESORDER_CREATEFROMDAT201 IDOC を受け取る WCF サービス コントラクトを作成します。 NODE ID は、Receive 操作を指定します。 この例ではメタデータの取得を処理するため、接続 URI のquery_stringでリスナー パラメーターを指定する必要はありません。

    .\svcutil "sap://User=YourUserName;Passwd=YourPassword;Client=800;Lang=EN;@a/YourSAPHost/00?wsdl&op=http://Microsoft.LobServices.Sap/2007/03/Idoc/3/SALESORDER_CREATEFROMDAT201//620/Receive"

重要

接続 URI は、コマンド ラインで引用符で囲む必要があります。 それ以外の場合、svcutil.exe は SAP アダプターがサポートしていない操作のメタデータの取得を試みます。 このような試行の結果は未定義です。

既定では、svcutil.exe は生成されたコードを output.cs ファイルに配置します。ただし、コマンド ライン スイッチを設定することで、出力ファイルの名前や、svcutil.exe で使用されるその他の多くのオプションを変更できます。 svcutil.exe がサポートするオプションの詳細については、「 ServiceModel メタデータ ユーティリティ ツール (Svcutil.exe)」を参照してください。

Svcutil.exe では、(ワイルドカード文字を使用するなどして) 操作を検索する機能は提供されません。 ターゲットにする特定の操作のノード ID を明示的に指定する必要があります。 操作のノード ID は、そのメッセージ アクション文字列と同じです。 カテゴリのみを参照するノード ID を指定することはできません。 SAP アダプターが表示するノード ID の詳細については、「 メタデータ ノード ID」を参照してください。

アダプター サービス参照の追加 Visual Studio プラグインは、WCF クライアント クラスと WCF サービス コントラクトの生成を大幅に簡略化できる高度な参照および検索機能を提供します。 アダプター サービス参照の追加プラグインの詳細については、「 SAP ソリューション成果物の WCF クライアントまたは WCF サービス コントラクトを生成する」を参照してください。