手順 1: Oracle E-Business Adapter を使用して WCF サービスを作成して発行する
完了までの時間: 15 分
目的: WCF LOB アダプター サービス開発ウィザードを使用すると、インターネット インフォメーション サービス (IIS) や Windows プロセス アクティブ化サービス (WAS) などのホスティング環境でホストできる ORACLE E-Business Suite 成果物から WCF サービスを生成できます。 このトピックでは、ウィザードを使用して WCF サービス ファイルを生成する方法について説明します。
前提条件
ウィザードを実行する前に、次のコマンドをインストールします。
Microsoft Windows Communication Foundation (WCF) 基幹業務 (LOB) アダプター SDK の場合は、[ 完了 ] オプションまたは [カスタム ] オプション (このオプション内の [ツール ] を選択)。 これにより、アダプター サービス開発ウィザード用の Visual Studio テンプレートがインストールされます。
BizTalk アダプター パックの Microsoft BizTalk Adapter for Oracle E-Business Suite。
これらの前提条件の詳細については、「BizTalk アダプター パックのインストール ガイド」を参照してください。 インストール ガイドは通常、インストール ドライブ>:\Program Files\Microsoft BizTalk Adapter Pack\Documents に<インストールされます。
Note
また、Microsoft Office SharePoint Server サンプルに付属の create_apps_artifacts.sql スクリプトを実行して、アプリケーション オブジェクト ライブラリ アプリケーションにMS_SAMPLE_EMPLOYEE インターフェイス テーブルを作成する必要があります。 このチュートリアルでは、このインターフェイス テーブルを使用します。
Oracle E-Business Artifact での操作用の WCF サービスを作成する
このセクションでは、MS_SAMPLE EMPLOYEE インターフェイス テーブルで Select 操作用の WCF サービスを作成する手順について説明します。
MS_SAMPLE EMPLOYEE インターフェイス テーブルで選択操作用の WCF サービスを作成するには
Visual Studio を起動し、プロジェクトを作成します。
[ 新しいプロジェクト ] ダイアログ ボックスの [ プロジェクトの種類 ] ウィンドウで、[ Visual C#] を選択します。 [テンプレート] ウィンドウ で 、[ WCF アダプター サービス] を選択します。
または、[ プロジェクトの種類 ] ウィンドウで [ Visual C#] を展開し、[ Web] を選択します。 [テンプレート] ウィンドウ で 、[ WCF アダプター サービス] を選択します。
Note
Web 開発コンポーネントと共にVisual Studio 2013をインストールした場合は、[新しい Web サイト] オプション ([ファイル>] [新しい>Web サイト] ) からも WCF アダプター サービス テンプレートを使用できます。
ただし、Oracle E-Business アダプターは、ファイル システム上に作成された Web サイトのみをサポートします。 そのため、[新しい Web サイト] ダイアログ ボックスで Web サイトを作成するときに、[場所] ボックスの一覧で [ファイル システム] をクリックする必要があります。
ソリューションの名前と場所を指定し、[OK] をクリック します。 WCF アダプター サービス開発ウィザードが起動します。
[ようこそ] ページで [次へ] をクリックします。
[操作の選択] ページで、Oracle E-Business Suite に接続する接続文字列を指定します。 そのためには次を行います。
[ バインドの選択 ] ボックスの一覧で [ oracleEBSBinding] をクリックし、[ 構成] をクリックします。
[ アダプターの構成 ] ダイアログ ボックスで、[ バインドのプロパティ ] タブをクリックします。
[ 全般 ] カテゴリの [ClientCredentialType ] バインディング プロパティで、[ EBusiness] を選択します。
OracleEBS カテゴリで、OracleUserName、OraclePassword、OracleEBSResponsibilityName バインド プロパティに適切な値を指定します。 この場合は、 OracleUserName および OraclePassword バインド プロパティのデータベース資格情報を指定する必要があります。
[ メタデータ ] カテゴリの [EnableSafeTyping バインド] プロパティで、[ True] を選択します。 日付列の値を取得する場合は、メタデータの生成時に EnableSafeTyping バインド プロパティを True に設定することをお勧めします。
[ URI のプロパティ ] タブをクリックし、接続パラメーターの値を指定します。 Oracle E-Business アダプターの接続 URI の詳細については、「 Oracle E-Business Suite 接続 URI を作成する」を参照してください。
[ セキュリティ ] タブをクリックし、[ クライアント資格情報の種類 ] の一覧で [ ユーザー名] を選択します。 Oracle E-Business Suite に接続するための有効な Oracle E-Business Suite ユーザー名とパスワードを指定します。
[ OK] をクリックして [アダプターの構成] ダイアログ ボックスを閉じ、[ 接続] をクリックします。 Visual Studio が Oracle E-Business Suite との接続を正常に確立すると、接続状態が [接続済み] と表示されます。 Oracle E-Business Suite メタデータが [操作の選択] ページに表示されるのも確認できます。
[操作の選択] ページの [ コントラクトの種類の選択 ] の一覧で、[ クライアント (送信操作)] をクリックします。
[ カテゴリの選択 ] ボックスで、アプリケーション オブジェクト ライブラリ アプリケーションのMS_SAMPLE_EMPLOYEE インターフェイス テーブルを参照します。 アダプターで成果物を参照する方法については、「 Oracle E-Business Operations のメタデータの参照、検索、および取得」を参照してください。
[ 利用可能なカテゴリと操作 ] ボックスで、[ 選択 ] 操作を選択し、[ 追加] をクリックします。 [選択] 操作が [ 追加されたカテゴリと操作 ] ボックスに追加されます。
Note
成果物ごとに複数の操作を追加できます。 また、さまざまな Oracle E-Business Suite 成果物に対する操作を追加することもできます。 たとえば、インターフェイス テーブルに対して 1 つの操作を追加し、同時実行プログラムに対してもう 1 つの操作を追加できます。 さらに、検索式でワイルドカード文字を指定することで、特定の操作を検索できます。 サポートされている特殊文字と、操作を検索できるノード レベルの詳細については、「 Oracle E-Business Suite 操作の検索」を参照してください。
[操作の選択] ページで、[ 次へ] をクリックします。
[サービスとエンドポイントの動作の構成] ページで、サービスとエンドポイントの動作を構成する値を指定します。
[ サービス動作の構成 ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する EnableMetadataExchange メタデータ交換エンドポイントを作成するには、これを True に 設定します。 これを True に設定すると、WS-Metadata Exchange (MEX) や HTTP/GET 要求などの標準化されたプロトコルを使用してサービス メタデータを使用できるようになります。 既定値は False です。 IncludeExceptionDetailsinFault デバッグ目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるには、これを True に 設定します。 既定値は False です。 名前 サービス動作構成の名前。 このチュートリアルでは、「 customServiceBehavior」と入力します。 UseServiceCertificate WCF のメッセージ レベル セキュリティ モードを使用するかどうかを指定します。 既定値は True です。 このチュートリアルでは、これを False に設定する必要があります。 Note
このチュートリアルではサービス証明書を使用していないため、FindValue、StoreLocation、StoreName、X509FindType プロパティの値を指定する必要はありません。 証明書と関連するプロパティの詳細については、 の「X509ClientCertificateCredentialsElement プロパティ」 https://go.microsoft.com/fwlink/?LinkId=103771を参照してください。
[ エンドポイント動作の構成 ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する 認証の種類 Microsoft Office SharePoint Server で WCF サービスを使用するには、これを HTTPUserNamePassword に設定する必要があります。 これにより、クライアントは HTTP ヘッダーの一部としてユーザー名とパスワードを指定できます。 名前 エンドポイント動作構成の名前を指定します。 このチュートリアルでは、「 customEndpointBehavior」と入力します。 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 に設定されている場合は、このプロパティの値を指定する必要があります。 [認証の種類] が [自動] に設定されている場合、このプロパティは省略可能です。 次の図は、指定された値を持つ [サービスとエンドポイントの動作の構成] ページを示しています。
[サービスとエンドポイントの動作の構成] ページで、[ 次へ] をクリックします。
[サービス エンドポイントのバインドとアドレスの構成] ページの [構成するコントラクトの選択] には、構成した成果物 (MS_SAMPLE_EMPLOYEE) が表示されます。 選択したコントラクト ボックスの [操作] には、[操作の選択] ページで成果物に対して選択した選択操作が表示されます。
[ コントラクトのアドレスとバインドを構成する ] ボックスで、次の値を指定します。
プロパティの場合 値を指定する バインド構成 ウィザードでは、基本的な HTTP バインディングのみがサポートされます。 そのため、バインド構成フィールドは System.ServiceModel.Configuration.BasicHttpBindingElement に自動的に設定されます。
省略記号ボタン (...) をクリックして、HTTP バインディングのプロパティを変更します。 セキュリティで保護された通信チャネルを使用するには、常に Mode プロパティを Transport に設定する必要があります。 ウィザードは 、Mode プロパティの既定値を トランスポートとして設定します。
公開されているその他のバインドの詳細については、 の「BasicHttpBindingElement メンバー」 https://go.microsoft.com/fwlink/?LinkId=103773を参照してください。エンドポイント名 コントラクトのエンドポイント名を指定します。 このページの他のフィールドは、前のページで指定した値に基づいて自動的に設定されます。
[適用] をクリックします。
注意
このページで値を指定しない場合は、すべてのコントラクトで既定値が受け入れられます。
次の図は、指定した値を持つ [サービス エンドポイント のバインドとアドレスの構成] ページを示しています。
の構成
[サービス エンドポイントのバインドとアドレスの構成] ページで、[ 次へ] をクリックします。 [概要] ページには、Oracle E-Business Suite 成果物のツリー構造と、成果物に対して選択された操作が一覧表示されます。
概要を確認し、[完了] をクリック します。
ウィザードによって WCF サービスが作成され、次のファイルが Visual Studio プロジェクトに追加されます。
.svc ファイル。 これは WCF サービス ファイルです。 ウィザードでは、コントラクトごとに 1 つのファイルが生成されます。
Web.config ファイル。
サービス コード (.cs ファイル)
.cs ファイルを変更する
Oracle E-Business アダプターを使用して Oracle E-Business Suite 成果物からサービスを作成し、Microsoft Office SharePoint Server のビジネス データ リスト Web パーツからサービスを使用する場合は、WHERE 句で始まる完全なフィルター句を指定する必要があります。 たとえば、"John" という名前の従業員を検索する場合は、ビジネス データ リスト Web パーツで次のフィルター句を指定する必要があります。
where NAME like ‘JOHN’
ただし、ユーザーがフィルター句全体を実際に言及せずにフィルター句の入力としてのみ名前を指定する場合は、Microsoft Office SharePoint Server のビジネス データ リスト Web パーツから取り込まれるフィルター句を WHERE 句形式で Oracle E-Business に渡すように変更するコードを .cs ファイルに追加できます。
たとえば、このチュートリアルの場合、ユーザーが Microsoft Office SharePoint Server のビジネス データ リスト Web パーツに従業員名を入力し、その従業員のレコードを取得する場合は、.cs ファイルに次のコードを追加できます。
SelectResponse InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.Select(SelectRequest request)
{
request.FILTER = "where NAME like '" + request.FILTER + "'"; // The code to avoid the users from specifying the WHERE clause in the filter from Business Data List Web Part.
return base.Channel.Select(request);
}
WCF サービスを発行する
IIS で SSL が有効になっていることを確認します。 IIS の SSL を有効にする方法については、「」を参照してください https://go.microsoft.com/fwlink/?LinkId=197170。
WCF サービスを発行するには:
ソリューション エクスプローラーでプロジェクトを右クリックし、[発行] をクリックします。
[ Web の発行 ] ダイアログ ボックスで、WCF サービスの URL を指定します。 次に例を示します。
https://<COMPUTER_NAME>:<PORT_NUMBER>/MS_SAMPLE_EMPLOYEE/
Note
WCF サービスを SSL 対応の場所に発行する必要があります。 つまり、[ ターゲットの場所 ] ボックスの値は "https://" で始まる必要があります。 ユーザー資格情報は HTTP ヘッダーで渡されるため、ウィザードは、SSL 暗号化を意味するセキュリティ モードとして "トランスポート" を使用するようにアダプターのバインド動作を自動的に構成しました。 もちろん、戻って web.config ファイルを編集してセキュリティ モード> パラメーターの<値を変更することもできますが、HTTP ヘッダーのクリア テキストで機密情報を転送する場合は、SSL を使用する方が常に適したオプションです。
[ コピー ] ボックスで、[ すべてのプロジェクト ファイル] をクリックします。
[発行] をクリックします。
WCF サービスが正常に発行されたことを確認します。
IIS Microsoft 管理コンソールを起動します。 [ スタート] をクリックして [ 管理ツール] をポイントし、[ インターネット インフォメーション サービス (IIS) マネージャー] をクリックします。
サービスを発行したノードに移動します。 MS_SAMPLE_EMPLOYEE サービスの場合は、[インターネット インフォメーション サービス><] [コンピューター名>>] [Web サイト] [既定の Web サイト>>] MS_SAMPLE_EMPLOYEEに移動します。
右側のウィンドウで、InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.svc ファイルを右クリックし、[ 参照] をクリックします。
Web ページに、WSDL を取得するための URL が表示されます。 svcutil コマンドを使用してメタデータの取得をテストすることもできます。 たとえば、MS_SAMPLE_EMPLOYEE サービスのメタデータを取得するコマンドは次のとおりです。
svcutil.exe https://<COMPUTER_NAME>:<PORT_NUMBER>/MS_SAMPLE_EMPLOYEE/InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.svc?wsdl
次の手順
Oracle E-Business Suite 成果物のアプリケーション定義ファイルを作成するには、ビジネス Data Catalog定義エディターを使用します。 手順については、「 手順 2: Oracle E-Business Suite Artifacts のアプリケーション定義ファイルを作成する」を参照してください。 アプリケーション定義ファイルは、LOB データが格納される場所と、そのデータが格納される形式を識別します。