使用 WebSphere Adapter 整合 Oracle Workflow Business Event System 實現業務整合
簡介: WebSphere Adapter 是 IBM 對 JCA 標準的實現,用於企業資訊系統(EIS)間的業務整合,在 SOA 解決方案中扮演著重要角色。通過閱讀本文,讀者可以瞭解如何使用 WebSphere Adapter for Oracle E-Business Suite V7.0 整合 Oracle Workflow Business Event System,並實現訂單業務整合的基本原理和最佳實踐;以及如何使用 WebSphere Adapter 開發企業資訊系統整合的示例場景。
WebSphere Adapter for Oracle E-Business Suite 作為 IBM WebSphere 介面卡家族中的重要一員,提供了針對 Oracle E-Business Suite(簡稱 Oracle EBS)系統進行業務整合的能力。利用該介面卡,企業可以方便地將已有的 Oracle EBS 系統資源整合到面向服務的體系架構(SOA)中。
Oracle EBS 是 Oracle 公司重點發展和推廣的新一代 ERP 系統。目前,不論在中國還是全球 ERP 市場,已經擁有非常龐大的使用者群。Oracle EBS 使用 Oracle Workflow Business Event System 來發布或訂閱業務事件,使用者可以根據具體的業務需求來訂閱事件並訂製事件發生時所觸發的行為。
本文根據作者的實際業務整合經驗,以訂單模組為例,闡述如何使用 WebSphere Adapter for Oracle E-Business Suite 整合 Oracle Workflow Business Event System,並提供詳細的開發和測試過程,以便於讀者可以輕鬆瞭解使用 WebSphere Adapter 整合 Oracle Workflow Business Event 實現業務整合的關鍵步驟。
WebSphere Adapter for Oracle E-Business Suite V7.0
WebSphere Adapter for Oracle E-Business Suite 是 IBM WebSphere 針對 Oracle EBS 系統整合的介面卡產品。它提供了對 Oracle EBS 各個應用模組全面、穩定的連線能力,支援多種連線方式,方便滿足客戶在不同層級的整合需求。它提供了整合應用與 Oracle EBS 系統資源的雙向連線,即入站(inbound)和出站(outbound)。
入站 進行入站操作時,Oracle EBS 系統資料發生任何改變都會生成相應事件,WebSphere Adapter 通過主動監控事件儲存,發現事件後從 Oracle EBS 資料儲存中查詢並得到相應業務資料,將其傳送到特定目的端。
出站 進行出站操作時,應用程式通過 WebSphere Adapter 將業務資料首先插入 Oracle Interface Table,然後通過呼叫儲存過程執行 Oracle EBS 系統中的標準併發方法(Concurrent Program)進行資料的完整性和一致性校驗,並將合法資料轉移到 Oracle Base Table。
Oracle E-Business Suite 和 Oracle Workflow Business Event System
Oracle E-Business Suite(Oracle 電子商務套件)是 Oracle 公司提供的一套企業資源規劃系統,為客戶提供全新概念的兼具企業級應用能力和麵向服務基礎架構的強大系統。主要應用於金融,零售,電信,保險,製造等行業。訂單管理(Order Management)作為 Oracle EBS 最重要的應用模組之一,擁有覆蓋大、中、小各種規模企業的大量客戶群體。客戶往往將其訂單業務建立在 Oracle EBS 之上。因此,針對 Oracle EBS 訂單業務的整合具有廣大客戶需求。
在 Oracle E-Business Suite 中,進行業務處理比如採購訂單的批准、發票的確認時都會產生相應的業務事件,這些事件可以是 Oracle EBS 系統預定義的事件,也可以是客戶自定義的事件。Oracle Workflow Business Event System 主要由以下 3 個部件構成:
Oracle Workflow Builder 包括了 Oracle Workflow Standard Item Type 和 Oracle XML Gateway Standard Item Type。前者主要是用來定義 workflow process。
Oracle Workflow Administrator 用來註冊新的業務事件和訂閱,或修改系統中預定義的事件的訂閱。
Oracle Workflow processing engine 用來執行 workflow process。
本文側重於 Oracle Business Event 的整合示例,關於 Oracle Workflow 的整合,我們將另文詳述。
WebSphere Adapter for Oracle E-Business Suite V7.0 和 Oracle Workflow Business Event System 互動場景
本文將介紹使用 WebSphere Adapter 整合 Oracle Workflow Business Event System 實現訂單業務整合的基本工作原理和最佳實踐。圖 1 以訂單模組為例描述了一個 WebSphere Adapter 的入站流程,通過 Oracle Workflow Business Event System 中的事件及事件的訂閱機制,將 Oracle EBS 訂單模組中新產生的訂單事件,從 Oracle Workflow Business Event System 轉存到 WebSphere Adapter 監聽的事件儲存中。WebSphere Adapter 監聽到該事件後,從 Oracle EBS 系統中獲取該訂單的詳細資訊。
圖 1. WebSphere Adapter 與 Oracle Workflow Business Event System 互動場景
本場景將在 Oracle EBS 系統訂單模組中建立一個新的訂單,使用 WebSphere Adapter 整合 Oracle Workflow Business Event System,獲得訂單事件,並且獲取訂單的詳細資訊。
在本場景實現過程中,使用到 Oracle Workflow Business Event System 中的事件 oracle.apps.po.event.xmlpo,Oracle EBS 系統訂單模組中的資料表 PO_HEADERS_ALL,PO_LINES_ALL,PO_LINE_LOCATIONS_ALL 和 PO_DISTRIBUTIONS_ALL。
場景開發的主要的過程如下:
1. 建立 WebSphere Adapter 監聽的 event table。
2. 建立 stored function,將 Oracle EBS 系統訂單模組中新產生的訂單事件,從 Oracle Workflow Business Event System 轉存到 WebSphere Adapter 監聽的事件儲存中。
3. 建立 Oracle Workflow Business Event 的 subscription,並在 subscription 中訂製事件發生時觸發執行 stored function。
4. 開發 WebSphere Adapter 的入站應用程式。
建立 event table
清單 1 中的 SQL 指令碼,將在 Oracle EBS 資料庫系統的 APPS schema 下建立 WebSphere Adapter 監聽的 event table:IBM_WEBSPHERE_EVENTS。在具體的應用中,可以新增或者修改此表中的一些欄位以滿足實際業務整合需求。
清單 1. 建立 event table: APPS.IBM_WEBSPHERE_EVENTS
DROP TABLE APPS.IBM_WEBSPHERE_EVENTS; CREATE TABLE APPS.IBM_WEBSPHERE_EVENTS( event_id NUMBER, object_key VARCHAR2(100), object_name VARCHAR2(100), object_function VARCHAR2(50), event_priority NUMBER, event_time DATE, event_status NUMBER, event_comment VARCHAR2(240), xid VARCHAR(100), connector_ID VARCHAR2(40) ); |
建立 stored function
在建立 stored function 之前,我們先建立一個 event 序列(如清單 2 所示),在 store function 中我們將使用這個序列自動生成 event table 中的 event id 欄位。
清單 3 中的 SQL 指令碼,將在 Oracle EBS 資料庫系統的 APPS schema 下建立 IBM_RULE_FUNCTION,將 Oracle EBS 訂單模組中新產生的訂單事件,從 Oracle Workflow Business Event System 轉存到 WebSphere Adapter 監聽的事件儲存中,即 IBM_WEBSPHERE_EVENTS 中。
清單 2. 建立 event 序列 : APPS.IBM_WEBSPHERE_EVENTS_S
DROP SEQUENCE APPS.IBM_WEBSPHERE_EVENTS_S; CREATE SEQUENCE APPS.IBM_WEBSPHERE_EVENTS_S START WITH 1; |
清單 3. 建立 stored function: APPS.IBM_WEBSPHERE_EVENTS
CREATE OR REPLACE PACKAGE IBM_WEBSPHERE_PKG AS FUNCTION IBM_RULE_FUNCTION( p_subscriptionIN RAW, p_eventIN OUT NOCOPY WF_EVENT_T ) RETURN VARCHAR2; END; / CREATE OR REPLACE PACKAGE BODY IBM_WEBSPHERE_PKG AS FUNCTION IBM_RULE_FUNCTION( p_subscription IN RAW, p_event IN OUT NOCOPY WF_EVENT_T ) RETURN VARCHAR2IS v_ruleVARCHAR2(20); v_event_id NUMBER; BEGIN SELECT ibm_websphere_events_s.NEXTVAL INTOv_event_id FROMDUAL; INSERT INTO ibm_websphere_events VALUES ( v_event_id,--event id substr(p_event.getEventKey(), 0, 5),--object key 'AppsPo_Headers_All',--object name 'Create',--object function 1,--event priority SYSDATE, --event time 0,--event status NULL,--event comment NULL,--xid value '001'--connector id ); v_rule := wf_rule.default_rule(p_subscription,p_event); RETURN ('SUCCESS'); END IBM_RULE_FUNCTION; END IBM_WEBSPHERE_PKG; / SHOW ERRORS |
建立 Oracle Workflow Business Event 的 subscription
1)使用 sysadmin/sysadmin 帳號登入 Oracle EBS 客戶端;
2)選擇 Workflow Administrator Web Applications 職責;
3)選擇 Administrator Workflow - > Business Events 選單;
4)選擇 Subscriptions 子選單;
5)點選 Create Subscription 按鈕;
6)填寫 subscription 的詳細資訊,如表 1 所示。
Attribute | Value | Description | |
---|---|---|---|
Subscriber | System | VIS.CN.IBM.COM | The name of your Oracle EBS instance |
Triggering Event | Source Type | Local | |
Event Filter | oracle.apps.po.event.xmlpo | Oracle seeded event of creating a Purchase Order | |
Execution Condition | Phase | 10 | |
Status | Enabled | ||
Rule Data | Message | ||
Action Type | Action Type | Custom | |
On Error | Stop and Rollback | ||
Action | PL/SQL Rule Function | ibm_websphere_pkg.ibm_rule_function | Custom action to convert and store Oracle business event into WebSphere Adapter event table |
Priority | Normal | ||
Documentation | Owner Name | JTF | |
Owner Tag | JTF |
接下來我們將向您介紹如何使用 WID V7.0 來開發 WebSphere Adapter 入站應用程式,以及如何配置、執行、測試本文中的示例場景。
開發 Oracle EBS 介面卡入站應用程式
1. 開啟 WID V7.0,切換到 Business Integration 檢視。
2. 點選選單 File -> New – > External Service,啟動 WebSphere Adapter for Oracle E-Business Suite 服務發現嚮導。
3. 在 Available Types 中 , 選擇 Adapters -> Oracle E-Business Suite,點選 下一步。
4. 選擇 IBM WebSphere Adapter for Oracle E-Business Suite (IBM: 7.0.0.0) 節點,點選 下一步。
5. 在 Import a RAR File 頁面 , 保留預設設定,點選 下一步。
6. 在 Locate the Required Files and Libraries 頁面,新增 Oracle JDBC driver ojdbc6.jar,點選 下一步。
7. 在 Select the Processing Direction 頁面,選擇 Inbound,點選 下一步。
8. 在 Specify the Discovery Properties 頁面,選擇資料庫版本並填寫連線 Oracle EBS 系統的必要資訊,如圖 2 所示。點選 下一步,將開始連線目標 Oracle EBS 系統。
9. 在 Find Objects in the Enterprise System 頁面,
- 開啟 Edit Query 對話方塊,輸入 Schema 過濾條件 APPS,選中 Prompt for additional configuration settings when adding business object,點選 OK。
- 點選 Run Query,查詢結果將在 Discovered objects 中列出。
10. 在 Synonyms – Nick Names 下分別過濾出訂單模組的四個資料表:PO_HEADERS_ALL,PO_LINES_ALL,PO_LINE_LOCATIONS_ALL 和 PO_DISTRIBUTIONS_ALL,並分別配置各個表的屬性資訊,並新增到 Selected objects 中。
- 表 PO_HEADERS_ALL
如圖 3 所示,在 Specify theConfiguration Properties for ‘ PO_HEADERS_ALL ’ 頁面,配置表 PO_HEADERS_ALL 的屬性資訊,包括主鍵 PO_HEADER_ID,點選 OK。
圖 3. 配置表 PO_HEADERS_ALL
- 表 PO_LINES_ALL
如圖 4 所示,在 Specify theConfiguration Properties for ‘ PO_LINES_ALL ’ 頁面,配置表 PO_LINES_ALL 的屬性資訊,包括主鍵 PO_LINE_ID,父表 PO_HEADERS_ALL,外來鍵 PO_HEADER_ID 等資訊,點選 OK。
圖 4. 配置表 PO_LINES_ALL
- 表 PO_LINE_LOCATIONS_ALL
如步驟 2 所示,在 Specify the Configuration Properties for ‘ PO_LINE_LOCATIONS_ALL ’ 頁面,配置表 PO_LINE_LOCATIONS_ALL 的屬性資訊,包括主鍵 LINE_LOCATION_ID,父表 PO_LINES_ALL,外來鍵 PO_LINE_ID等資訊,點選 OK。
- 表 PO_DISTRIBUTIONS_ALL
如步驟 2 所示,在 Specify the Configuration Properties for ‘ PO_DISTRIBUTIONS_ALL ’ 頁面,配置表 PO_DISTRIBUTIONS_ALL 的屬性資訊,包括主鍵 PO_DISTRIBUTION_ID,父表 PO_LINES_ALL,外來鍵 PO_LINE_ID 等資訊,點選 OK。
經過上述操作,將 PO_HEADERS_ALL,PO_LINES_ALL,PO_LINE_LOCATIONS_ALL 和 PO_DISTRIBUTIONS_ALL 新增到 Selected objects 中,結果如圖 5 所示。
11. 在 Configure Composite Properties 頁面,清除 Generate a business graph for each business object 選項,其它選項保留預設配置,點選 下一步。
12. 在 Specify the Service Generation and Deployment Properties 頁面,如圖 6 所示。
- 選中 Using security properties from the activation specification。
- 在 Deploy connector project 中,選擇 With module for use by single application 選項。
- 在 Database connection information 中,選擇 Specify database connection information 選項。
- 檢查所有連線資訊都是正確的,點選 下一步。
圖 6. 配置 Service Generation 和 Deployment Properties
13. 在 Specify the Location Properties 頁面,建立新的模組名字 POInbound,點選 Finish,完成介面卡服務發現過程。
14. 在生成的 POInbound 入站應用程式下,雙擊 Assembly Diagram,新增 Untyped Component:Component1,如圖 7 所示。Component1 的實現程式碼片段如清單 4 所示,其作用是將介面卡入站應用程式獲取到的訂單資料序列化成 XML String,並輸出在 WPS 控制檯。
圖 7. 建立入站應用程式的 Component
清單 4. 介面卡入站應用程式 Component 程式碼片段
public void createAppsPo_Headers_All(DataObject createAppsPoHeadersAllInput) { System.out.println("End point for createAppsPo_Headers_All"); try{ String xmlString = AdapterBOUtil.serializeDataObject(createAppsPoHeadersAllInput); System.out.println(xmlString); }catch(Exception e){ System.out.println("Error in tracing the data object"); } } |
場景測試的主要的過程如下:
1. 啟動 WebSphere Process Server v7.0,並將 WebSphere Adapter 的入站應用程式部署到 server 上。
2. 登入 Oracle EBS 客戶端,在訂單模組中建立一個新的訂單。
3. WebSphere Adapter 收到來自 Oracle Workflow Business Event System 的訂單事件後,從 Oracle EBS 系統訂單模組獲取到該訂單的詳細資訊,並列印在 WebSphere Process Server 的控制檯。
在 Oracle EBS 控制檯建立新訂單
- 使用 operations/welcome 帳號登入 Oracle EBS 控制檯;
- 選擇 Purchasing, Vision Operations (USA) 職責;
- 選擇 Purchase Orders -> Purchase Orders 選單;
- 如圖 8 所示,根據具體業務需求,輸入訂單的詳細資訊,並點選 Approve。
介面卡入站程式獲取到訂單詳細資訊並列印在 WPS 控制檯
在上述步驟點選 Approve 後,Oracle Workflow Business Event System 將產生事件 oracle.apps.po.event.xmlpo,由於我們已經訂閱了此事件,並訂製了事件發生時所觸發的行為,即將 Oracle EBS 訂單模組中新產生的訂單事件,從 Oracle Workflow Business Event System 轉存到 WebSphere Adapter 監聽的事件儲存中。當 WebSphere Adapter 監聽到該事件後,從 Oracle EBS 系統中獲取該訂單的詳細資訊,並按入站程式中指定的格式列印在 WPS 控制檯,如圖 9 所示。
通過上述的示例開發、配置和測試,我們成功地完成了 WebSphere Adapter 和 Oracle Workflow Business Event System 的整合,並實現了訂單業務在 Oracle EBS 系統和 IBM WebSphere 產品間的整合。在實際應用中,IBM WebSphere 產品在收到訂單資訊後,會做進一步的分析與處理,比如客戶訂單業務分析與風險管理等等。
在場景開發部分,我們首先在 Oracle EBS 系統中建立了 event table 和 stored function,前者是 WebSphere Adapter 監聽的事件儲存,後者是將 Oracle Workflow Business Event (oracle.apps.po.event.xmlpo)轉存到 WebSphere Adapter 監聽的事件儲存中。然後建立了 Oracle Workflow Business Event(oracle.apps.po.event.xmlpo)的訂閱,並在訂閱中訂製了事件發生時呼叫之前建立的 stored function。
在場景測試部分,我們首先在 Oracle EBS 系統訂單模組中建立一個新的訂單。然後,WebSphere Adapter 通過監聽 event table,監聽到該訂單事件,並獲取到該訂單的詳細資訊,並列印在 WPS 控制檯。至此,使用 WebSphere Adpter 整合 Oracle Workflow Business Event System 實現訂單業務整合執行成功。其成功的關鍵點在於:
1. WebSphere Adpater 成功生成業務資料物件和介面卡服務的相關定義和配置檔案
在執行介面卡服務發現嚮導過程中,訂單事件涉及到的訂單模組的資料表必須準確配置,包括表之間的父子關係,以及表上的主、外來鍵等。只有這些配置準確無誤,業務資料物件和介面卡服務的相關定義和配置檔案才能成功生成。
2. Oracle Worflow Business Event 成功轉存到 WebSphere Adapter 監聽的事件儲存中
將 Oracle Workflow Business Event(oracle.apps.po.event.xmlpo)轉存到 WebSphere Adapter 監聽的事件儲存中,我們使用一個 stored function 來完成,並在 Oracle Workflow Business Event(oracle.apps.po.event.xmlpo)的訂閱中訂製事件發生時呼叫此 stored function。所以整個轉存的核心是該 stored function 的定義,它首先要能正確解析 Oracle Workflow Business Event,把事件的關鍵資訊摘取出來,其次要能按照 WebSphere Apdater 監聽的事件儲存結構,儲存摘取出來的事件關鍵資訊。兩者缺一不可,這就要求讀者在定義這樣一個 stored function 之前,明確 Oracle Workflow Business Event 的結構以及 WebSphere Apdater 監聽的事件儲存結構。
藉助於 WebSphere Adapters for Oracle E-Business Suite V7.2,通過整合 Oracle Workflow Business Event System,我們完成了訂單業務在 Oracle E-Business Suite 和 IBM WebSphere 產品之間的整合。本文通過示例場景介紹瞭如何在 Oracle E-Business Suite 中建立事件訂閱及訂製事件發生時所觸發的行為,並描述了利用 WebSphere Adapter for Oracle E-Business Suite 在 WID/WPS 環境中進行業務整合的示例開發、配置和測試過程。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-675841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用 WebSphere Business Modeler 實現業務流程的直接部署Web
- 瞭解 WebSphere Business Modeler 與 FileNet 整合Web
- 將 Business Events 與公共業務事件整合事件
- 使用 WebSphere Business Modeler 進行業務建模Web行業
- WebSphere Adapter和WebSphere Process Server為SAP構建RESTful整合,第1 部分WebAPTServerREST
- WebSphere Business Events 進行業務事件處理Web行業事件
- 使用 WebSphere Business Events V6.1 進行業務事件處理Web行業事件
- WebSphere Business Events 構建業務事件應用程式Web事件
- MQ和WEBSPHERE整合 (轉)MQWeb
- 整合MQ和WEBSPHERE (轉)MQWeb
- 利用 Lotus Web Service Consumer 整合 WebSphere Process Server 業務流程WebServer
- WebSphere Adapter V6.1 在 WPS ND 環境中進行 EIS 整合WebAPT
- 自定義 WebSphere Business Monitor 業務空間的外觀Web
- 使用WebSphere Business Events REST介面從應用程式發出簡單業務事件WebREST事件
- WebSphere和Tuxedo Server整合方案1WebUXServer
- WebSphere在Myeclipse中的整合WebEclipse
- iOS使用fastlane實現持續整合iOSAST
- Oracle System Event TriggersOracle
- 整合WebSphere BusinessModeler和Rational Asset ManagerWebSSM
- 使用 Castle 實現 AOP,以及 Autofac 整合 CastleAST
- 整合Websphere Application Server 5.0與IIS 5.0WebAPPServer
- 使用CXF與Spring整合實現RESTFul WebServiceSpringRESTWeb
- 業務資料目錄整合
- Oracle 大資料整合實施Oracle大資料
- 使用 .NET 整合 MinIO 實現高效物件儲存物件
- 輕鬆實現報表整合
- V$SYSTEM_EVENT等使用詳解
- 「CI整合」基於Jest Mock API對業務邏輯整合測試MockAPI
- 整合 WebSphere Process Server 與 SCA 功能包,第 1 部分WebServer
- 請各位對domino和websphere整合發表點看法Web
- spring boot使用Jedis整合Redis實現快取(AOP)Spring BootRedis快取
- springboot整合FastDFS使用實現防盜鏈功能Spring BootAST
- 使用Spring Boot實現資料庫整合配置案例Spring Boot資料庫
- SpringBoot2 整合日誌,複雜業務下的自定義實現Spring Boot
- WebSphere Business Services Fabric v6.1 概述Web
- 在 System i server上使用LEI 整合非Domino/Notes資料Server
- SAP BTP 上 workflow 和 Business Service 的 project 管理Project
- Jenkins + git實現持續整合JenkinsGit