共用方式為


使用WCF 通道模型,在 Oracle E-Business Suite 中的介面數據表上執行插入作業

Oracle E-Business 配接器會探索 Oracle E-Business Suite 介面數據表上的一組插入、選取、更新和刪除作業。 藉由使用這些作業,您可以在目標介面數據表上執行由 Where 子句限定的簡單 Insert、Select、Update 和 Delete 語句。 本主題提供如何使用 WCF 通道模型在介面數據表上執行插入作業的指示。

如需配接器如何支援這些作業的詳細資訊,請參閱 介面數據表和介面檢視上的作業。 如需如何使用 WCF 通道模型在 Oracle E-Business Suite 上執行作業的詳細資訊,請參閱 使用 Oracle E-Business Suite 配接器的 WCF 通道模型概觀

關於本主題中使用的範例

本主題中的範例會在 MS_SAMPLE_EMPLOYEE 介面數據表上執行作業。 數據表是藉由執行範例所提供的腳本來建立。 如需範例的詳細資訊,請參閱 Oracle EBS 配接器的範例。 此範例 InsertOperation 是根據本主題製作,並隨同 Oracle E-Business 配接器範例一起提供。

插入的訊息

若要使用 WCF 通道模型在 Oracle E-Business Suite 上執行作業,您必須擁有作業特有的要求訊息。 在MS_SAMPLE_EMPLOYEE介面資料表上執行 Insert 作業的要求訊息如下所示:

<Insert xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
  <RECORDSET>  
    <InsertRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/APPS/MS_SAMPLE_EMPLOYEE">  
      <EMP_NO>10050</EMP_NO>  
      <NAME>John Smith</NAME>  
      <DESIGNATION>Manager</DESIGNATION>  
      <SALARY>500000</SALARY>  
      <JOIN_DATE>1999-05-31</JOIN_DATE>  
    </InsertRecord>  
  </RECORDSET>  
</Insert>  

此要求訊息會插入具有下列詳細資料的記錄:

Employee Number = 10050  
Name = Tom Smith  
Designation = Manager  
Salary = 500000  

您必須將訊息複製到檔案,例如 InsertRequest.xml。 此範例會使用此檔案,以使用 Oracle E-Business 配接器將要求訊息傳送至 Oracle E-Business Suite。 如需數據表上作業之訊息架構的詳細資訊,請參閱 插入、更新、刪除和選取作業的訊息架構

建立 WCF 通道應用程式

本節提供如何建立 WCF 通道應用程式的指示,以在MS_SAMPLE_EMPLOYEE介面數據表上執行 Insert 作業。

要建立 WCF 通道應用程式,以將記錄插入資料表

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

  2. 在 [方案總管] 中,新增 Microsoft.Adapters.OracleEBSMicrosoft.ServiceModel.ChannelsSystem.ServiceModelSystem.Runtime.Serialization 的參考。

  3. 開啟Program.cs檔案,並新增下列命名空間:

    • Microsoft.Adapters.OracleEBS

    • Microsoft.ServiceModel.Channels

    • System.ServiceModel

    • System.ServiceModel.Channels

    • System.Xml

  4. 建立系結和端點。

    OracleEBSBinding binding = new OracleEBSBinding();  
    EndpointAddress address = new EndpointAddress("oracleebs://ebs_instance_name");  
    
    
  5. 由於您是在介面數據表上執行作業,因此您必須設定應用程式內容。 在此範例中,若要設定應用程式內容,您可以指定 OracleUserNameOraclePasswordOracleEBSResponsibilityName 系結屬性。 如需應用程式內容的詳細資訊,請參閱 設定應用程式內容

    binding.OracleUserName = "myOracleEBSUserName";  
    binding.OraclePassword = "myOracleEBSPassword";  
    binding.OracleEBSResponsibilityName = "myOracleEBSResponsibility";  
    
  6. 建立並開啟通道處理站。 此應用程式會將要求訊息傳送至 Oracle E-Business Suite 並接收回應,因此您必須實作 IRequestChannel 介面。

    ChannelFactory<IRequestChannel> factory = new ChannelFactory<IRequestChannel>(binding, address);  
    factory.Credentials.UserName.UserName = "<Enter user name here>";  
    factory.Credentials.UserName.Password = "<Enter password here>";  
    factory.Open();  
    
  7. 建立並開啟通道。

    IRequestChannel channel;  
    try  
    {  
       channel = factory.CreateChannel();  
       channel.Open();  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception :" + ex.Message);  
       throw;  
    }  
    
  8. 建立並傳送要求訊息。

    XmlReader readerIn;  
    try  
    {  
       readerIn = XmlReader.Create("InsertRequest.xml");  
       Console.WriteLine("Reader created");  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    Message messageIn;  
    Message messageOut;  
    try  
    {  
       messageIn = Message.CreateMessage(MessageVersion.Default, "InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE", readerIn);  
       messageOut = channel.Request(messageIn);  
    }  
    catch (Exception ex)  
    {  
       Console.WriteLine("Exception: " + ex.Message);  
       throw;  
    }  
    
    

    建立要求訊息時,您必須指定訊息動作,指出配接器在介面數據表上執行的動作。 若要在MS_SAMPLE_EMPLOYEE資料表上執行 Insert 作業,訊息動作為 InterfaceTables/Insert/FND/APPS/MS_SAMPLE_EMPLOYEE。 如需如何判斷數據表上各種作業之訊息動作的資訊,請參閱 插入、更新、刪除和選取作業的訊息架構

  9. 取得回應消息。

    XmlReader readerOut = messageOut.GetReaderAtBodyContents();  
    XmlDocument doc = new XmlDocument();  
    doc.Load(readerOut);  
    doc.Save("C:\\Response.xml");  
    
  10. 關閉訊息、通道和通道處理站。

    messageOut.Close();  
    channel.Close();  
    factory.Close();  
    
  11. 建置專案。 建置項目之後,您必須在專案可執行檔相同的位置複製要求訊息 InsertRequest.xml。 一般而言,此位置是項目目錄下的 \bin\Debug\ 。

  12. 執行應用程式。 回應訊息 Response.xml會儲存在您於應用程式中指定的位置。 回應訊息包含插入的紀錄數量,如下所示:

    <InsertResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/FND/APPS/MS_SAMPLE_EMPLOYEE">  
      <InsertResult>1</InsertResult>  
    </InsertResponse>  
    

    值 「1」 表示單一記錄會插入MS_SAMPLE_EMPLOYEE數據表。

另請參閱

使用 WCF 通道模型開發 Oracle E-Business Suite 應用程式