共用方式為


使用 WCF 服務模型在 Oracle E-Business Suite 中叫用要求集

Microsoft BizTalk Adapter for Oracle E-Business Suite 可讓您在 Oracle E-Business Suite 中執行要求集。 要求集分成一或多個階段,而每個階段都包含一組報表和並行程式。 如需配接器如何支援要求集的詳細資訊,請參閱 要求集上的作業

WCF 用戶端類別

下表列出由 Oracle E-Business 配接器叫用要求集所產生的 WCF 用戶端名稱。

成品 WCF 用戶端名稱
要求集 RequestSets_[APP_NAME]Client

[APP_NAME] = Oracle E-Business Suite 應用程式的實際名稱;例如,SQLAP。

叫用要求集的方法簽章

下表顯示要求集的方法簽章。

作業 方法簽章
要求集 public < return type >< request set name > (param 1, param 2, ...)

例如,下列程式碼顯示針對 reqset_singlestage 要求集產生的 WCF 用戶端類別的方法簽章。

注意

這是自訂要求集,可能無法在 Oracle E-Business 解決方案實例上使用。

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 服務模型概觀中所述的一組工作。 本節說明如何建立 WCF 用戶端以叫用 reqset_singlestage 要求集。

建立 WCF 用戶端

  1. 在 Visual Studio 中建立 Visual C# 專案。 針對本主題,建立主控台應用程式。

  2. 產生 reqset_singlestage 要求集的 WCF 用戶端類別。 如需產生 WCF 用戶端類別的詳細資訊,請參閱 產生 WCF 用戶端或 Oracle E-Business Suite 解決方案成品的 WCF 服務合約

    重要

    產生 WCF 用戶端類別之前,請確定您已將 EnableBizTalkCompatibilityMode 系結屬性設定為 false。

  3. 在方案總管中,新增 和 Microsoft.ServiceModel.ChannelsMicrosoft.Adapters.OracleEBS 參考。

  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 要求集,並傳回寫入主控台的要求識別碼。

另請參閱

使用 WCF 服務模型開發 Oracle E-Business Suite 應用程式