共用方式為


使用 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 配接器的範例。 Oracle E-Business 配接器範例也會提供以本主題為基礎的 範例 InsertOperation

插入訊息

若要使用 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 通道應用程式

本節提供如何在 MS_SAMPLE_EMPLOYEE 介面資料表上建立 WCF 通道應用程式以執行插入作業的指示。

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

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

  2. 在方案總管中,新增 、 Microsoft.ServiceModel.ChannelsSystem.ServiceModel 和 的 System.Runtime.Serialization 參考 Microsoft.Adapters.OracleEBS

  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 應用程式