手順 1: SAP アイテムを WCF サービスとして公開する
完了までの時間: 10 分
目的: WCF アダプター サービス開発ウィザードを使用して、インターネット インフォメーション サービス (IIS) や Windows プロセス アクティブ化サービス (WAS) などのホスト環境でホストできる WCF サービスを生成できます。 このトピックでは、ウィザードを使用して WCF サービス ファイルを生成する方法について説明します。
前提条件
ウィザードを実行する前に、次のコマンドをインストールします。
Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK の場合は、[ 完了 ] オプションまたは [カスタム ] オプション (このオプション内の [ツール ] を選択)。 これにより、WCF アダプター サービス開発ウィザード用の Visual Studio テンプレートがインストールされます。
BizTalk アダプター パックの microsoft BizTalk Adapter for mySAP Business Suite。
必要な SAP クライアント ライブラリ。
これらの前提条件の詳細については、「BizTalk アダプター パックのインストール ガイド」を参照してください。 インストール ガイドは通常、インストール ドライブ>:\Program Files\Microsoft BizTalk Adapter Pack\Documents に<インストールされます。
SAP 成果物を WCF サービスとして発行するには
Visual Studio を起動し、プロジェクトを作成します。
[ 新しいプロジェクト ] ダイアログ ボックスの [ プロジェクトの種類 ] ウィンドウで、[ Visual C#] を選択します。 [テンプレート] ウィンドウ で 、[ WCF アダプター サービス] を選択します。
または、[ プロジェクトの種類 ] ウィンドウで [ Visual C#] を展開し、[ Web] を選択します。 [テンプレート] ウィンドウ で 、[ WCF アダプター サービス] を選択します。
Note
Web 開発コンポーネントと共にVisual Studio 2013をインストールした場合は、WCF アダプター サービス テンプレートも [新しい Web サイト] オプションから使用できます。
ソリューションの名前と場所を指定し、[OK] をクリック します。 WCF アダプター サービス開発ウィザードが起動します。
[ようこそ] ページで [次へ] をクリックします。
[操作の選択] ページで、SAP システムに接続する接続文字列を指定します。 そのためには次を行います。
[ バインドの選択 ] ボックスの一覧で [ sapBinding] をクリックし、[ 構成] をクリックします。
[ アダプターの構成 ] ダイアログ ボックスで、[ セキュリティ ] タブをクリックします。
[ クライアント資格情報の種類 ] の一覧で [ ユーザー名] を選択し、SAP システムに接続するための有効な SAP ユーザー名とパスワードを指定します。
[ URI のプロパティ ] タブをクリックし、接続パラメーターの値を指定します。 SAP アダプターの接続 URI の詳細については、「SAP システム接続 URI の作成」を参照してください。
Note
接続パラメーターに予約文字 (XML 特殊文字など) が含まれている場合は、[ URI のプロパティ ] タブでそのまま指定する必要があります。つまり、エスケープ文字は使用しません。 ただし、[ URI の構成 ] ボックスで URI を直接指定し、接続パラメーターに予約文字が含まれている場合は、適切なエスケープ文字を使用して接続パラメーターを指定する必要があります。
[ バインドのプロパティ ] タブをクリックし、ターゲットにする操作に必要なバインド プロパティ (ある場合) の値を指定します。 このチュートリアルでは、BAPI_SALESORDER_GETLIST RFC を呼び出して、特定の顧客の販売注文の一覧を取得します。 販売注文情報には、日付列も含まれる場合があります。 日付列の値を取得する場合は、メタデータの生成時に EnableSafeTyping バインド プロパティを True に設定することをお勧めします。 このプロパティが設定されている場合、SAP DATS データ型は文字列として表示されます。
SAP データ型を同等の .NET 型にマップする方法の詳細については、「 基本的な SAP データ型」を参照してください。
バインド プロパティの詳細については、「 BizTalk Adapter for mySAP Business Suite のバインド プロパティについて」を参照してください。
[ OK] をクリックし、[ 接続] をクリックします。 接続が確立されると、接続の状態が [接続済み] と表示されます。
[操作の選択] ページの [ コントラクトの種類の選択 ] の一覧で、[ クライアント (送信操作)] をクリックします。
[ カテゴリの選択 ] ボックスで、SAP 成果物の種類を展開します。 たとえば、 RFC ノードを展開して、WCF サービスを生成する RFC を含む機能グループを確認します。
[ 利用可能なカテゴリと操作 ] ボックスで、WCF サービスを生成する操作を選択し、[ 追加] をクリックします。 選択した操作が [追加された カテゴリと操作 ] ボックスに一覧表示されます。
Note
成果物ごとに複数の操作を追加できます。 また、さまざまな SAP 成果物に対する操作を追加することもできます。 たとえば、RFC に対して 1 つの操作を追加し、もう 1 つの操作を IDOC に追加できます。 さらに、検索式でワイルドカード文字を指定することで、特定の操作を検索できます。 サポートされている特殊文字と、操作を検索できるノード レベルの詳細については、「アダプター メタデータの追加ウィザードを使用した Visual Studio での SAP への接続」を参照してください。
この例では、SD_RFC_CUSTOMER_GET RFC と BAPI_SALESORDER_GETLIST RFC が追加されます。
Note
SAP システムの一部のバージョンでは、SD_RFC_CUSTOMER_GETではなくRFC_CUSTOMER_GET RFC が公開されています。
を選択します
[操作の選択] ページで、[ 次へ] をクリックします。
[サービスとエンドポイントの動作の構成] ページで、サービスとエンドポイントの動作を構成する値を指定します。
[ サービス動作の構成 ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する EnableMetadataExchange メタデータ交換エンドポイントを作成するには、これを True に 設定します。 これを True に設定すると、WS-Metadata Exchange (MEX) や HTTP/GET 要求などの標準化されたプロトコルを使用してサービス メタデータを使用できるようになります。
既定値は False です。IncludeExceptionDetailsinFault デバッグ目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるには、これを True に 設定します。 既定値は False です。 名前 サービス動作構成の名前。 UseServiceCertificate WCF のメッセージ レベル セキュリティ モードを使用するかどうかを指定します。 既定値は True です。
このチュートリアルでは、これを False に設定する必要があります。FindValue X.509 証明書ストアで検索する値を指定する文字列。
メモ:UseServiceCertificate が True に設定されている場合にのみ、このプロパティの値を指定します。StoreLocation サービスがクライアントの証明書の検証に使用できる証明書ストアの場所を示す 値です。
メモ:UseServiceCertificate が True に設定されている場合にのみ、このプロパティの値を指定します。StoreName 開く X.509 証明書ストアの名前。
メモ:UseServiceCertificate が True に設定されている場合にのみ、このプロパティの値を指定します。X509FindType 実行する X.509 検索の種類。
メモ:UseServiceCertificate が True に設定されている場合にのみ、このプロパティの値を指定します。Note
証明書と関連するプロパティの詳細については、 の「X509ClientCertificateCredentialsElement プロパティ」 https://go.microsoft.com/fwlink/?LinkId=103771を参照してください。
[ エンドポイント動作の構成 ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する 認証の種類 - WCF サービスを使用するときにクライアントがユーザー名とパスワードを指定できるようにするには、これを ClientCredentialUserNamePassword に設定します。
- クライアントが HTTP ヘッダーの一部としてユーザー名とパスワードを指定できるようにするには、これを HTTPUserNamePassword に設定します。
- 最初にクライアントが ClientCredential インターフェイスを介して資格情報を指定できるようにするには、これを [自動] に設定します。 これが失敗した場合、クライアントは HTTP ヘッダーの一部として資格情報を渡すことができます。
既定値は Auto です。Microsoft Office SharePoint Server で WCF サービスを使用するには、これを HTTPUserNamePassword に設定する必要があります。名前 エンドポイント動作構成の名前を指定します。 UsernameHeader ユーザー名ヘッダーの名前。 この例では、 MyUserHeader を指定します。 HTTP ヘッダーの詳細については、「カスタム HTTP ヘッダーと SOAP ヘッダーのサポート」 https://go.microsoft.com/fwlink/?LinkId=106692を参照してください。
メモ:認証の種類が HTTPUserNamePassword に設定されている場合は、このプロパティの値を指定する必要があります。 [認証の種類] が [自動] に設定されている場合、このプロパティは省略可能です。PasswordHeader パスワード ヘッダーの名前。 この例では、 MyPassHeader を指定します。 HTTP ヘッダーの詳細については、「カスタム HTTP ヘッダーと SOAP ヘッダーのサポート」 https://go.microsoft.com/fwlink/?LinkId=106692を参照してください。
メモ:認証の種類が HTTPUserNamePassword に設定されている場合は、このプロパティの値を指定する必要があります。 [認証の種類] が [自動] に設定されている場合、このプロパティは省略可能です。次の図は、指定した値を持つ [サービスとエンドポイントの動作の構成] ページを示しています。
[サービスとエンドポイントの動作の構成] ページで、[ 次へ] をクリックします。
[サービス エンドポイントのバインドとアドレスの構成] ページの [構成するコントラクトの選択 ] ボックスに、[操作の選択] ページで操作を選択した SAP 成果物が一覧表示されます。
たとえば、[RFC] と [IDOC] で成果物を選択した場合、[ 構成するコントラクトの選択] には RFC と IDOC の両方が一覧表示されます。 RFC のみを選択した場合、ボックスには RFC のみが一覧表示されます。
選択したコントラクト ボックスの下の [操作] には、成果物ごとに選択した操作が [操作の選択] ページに表示されます。
[ コントラクトのアドレスとバインドを構成する ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する バインド構成 ウィザードでは、基本的な HTTP バインドのみがサポートされます。 そのため、バインド構成フィールドは System.ServiceModel.Configuration.BasicHttpBindingElement に自動的に設定されます。
省略記号ボタン (...) をクリックして、HTTP バインドのプロパティを変更します。 セキュリティで保護された通信チャネルを使用するには、常に Mode プロパティを Transport に設定する必要があります。 ウィザードは、 Mode プロパティの既定値を トランスポートとして設定します。
公開されているその他のバインディングの詳細については、「BasicHttpBindingElement メンバー」 https://go.microsoft.com/fwlink/?LinkId=103773を参照してください。エンドポイント名 コントラクトのエンドポイント名を指定します。 このページの他のフィールドは、前のページで指定した値に基づいて自動的に設定されます。
[Apply] をクリックします。 [構成するコントラクトの選択] ボックスに表示されるすべての コントラクト に対して、この手順を実行します。
Note
このページで値を指定しない場合は、すべてのコントラクトで既定値が受け入れられます。
次の図は、指定した値を持つ [サービス エンドポイント のバインドとアドレスの構成] ページを示しています。
の構成
[サービス エンドポイントのバインドとアドレスの構成] ページで、[ 次へ] をクリックします。 [概要] ページには、SAP 成果物のツリー構造と、その下に各成果物に対して選択された操作が一覧表示されます。
概要を確認し、[完了] をクリック します。
ウィザードは WCF サービスを作成し、次のファイルを Visual Studio プロジェクトに追加します。
.svc ファイル。 これは WCF サービス ファイルです。 ウィザードでは、コントラクトごとに 1 つのファイルが生成されます。
Web.config ファイル。
サービス コード (.cs ファイル)
WCF サービスを発行します。
インターネット インフォメーション サービス (IIS) で SSL が有効になっていることを確認します。 IIS の SSL を有効にする方法については、「」を参照してください https://go.microsoft.com/fwlink/?LinkId=197170。
ソリューション エクスプローラーでプロジェクトを右クリックし、[発行] をクリックします。
[ Web の発行 ] ダイアログ ボックスで、WCF サービスの URL を指定します。 次に例を示します。
https://<computer_name>/Customer_Order/
[ コピー ] ボックスで、[ すべてのプロジェクト ファイル] をクリックします。
[発行] をクリックします。
WCF サービスが正常に発行されたことを確認します。
IIS Microsoft 管理コンソールを起動します。 [ スタート] をクリックして [ 管理ツール] をポイントし、[ インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
サービスを発行したノードに移動します。 Customer_Order サービスの場合は、[インターネット インフォメーション サービス><] [コンピューター名>>] [Web サイト] [既定の Web サイト>>Customer_Order] の順に移動します。
右側のウィンドウで、Rfc.svc ファイルを右クリックし、[ 参照] をクリックします。
Web ページには、WSDL を取得するための URL が表示されます。 svcutil コマンドを使用してメタデータの取得をテストすることもできます。 たとえば、Customer_Order サービスのメタデータを取得するコマンドは次のとおりです。
svcutil.exe https://<computer_name>/Customer_Order/Rfc.svc?wsdl
次の手順
SAP 成果物のアプリケーション定義ファイルを作成するには、ビジネス Data Catalog定義エディターを使用します。 手順については、「 手順 2: SAP Artifacts のアプリケーション定義ファイルを作成する 」を参照してください。 アプリケーション定義ファイルは、LOB データが格納される場所と、それが格納される形式を識別します。