WCF サービス モデルを使用して Oracle E-Business Suite で要求セットを呼び出す
Microsoft BizTalk Adapter for Oracle E-Business Suite を使用すると、Oracle E-Business Suite で要求セットを実行できます。 要求セットは 1 つ以上のステージに分割され、各ステージには一連のレポートと同時プログラムが含まれます。 アダプターが要求セットをサポートする方法の詳細については、「要求セット に対する操作」を参照してください。
WCF クライアント クラス
Oracle E-Business アダプターによって要求セットを呼び出すための WCF クライアントの名前を次の表に示します。
アーティファクト | WCF クライアント名 |
---|---|
要求セット | RequestSets_[APP_NAME]クライアント |
[APP_NAME] = Oracle E-Business Suite アプリケーションの実際の名前。たとえば、SQLAP です。
要求セットを呼び出すためのメソッド シグネチャ
次の表は、要求セットのメソッド シグネチャを示しています。
操作 | メソッド シグネチャ |
---|---|
要求セット | public <return type><request set name>(param 1, param 2, ...) |
例として、次のコードは、 reqset_singlestage 要求セットに対して生成された WCF クライアント クラスのメソッド シグネチャを示しています。
Note
これはカスタム要求セットであり、Oracle E-Business Solution インスタンスでは使用できない場合があります。
public partial class RequestSets_SQLAPClient : System.ServiceModel.ClientBase<RequestSets_SQLAP>, RequestSets_SQLAP{
public string REQSTG(
schemas.microsoft.com.OracleEBS._2008._05.Options.SetRelClassOptions SetRelClassOptions,
schemas.microsoft.com.OracleEBS._2008._05.Options.SetPrintOptions SetPrintOptions,
schemas.microsoft.com.OracleEBS._2008._05.Options.SetRepeatOptions SetRepeatOptions,
schemas.microsoft.com.OracleEBS._2008._05.Options.SetNlsOptions SetNlsOptions,
string StartTime,
schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1 set1_set1);
}
このスニペットでは、 RequestSets_SQLAPClient は、アダプター サービス参照の追加プラグインによって生成された OracleEBSBindingClient.cs の WCF クラスの名前です。 REQSTG は、要求セットを呼び出すメソッドの名前です。
要求セットを呼び出す WCF クライアントの作成
WCF クライアントを使用して Oracle E-Business Suite で操作を実行するために必要な一連の一般的なアクションには、「 Oracle E-Business Suite アダプターを使用した WCF サービス モデルの概要」で説明されている一連のタスクが含まれます。 このセクションでは、 reqset_singlestage 要求セットを呼び出す WCF クライアントを作成する方法について説明します。
WCF クライアントを作成するには
Visual Studio で Visual C# プロジェクトを作成します。 このトピックでは、コンソール アプリケーションを作成します。
reqset_singlestage要求セットの WCF クライアント クラス を 生成します。 WCF クライアント クラスの生成の詳細については、「 Oracle E-Business Suite ソリューション成果物の WCF クライアントまたは WCF サービス コントラクトを生成する」を参照してください。
重要
WCF クライアント クラスを生成する前に、 EnableBizTalkCompatibilityMode バインド プロパティを false に設定してください。
ソリューション エクスプローラーで、 と
Microsoft.ServiceModel.Channels
への参照をMicrosoft.Adapters.OracleEBS
追加します。Program.cs ファイルを開き、次の名前空間を追加します。
Microsoft.Adapters.OracleEBS
System.ServiceModel
Program.cs ファイルを開き、次のスニペットで説明するようにクライアントを作成します。
OracleEBSBinding binding = new OracleEBSBinding(); EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name"); RequestSets_SQLAPClient client = new RequestSets_SQLAPClient(binding, address);
このスニペットでは、
RequestSets_SQLAPClient
は OracleEBSBindingClient.cs で定義されている WCF クライアントです。 このファイルは、アダプター サービス参照の追加プラグインによって生成されます。Note
このスニペットでは、アプリケーション コードでバインディングとエンドポイント アドレスを明示的に指定します。 これらの値は、アダプター サービス参照の追加プラグインによって生成されたアプリケーション構成ファイル app.config からも使用できます。 クライアント バインドを指定するさまざまな方法の詳細については、「 Oracle E-Business Suite のクライアント バインドを構成する」を参照してください。
クライアントの資格情報を設定します。
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
Oracle E-Business Suite アプリケーションで要求セットを呼び出す場合は、アプリケーション コンテキストを設定する必要があります。 この例では、アプリケーション コンテキストを設定するために、 OracleUserName、 OraclePassword、 および OracleEBSResponsibilityName バインド プロパティを指定します。 アプリケーション コンテキストの詳細については、「アプリケーション コンテキストを 設定する」を参照してください。
binding.OracleUserName = "myOracleEBSUserName"; binding.OraclePassword = "myOracleEBSPassword"; binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";
次のスニペットで説明されているように、クライアントを開きます。
try { Console.WriteLine("Opening Client..."); client.Open(); } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); throw; }
reqset_singlestage要求セット を 呼び出します。
string RequestID; schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1 param = new schemas.microsoft.com.OracleEBS._2008._05.RequestSetStage.SQLAP.REQSTG.set1(); param.INSPARAMPROG = new schemas.microsoft.com.OracleEBS._2008._05.RequestSetConcurrentProgram.SQLAP.REQSTG.set1.SQLAP1.INSPARAMPROG(); param.INSPARAMPROG.p_id = "123"; param.INSPARAMPROG.p_name = "MyName"; try { Console.WriteLine("Invoking the reqset_singlestage request set"); RequestID = client.REQSTG(null, null, null, null, null, param); Console.WriteLine("The request ID generated for the request set is : " + RequestID); Console.WriteLine("*****************************************************************"); Console.WriteLine("\nHit <RETURN> to end"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Exception : " + ex); throw; }
次のスニペットで説明されているように、クライアントを閉じます。
client.Close();
プロジェクトをビルドし、実行します。 アプリケーションは 、reqset_singlestage 要求セットを呼び出し、コンソールに書き込まれる要求 ID を返します。