使用 WCF 服务模型调用 Oracle 电子商务套件中的请求集

Microsoft用于 Oracle 电子商务套件的 BizTalk 适配器使你可以在 Oracle E-Business Suite 中执行请求集。 请求集分为一个或多个阶段,每个阶段包含一组报表和并发程序。 有关适配器如何支持请求集的详细信息,请参阅 请求集上的操作

WCF 客户端类

下表中列出了为调用 Oracle E-Business 适配器请求集而生成的 WCF 客户端的名称。

项目 WCF 客户端名称
请求集 RequestSets_[APP_NAME]Client

[APP_NAME] = Oracle E-Business Suite 应用程序的实际名称;例如,SQLAP。

调用请求集的方法签名

下表显示了请求集的方法签名。

操作 方法签名
请求集 公开<返回类型><请求集合名称>(参数 1,参数 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 E-Business Suite 适配器的 WCF 服务模型概述中介绍。 本部分介绍如何创建 WCF 客户端以调用 reqset_singlestage 请求集。

创建 WCF 客户端

  1. 在 Visual Studio 中创建 Visual C# 项目。 对于本主题,请创建控制台应用程序。

  2. reqset_singlestage 请求集生成 WCF 客户端类。 有关生成 WCF 客户端类的详细信息,请参阅 为 Oracle E-Business Suite 解决方案项目生成 WCF 客户端或 WCF 服务协定

    重要

    在生成 WCF 客户端类之前,请确保将 EnableBizTalkCompatibilityMode 绑定属性设置为 false。

  3. 在解决方案资源管理器中,添加对 Microsoft.Adapters.OracleEBSMicrosoft.ServiceModel.Channels的引用。

  4. 打开Program.cs文件并添加以下命名空间:

    • Microsoft.Adapters.OracleEBS

    • System.ServiceModel

  5. 打开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 配置客户端绑定

  6. 设置客户端的凭据。

    client.ClientCredentials.UserName.UserName = "myuser";  
    client.ClientCredentials.UserName.Password = "mypassword";  
    
  7. 由于在 Oracle E-Business Suite 应用程序中调用请求集,因此必须设置应用程序上下文。 在此示例中,若要设置应用程序上下文,请指定 OracleUserNameOraclePasswordOracleEBSResponsibilityName 绑定属性。 有关应用程序上下文的详细信息,请参阅 “设置应用程序上下文”。

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  8. 按以下代码片段中所述打开客户端:

    try  
    {  
       Console.WriteLine("Opening Client...");  
       client.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
  9. 调用 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;  
    }  
    
  10. 按以下代码片段中所述关闭客户端:

    client.Close();  
    
  11. 生成项目,然后运行它。 应用程序调用 reqset_singlestage 请求集,并返回写入控制台的请求 ID。

另请参阅

使用 WCF 服务模型开发 Oracle 电子商务套件应用程序