共用方式為


在 Oracle E-Business Suite 中叫用並行程式

Oracle E-Business Suite 會公開您可以執行的並行程式,以在 Oracle 應用程式上執行特定作業。 每個 Oracle 應用程式都有一組標準並行程式(在所有作業中都相同),以及 Oracle 應用程式特定的特定並行程式。 Oracle E-Business 配接器會將所有並行程序公開為配接器用戶端可以叫用的作業。 如需瞭解配接器如何支援同時運行的程序,請參閱 並行程序的作業。 如需叫用並行程式之 SOAP 訊息結構的相關信息,請參閱 並行程式的訊息架構

備註

針對未公開其元數據的並行程式,Oracle E-Business 配接器會針對每個並行程序公開 100 個選擇性參數。 若要成功叫用這些並行程式,用戶必須參閱 Oracle E-Business Suite 檔,以找出需要值的並行程式參數,然後加以指定。 這類並行程式的範例是總帳應用程式中的分錄匯入(實際名稱:GLLEZL)。

先決條件

您必須完成必要條件中的步驟 ,才能建立 Oracle E-Business Suite 應用程式

如何在 Oracle 應用程式中叫用並行程式

搭配 BizTalk Server 使用 Oracle E-Business 配接器在 Oracle E-Business Suite 上執行作業牽涉到 建立 Oracle E-Business Suite 應用程式的建置組塊中所述的程式性工作。 若要叫用並行程序,這些工作如下:

  • 建立 BizTalk 專案,並為您想要叫用的並行程式產生架構。

  • 在 BizTalk 專案中建立訊息,以便從 Oracle E-Business Suite 來回傳送和接收訊息。

  • 建立協調流程以叫用並行程式。

  • 建置及部署 BizTalk 專案。

  • 藉由建立實體傳送和接收埠來設定 BizTalk 應用程式。

  • 啟動 BizTalk 應用程式。

    本主題提供執行這些工作的指示。

產生架構

本主題示範如何從應收賬款應用程式叫用客戶介面並行程式。 此應用程式適用於預設的 Oracle E-Business Suite 應用程式。 這個並行程式會傳回要求標識碼。 若要檢查並行程式的狀態,我們會傳遞客戶介面並行程序回應中收到的要求標識符,以執行Get_Status並行程式。

在本主題中,我們會針對 客戶介面Get_Status 並行程式產生架構。 如需如何產生架構的詳細資訊,請參閱 在Visual Studio中擷取 Oracle E-Business Suite Operations 的元數據

定義訊息和訊息類型

您稍早產生的架構描述協調流程中訊息所需的「類型」。 訊息通常是變數,其類型是由對應的架構所定義。 您現在必須建立協調流程的訊息,並將其連結至您在上一個步驟中產生的架構。

在此協調流程中,您必須建立四個訊息:一個接收回應集叫用 客戶介面 並行程式,另一個接收回應集則叫用 Get_Status 並行程式。

  1. 將協調流程新增至 BizTalk 專案。 在 [方案總管] 中,以滑鼠右鍵按兩下 BizTalk 專案名稱,指向 [ 新增],然後按兩下 [ 新增專案]。 輸入 BizTalk 協調流程的名稱,然後按兩下 [ 新增]。

  2. 如果 BizTalk 專案尚未開啟,請開啟 BizTalk 專案的 [協調流程檢視] 視窗。 若要這樣做,請按一下 [檢視],指向 [其他 Windows],然後按一下 [編排檢視]。

  3. 在 [協調流程檢視] 中,以滑鼠右鍵按兩下 [ 訊息],然後按兩下 [ 新增訊息]。

  4. 以滑鼠右鍵按下新建立的訊息,然後選取 [ 屬性視窗]。

  5. Message_1的 [屬性] 窗格中,執行下列動作:

    使用此 若要這樣做
    識別碼 類型 Request
    訊息類型 從下拉式清單中,展開 [架構],然後選取 [ConcurrentProgram.OracleEBSBindingSchema.RACUST],其中 ConcurrentProgram 是您 BizTalk 項目的名稱。 OracleEBSBindingSchema 是用來叫用 客戶介面 並行程序的架構。 注意: RACUST 是 客戶介面 同時執行程式的實際名稱。 雖然消耗配接器服務外掛增益集會顯示易記名稱(Customer Interface),但架構包含併發程式的實際名稱。
  6. 重複步驟3以建立三個新訊息。 在新訊息的 [ 屬性 ] 窗格中,執行下列動作:

    將標識碼設定為 將訊息類型設定為
    回應 ConcurrentProgram.OracleEBSBindingSchema.RACUSTResponse
    Get_StatusRequest ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgram
    Get_StatusResponse ConcurrentProgram.OracleEBSBindingSchema1.GetStatusForConcurrentProgramResponse

設定協調流程

您必須建立 BizTalk 協調流程,才能使用 BizTalk Server 在 Oracle E-Business Suite 中叫用並行程式。 在此協調流程中,您會在指定的接收點傳送要求訊息。 協調流程會取用此訊息,並將其傳遞至 Oracle E-Business Suite 以叫用 客戶介面 並行程式。 並行程序的回應會從 Oracle 接收,並儲存在另一個位置。 回應消息包含要求標識碼。 協調流程包含 建構訊息 圖形,可從回應擷取要求標識碼,並建構符合 Get_Status 並行程式架構的訊息。 訊息被傳送至 Oracle E-Business Suite,用於調用 Get_Status 並行程式,且要求標識碼作為參數。 您必須包含傳送和接收圖形、訊息建構圖形和埠,才能將訊息傳送至 Oracle 並接收回應。

一般而言, 客戶介面 並行程式需要一些時間才能執行,因此您必須先等候再執行 Get_Status 並行程式。 您可以藉由新增 延遲 圖形來自動執行此作業。

範例協調流程如下所示:

叫用並行程序的協調流程

新增訊息圖形

為每個訊息圖形指定下列屬性。 Shape 欄中列出的名稱與前述編排中顯示的訊息圖形相對應。

形狀 圖形類型 性能
接收訊息 收到 - 將 名稱 設定為 ReceiveMessage
- 將 Activate 設定為 True
發送訊息 發送 - 將 [名稱] 設定為 SendMessage
接收回應 收到 - 將 [名稱] 設定為 ReceiveResponse
- 將 Activate 設定為 False
SendResponse 發送 - 將 [名稱] 設定為 SendResponse
SendGetStatus 發送 - 將 [名稱] 設定為 SendGetStatus
接收狀態回應 收到 - 將 Name 設定為 ReceiveStatusResponse
- 將 Activate 設定為 False
儲存狀態回應 發送 - 將 [名稱] 設定為 SaveStatusResponse

新增延遲圖形

如果您希望協調流程在叫用 客戶介面Get_Status 並行程式之間等候,您必須將 延遲 圖形新增至協調流程。 在協調流程將回應複製到 FILE 傳送埠,以供客戶介面並行程式使用之後,您必須新增延遲圖形。 因此,您必須在 SendResponse 圖形之後新增 Delay 圖形。

[延遲 ] 圖形內,您可以指定協調流程在繼續之前必須等候的時間間隔,方法是將下列程式代碼新增至 延遲 圖形的表達式編輯器:

new System.TimeSpan(0,2,0)  

藉由新增此程式代碼,協調流程會等候兩分鐘,再繼續進行。 如需如何設定 延遲 圖形的詳細資訊,請參閱 如何設定延遲圖形

新增建構訊息圖形

Oracle E-Business Suite 中 Customer Interface 併行程序的回應包含一個請求 ID。 若要取得並行程式的狀態,您必須將相同的要求 ID 作為參數傳遞給 Get_Status 並行程式。 若要達成此目的,您必須在協作過程中包含一個建構訊息圖形,並在其中包含訊息指派圖形。 建構訊息圖形的目的是:

  • 從收到的客戶介面並行程式回應中提取請求 ID。

  • 建構符合 Get_Status 並行程式之訊息架構的訊息。

    針對 建構訊息 圖形,將 Message Constructed 屬性設定為 Get_StatusRequest

    針對 [ 訊息指派 ] 圖形,新增下列內容。 新增程式代碼之前,您必須具有:

XmlDoc = new System.Xml.XmlDocument();  
XmlDoc.LoadXml("<GetStatusForConcurrentProgram xmlns='http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR'><RequestId /></GetStatusForConcurrentProgram>");  
Get_StatusRequest = XmlDoc;  
Get_StatusRequest.RequestId = xpath(Response,"string(/*[local-name()='RACUSTResponse']/*[local-name()='RACUSTResult']/text())");  

新增埠

若要設定埠,您可以針對每個邏輯埠指定下表所列的屬性。 欄中列出的名稱對應於協調流程中顯示的埠名稱。

港口 性能
MessageIn - 將 標識碼 設定為 MessageIn
- 將 類型 設定為 MessageInType
- 將 通訊模式 設定為 單向
- 將 通訊方向 設定為 接收
LOBPort - 將 識別碼 設定為 LOBPort
- 將 [類型 ] 設定為 LOBPortType
- 將 通訊模式 設定為 要求-回應
- 將 通訊方向 設定為 傳送接收
ResponseOut - 將 標識碼 設定為 ResponseOut
- 將 類型 設定為 ResponseOutType
- 將 通訊模式 設定為 單向
- 將 通訊方向 設定為 傳送
- 建立作業 Cust_Interface。 此作業用於 客戶介面 並行程式。
- 建立作業 Get_Status。 此作業會用於 Get_Status 並行程式。
LOBPort_GetStatus - 將 識別碼 設定為 LOBPort_GetStatus
- 將 Type 設定為 LOBPort_GetStatusType
- 將 通訊模式 設定為 要求-回應
- 將 通訊方向 設定為 傳送接收

指定動作圖形的訊息並連線到埠

下表指定用於設定動作形狀的訊息的屬性值,並將其連結到埠。 Shape 數據行中所列的名稱會對應至協調流程圖中顯示的訊息圖形名稱。

指定這些屬性之後,訊息圖形和埠會連線,且您的協調流程已完成。

您現在必須建置 BizTalk 解決方案,然後將其部署至 BizTalk Server。 如需詳細資訊,請參閱 建置和執行協調流程

形狀 性能
接收訊息 - 將 訊息 設定為 要求
- 將 作業 設定為 MessageIn.Cust_Interface.Request
發送訊息 - 將 訊息 設定為 要求
- 將 作業 設定為 LOBport.Cust_Interface.Request
接收回應 - 將 訊息 設定為 回應
- 將 作業 設定為 LOBport.Cust_Interface.Response
SendResponse - 將 訊息 設定為 回應
- 將 作業 設定為 ResponseOut.Cust_Interface.Request
SendGetStatus - 將 訊息 設定為 Get_StatusRequest
- 將 作業 設定為 LOBPort_GetStatus.Get_Status.Request
接收狀態回應 - 將 訊息 設定為 Get_StatusResponse
- 將 作業 設定為 LOBPort_GetStatus.Get_Status.Response
儲存狀態回應 - 將 訊息 設定為 Get_StatusResponse
- 將 作業 設定為 ResponseOut.Get_Status.Request

指定這些屬性之後,訊息圖形和埠會連線,且您的協調流程已完成。

您現在必須建置 BizTalk 解決方案,然後將其部署至 BizTalk Server。 如需詳細資訊,請參閱 建置和執行協調流程

設定 BizTalk 應用程式

部署 BizTalk 項目之後,您稍早建立的協調流程會列在 BizTalk Server 管理控制台的 [ 協調流程 ] 窗格底下。 您必須使用 BizTalk Server 管理主控台來設定應用程式。 如需逐步講解,請參閱 逐步解說:部署基本 BizTalk 應用程式

設定應用程式牽涉到:

  • 選取應用程式的主機。

  • 將您在協調流程中建立的埠對應至 BizTalk Server 管理控制台中的實體埠。 為了這次編排,您必須:

    • 確定硬碟上的一個位置以及相應的檔案埠址,在該處您將放置要求訊息。 BizTalk 協調流程會取用要求訊息,並將其傳送至 Oracle E-Business Suite。

    • 定義硬碟上的一個位置和對應的檔案介面,BizTalk 協調流程會在此放置包含 Oracle E-Business Suite 回應的回應訊息。

    • 定義兩個實體 WCF-Custom 或 WCF-OracleEBS 傳送埠—一個傳送訊息給 Oracle E-Business Suite 來執行 客戶介面 並行程式,另一個則執行 Get_Status 並行程式。 您也必須在傳送埠中指定動作。 如需如何建立埠的詳細資訊,請參閱手動設定 實體埠系結至 Oracle E-Business 配接器

      若要使用 Oracle E-Business 配接器叫用並行程式,您必須設定叫用作業的正確應用程式內容。 Oracle E-Business 配接器提供特定系結屬性,以指定任何作業的應用程式內容。 您必須在執行並行程式所使用的 WCF-Custom 或 WCF-OracleEBS 埠上設定這些系結屬性。

      • 如果 ClientCredentialType 系結屬性設定為 Database,則必須指定下列系結屬性來設定應用程式內容。

        綁定屬性 價值觀
        OracleUserName 指定 Oracle E-Business Suite 用戶的名稱。 Oracle E-Business 配接器不會在連接到 Oracle E-Business Suite 時,保留您針對 OracleUserName 系結屬性輸入的值大小寫。 用戶名稱會使用 SQL*Plus 的標準規則傳遞至 Oracle E-Business Suite。 不過,如果您想要保留使用者名稱的案例,或如果您想要輸入包含特殊字元的用戶名稱,則必須在雙引號內指定值。
        OraclePassword Oracle E-Business Suite 用戶的密碼。 在連接到 Oracle E-Business Suite 時,Oracle E-Business 配接器不會保留您為 OraclePassword 系結屬性輸入的值的大小寫。 密碼會使用 SQL*Plus 的標準規則傳遞至 Oracle E-Business Suite。 不過,如果您想要保留密碼大小寫,或想要輸入包含特殊字元的密碼,則必須在雙引號內指定值。
        OracleEBSResponsibilityName 與 Oracle E-Business Suite 使用者相關聯的責任。
      • 如果 ClientCredentialType 系結屬性設定為 EBusiness,您必須在建立連線時已經指定 Oracle E-Business 認證。 在這種情況下,您只能指定 OracleEBSResponsibilityName 系結屬性的值。

        如需不同系結屬性的詳細資訊,請參閱 關於 BizTalk Adapter for Oracle E-Business Suite 系結屬性。 如需配接器如何支援設定應用程式內容的詳細資訊,請參閱 設定應用程式內容

      備註

      您可以藉由指定系結屬性或設定 Oracle E-Business 配接器公開的訊息內容屬性,來設定應用程式內容。 如需如何設定系結屬性的指示,請參閱 設定 Oracle E-Business Suite 的系結屬性。 如需如何使用訊息內容屬性設定應用程式內容的指示,請參閱 在 Oracle E-Business Suite 中使用訊息內容屬性設定應用程式內容

      備註

      使用「取用配接器服務 BizTalk 專案附加元件」生成架構時,也會建立系結檔案,其中包含關於這些埠和要在其上設定的動作的信息。 您可以從 BizTalk Server 管理主控台匯入此系結檔案,以建立傳送埠(用於輸出通話)或接收埠(用於輸入通話)。 如需更多資訊,請參閱 使用連接埠綁定檔案將實體連接埠綁定至 Oracle E-Business Suite

啟動應用程式

您必須先啟動 BizTalk 應用程式,才能叫用並行程式。 如需啟動 BizTalk 應用程式的指示,請參閱 如何啟動協調流程

在這個階段,請確定:

  • 要接收編排要求訊息的 FILE 接收埠正在運行。

  • 從協調流程接收回應訊息的 FILE 傳送埠正在執行中。

  • WCF-Custom 或 WCF-OracleEBS 傳送埠以叫用 客戶介面 並行程式正在執行。

  • 正在執行 WCF-Custom 或 WCF-OracleEBS 傳送埠來叫用 Get_Status 並行程式。

  • 作業的 BizTalk 協調流程正在執行中。

執行作業

在執行應用程式後,您必須放入符合架構的請求訊息,以調用 客戶介面 並行程序。 例如,叫用 客戶介面 並行程式的要求訊息為:

<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>  

備註

叫用並行程式的要求訊息需要一些選擇性參數,例如SetOptions、SetPrintOptions 和 SetRepeatOptions。 這裡提供的要求訊息不包含這些選擇性參數。 如需關於完整請求訊息的資訊,包括可選參數,請參閱 並行程式的訊息結構

協調流程會取用訊息、將其傳遞至 Oracle E-Business Suite,並接收回應。 回應消息會儲存在協調流程中指定的其他檔案位置。 客戶介面並行程序的回應如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<RACUSTResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">  
  <RACUSTResult>2794708</RACUSTResult>  
</RACUSTResponse>  

Oracle E-Business Suite 的回應包含要求標識符。 協調流程會從回應訊息擷取要求標識碼、建構訊息來叫用 Get_Status 並行程式,並將它傳遞給 Oracle E-Business Suite 來執行 Get_Status 並行程式。 收到 Get_Status 並行程式的響應之後,它會複製到與第一個回應相同的檔案位置。 Get_Status並行程序的回應如下所示:

<?xml version="1.0" encoding="utf-8" ?>   
<GetStatusForConcurrentProgramResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/ConcurrentPrograms/AR">  
  <GetStatusForConcurrentProgramResult>true</GetStatusForConcurrentProgramResult>   
  <Phase>Pending</Phase>   
  <Status>Standby</Status>   
  <DevPhase>PENDING</DevPhase>   
  <DevStatus>STANDBY</DevStatus>   
  <Message>null</Message>   
</GetStatusForConcurrentProgramResponse>  

最佳做法

部署並設定 BizTalk 項目之後,您可以將組態設定匯出至稱為系結檔案的 XML 檔案。 產生系結檔案之後,您可以從檔案匯入組態設定,因此您不需要為相同的協調流程建立傳送埠和接收埠等專案。 如需關於繫結檔案的詳細資訊,請參閱 在 Oracle E-Business Suite 中重複利用配接器繫結

另請參閱

使用 Oracle E-Business Suite 配接器開發 BizTalk 應用程式