使用 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 用戶端
在 Visual Studio 中建立 Visual C# 專案。 針對本主題,建立主控台應用程式。
產生 reqset_singlestage 要求集的 WCF 用戶端類別。 如需產生 WCF 用戶端類別的詳細資訊,請參閱 產生 WCF 用戶端或 Oracle E-Business Suite 解決方案成品的 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 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 要求集,並傳回寫入主控台的要求識別碼。