共用方式為


使用 Oracle E-Business Suite 配接器的 WCF 通道模型概觀

若要在 Microsoft BizTalk Adapter for Oracle E-Business Suite 上叫用作業,您的程式代碼會作為 WCF 用戶端,並將輸出作業傳送至配接器。 在 WCF 通道模型中,您的程式代碼會透過通道傳送要求訊息來叫用適配卡上的作業。

若要叫用輸入作業,例如使用配接器所提供的 輪詢 作業接收輪詢型數據變更訊息,您的程式代碼會作為WCF服務,並從配接器接收輸入作業。 換句話說,您的程式代碼會透過通道從配接器接收要求訊息。

本節中的主題提供搭配 WCF 通道模型使用 Oracle E-Business 配接器的概觀。

WCF 通道模型概觀

用戶端和服務會藉由交換SOAP訊息來通訊。 WCF 通道模型是此訊息交換的低階抽象概念。 它提供介面和類型,可讓您使用稱為通道堆疊的分層通訊協定堆疊來傳送和接收訊息。 堆疊的每一層都是由通道所組成,而且每個通道都是從WCF系結建立的。 傳輸通道位於最底層。 傳輸通道會實作服務與客戶端之間的基礎傳輸機制,並將每個訊息以 System.ServiceModel.Message 的形式呈現給較高層(最終取用的應用程式)。 WCF Message 類別是SOAP訊息的抽象概念。 WCF 提供數個通道介面,稱為通道圖形,可建立基本 SOAP 訊息交換模式的模型,例如要求-回復或單向。 WCF 傳輸系結提供一或多個通道圖形的實作,讓較高層可用來傳送和接收訊息。 如需 WCF 通道模型的詳細資訊,請參閱 上的 https://go.microsoft.com/fwlink/?LinkId=82614

Oracle E-Business 配接器是 WCF 自定義傳輸系結,會將 Oracle E-Business Suite 成品公開為 WCF 服務。

Oracle E-Business Suite 配接器支援的通道圖形

配接器會實作下列 WCF 通道圖形:

  • IRequestChannelSystem.ServiceModel.Channels.IRequestChannel)。 IRequestChannel 介面會實作要求-回復訊息交換的用戶端。 您可以使用 IRequestChannel 來執行想要取用響應的作業,例如在介面數據表上執行 SELECT 查詢。

  • IOutputChannelSystem.ServiceModel.Channels.IOutputChannel)。 此圖形會實作單向訊息交換的用戶端。 您可以使用 IOutputChannel 來叫用不需要取用響應的作業,例如呼叫沒有 OUT 參數的程式。

    這很重要

    配接器對 Oracle 用戶端的所有基礎呼叫都是同步的。 這包括對 Oracle 用戶端的呼叫,這是 透過 IOutputChannel 叫用的作業結果。 當您使用 IOutputChannel 時,配接器會捨棄從 Oracle 用戶端收到的回應。

  • IInputChannelSystem.ServiceModel.Channels.IInputChannel)。 此圖形會實作單向訊息交換的服務端。 您可以使用 IInputChannel 從配接器接收輸入訊息。

    如同任何 WCF 繫結,Oracle E-Business 配接器會使用工廠模式來提供應用程式程式碼的通道。 您使用 Microsoft.Adapters.OracleEBSBinding 物件來建立實例:

  • System.ServiceModel.ChannelFactory<IRequestChannel> 提供 IRequestChannel 通道,您可以用來在配接器上叫用要求-回應作業。

  • System.ServiceModel.ChannelFactory<IOutputChannel> 提供 IOutputChannel 通道,您可以用來在配接器上叫用單向作業。

  • System.ServiceModel.IChannelListener<IInputChannel> 提供 IInputChannel 通道,您可以用來從配接器接收輸入訊息。

在 WCF 通道模型中為 Oracle 企業商業解決方案創建消息

在 WCF 中, System.ServiceModel.Channels.Message 類別提供 SOAP 訊息的記憶體表示法。 您可以叫用靜態 Message.Create 方法來建立 Message 實例。

SOAP 訊息有兩個重要部分,您必須在建立 訊息 實例以傳送至 Oracle E-Business 配接器時指定。

  • 訊息動作是SOAP訊息標頭的一部分字串。 訊息動作會識別應在 Oracle E-Business Suite 上叫用的作業。 以下顯示指定在 Oracle E-Business Suite 中叫用應收賬款應用程式下客戶介面並行程式的訊息動作:ConcurrentPrograms/AR/RACUST

  • 訊息本文包含操作的參數資料。 訊息本文是由格式正確的 XML 所組成,對應至 Oracle E-Business 配接器所預期的訊息架構,以進行要求的作業。 下列訊息內文指定要請求叫用 客戶介面 併行程式的要求訊息。

    <RACUST xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">
      <Description>Customer Interface Program</Description>
      <StartTime></StartTime>
      <CREATE_RECIPROCAL_CUSTOMER>Yes</CREATE_RECIPROCAL_CUSTOMER>
      <ORG_ID>203</ORG_ID>
    </RACUST>
    
    

    有關 Oracle E-Business 作業的適配器訊息架構和訊息動作的資訊,請參閱 BizTalk Adapter for Oracle E-Business Suite 的訊息和訊息架構

    Create 方法已重載,並提供多種不同的選項來指定訊息主體。 下列程式代碼說明如何使用 XmlReader 來提供訊息本文,進而建立訊息實例。 在此程式代碼中,訊息本文會從檔案讀取。

XmlReader readerIn = XmlReader.Create("ConcProgRequest.xml");
Message messageIn = Message.CreateMessage(MessageVersion.Default,
    "ConcurrentPrograms/AR/RACUST",
    readerIn);

其中,ConProgRequest.xml 包含要求訊息。

這很重要

您必須在 訊息 實例中提供訊息動作。 建立 訊息 實例時,通常會完成此動作。

另請參閱

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