使用 WCF 服务模型在 Oracle E-Business Suite 中调用请求集
Microsoft BizTalk Adapter for Oracle E-Business Suite 使你能够在 Oracle E-Business Suite 中执行请求集。 请求集分为一个或多个阶段,每个阶段包含一组报告和并发程序。 有关适配器如何支持请求集的详细信息,请参阅 对请求集的操作。
WCF 客户端类
下表列出了为调用 Oracle 电子商务适配器的请求集而生成的 WCF 客户端的名称。
项目 | WCF 客户端名称 |
---|---|
请求集 | RequestSets_[APP_NAME]客户端 |
[APP_NAME] = Oracle 电子商务套件应用程序的实际名称;例如 SQLAP。
用于调用请求集的方法签名
下表显示了请求集的方法签名。
操作 | 方法签名 |
---|---|
请求集 | 公共 <返回类型><请求集名称> (param 1、param 2、...) |
例如,以下代码显示了为 reqset_singlestage 请求集生成的 WCF 客户端类的方法签名。
注意
这是一个自定义请求集,在 Oracle 电子商务解决方案实例上可能不可用。
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 电子商务套件上执行操作所需的通用操作集涉及 使用 Oracle 电子商务套件适配器的 WCF 服务模型概述中所述的一组任务。 本部分介绍如何创建 WCF 客户端以调用 reqset_singlestage 请求集。
创建 WCF 客户端
在 Visual Studio 中创建 Visual C# 项目。 对于本主题,请创建控制台应用程序。
为 reqset_singlestage 请求集生成 WCF 客户端类。 有关生成 WCF 客户端类的详细信息,请参阅 为 Oracle 电子商务套件解决方案项目生成 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 客户端。 此文件由添加适配器服务引用插件生成。注意
在此代码片段中,在应用程序代码中显式指定绑定和终结点地址。 还可以从应用程序配置文件(app.config)使用这些值,这些值也由添加适配器服务引用插件生成。 有关指定客户端绑定的不同方法的详细信息,请参阅 为 Oracle E-Business Suite 配置客户端绑定。
设置客户端的凭据。
client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword";
由于在 Oracle 电子商务套件应用程序中调用请求集,因此必须设置应用程序上下文。 在此示例中,若要设置应用程序上下文,请指定 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。