WebSphere Adapter和WebSphere Process Server為SAP構建RESTful整合,第1 部分

CloudSpace發表於2010-07-26
Shan Yu, 軟體工程師, IBM
簡介: Representational State Transfer (REST) 是用於設計分散式 Web 應用程式的主流架構風格。本系列介紹如何使用 WebSphere® Adapter、WebSphere Integration Developer 和 WebSphere Process Server 構建 RESTful Web 服務,以及如何更方便地對 SAP 使用端到端業務整合解決方案。第 1 部分介紹為 SAP 的 BAPI 和 ALE 介面構建 RESTful 出站服務的兩種方法。這些方法有助於開發新的業務整合解決方案,以及把現有的傳統服務資產轉換為 RESTful 風格。
 

簡介

本文提供:

  • 對 RESTful Web 服務、WebSphere Process Server、WebSphere Integration Developer 和 WebSphere Adapter for SAP® Software 的簡要概述,主要關注出站概念。
  • External Service Discovery (ESD) for SAP 的一些關鍵步驟。
  • 使用 WebSphere Integration Developer 為 SAP 的 Business Application Programming Interface (BAPI) 和 Application Link Enabling (ALE) 介面構建 RESTful Web 服務的兩種方法。第一種方法提供輕量的客戶機呼叫風格,而第二種方法讓服務實現非常簡單。

示例將使用 WebSphere Adapter for SAP V7、WebSphere Integration Developer V7 和 WebSphere Process Server V7。第一種方法和第二種方法也適用於上述產品的 Version 6.2。

 

RESTful Web 服務

Representational State Transfer (REST) 是一種用於設計分散式 Web 應用程式的架構風格。它使用 URI 代表各個資源,使用標準的 HTTP 方法(GET、POST、PUT 和 DELETE)訪問資源。通訊是無狀態的,這意味著伺服器不保留客戶機通訊的狀態,僅僅處理當前請求。

REST 可以提高可伸縮性和簡化架構。具體地說,無狀態原則保證分散式伺服器可以平衡請求處理負載,而客戶機不會注意到差異。URI 支援一種通用且有效的命名方法。標準的 HTTP 方法可以大大簡化和統一介面的設計。

符合 REST 原則的 Web 服務稱為 RESTful Web 服務。目前,使用這種輕量且靈活的方法交付業務應用程式是標準方法,Yahoo®、Google®、Twitter® 等都提供 RESTful Web 服務。

 

WebSphere Process Server 和 WebSphere Integration Developer

WebSphere Process Server(後面稱為 Process Server)是一種業務過程整合伺服器和高效能的業務引擎。它支援在面向服務架構 (SOA) 環境中部署基於標準的業務整合應用程式。Process Server 提供豐富的整合功能,可以把各種業務服務和資產組合成優化的業務過程,見圖 1。


圖 1. WebSphere Process Server 概況
WebSphere Process Server 概況

WebSphere Integration Developer(後面稱為 Integration Developer)是一種基於 Eclipse 的工具,用於為 WebSphere Process Server 和 WebSphere Enterprise Service Bus (ESB) 構建基於 SOA 的業務過程管理 (BPM) 和整合解決方案。它提供豐富的特性,可以簡化整合開發,可以把現有的 IT 資產轉換為服務元件,從而加快實現 SOA 的過程。Integration Developer 提供易用的開發環境和內建工具,可以構造跨不同企業資訊系統 (EIS) 的過程和整合解決方案。

 

WebSphere Adapter for SAP Software:出站

WebSphere Adapter for SAP Software(後面稱為 SAP Adapter)讓應用程式能夠與 SAP 伺服器(SAP Web Application Server 和 SAP R/3 系統)互動並執行業務功能,而不需要編寫特殊的程式碼。

通過使用 SAP Adapter,應用程式可以向 SAP 伺服器傳送請求以呼叫特定的函式(出站),或者從 SAP 伺服器接收事件(入站)。SAP Adapter 支援多個介面以滿足各種整合需求,還提供連線管理、事務處理、高可用性等高階功能。

SAP Adapter 是 Integration Developer 的組成部分,用於為 SAP 構建整合解決方案。基於 GUI 的嚮導 External Service Discovery (ESD) 幫助發現 SAP 中的業務服務和後設資料。ESD 完成之後,解決方案所需的服務定義和工件就生成和準備好了。在此基礎上,可以使用 Integration Developer 提供的先進技術和特性開發解決方案,並公開為各種型別的服務。然後,把解決方案和服務部署到 Process Server 或 ESB 上並執行。

圖 2 顯示在一個整合解決方案的上下文中 SAP Adapter、Process Server 和 SAP 伺服器的拓撲。在這裡,SAP Java™ Connector (JCo) 是用於在 SAP Adapter 和 SAP 伺服器之間進行通訊的中介軟體元件。


圖 2. 使用 SAP Adapter 和 Process Server 的整合解決方案
使用 SAP Adapter 和 Process Server 的整合解決方案

對於出站,SAP Adapter 提供了多個介面,用於呼叫 BAPI/RFC 函式模組、提交 IDoc、查詢表、呼叫 SAP 中的 ABAP 處理器等等。支援同步和非同步(包括 qRFC 和 tRFC)呼叫風格。圖 3 給出所有出站介面的架構概況。


圖 3. SAP Adapter 出站介面的架構概況
SAP Adapter 出站介面的架構概況

在所有介面中,對於大多數 SAP 應用程式最重要的兩個介面是 BAPI 和 ALE。

BAPI 介面支援對 SAP 伺服器中的 BAPI 或 RFC 函式模組執行同步和非同步(事務性 RFC 和佇列 RFC)呼叫,這些模組是 SAP 中的預定義模組或定製模組,用於實現特定的 ERP 功能。使用業務物件 (BO) 代表 BAPI 呼叫,BO 包含輸入和輸出引數,見圖 4。


圖 4. BAPI 出站
BAPI 出站

ALE 介面支援向 SAP 伺服器傳送不同型別的 IDoc,轉發給相應的內部過程或模組。使用 BO 代表要傳送的一個或多個 IDoc 包,見圖 5。


圖 5. ALE 出站
ALE 出站

在本文中,我們使用 BAPI(第一種方法)和 ALE(第二種方法)構建 RESTful 服務。但是,這兩種方法適用於所有出站介面,而不僅限於其中幾個。

 

使用 ESD 發現 SAP 出站介面

在介紹構建 RESTful Web 服務的方法之前,需要使用 Integration Developer 中的 ESD 發現 SAP 系統中的服務和後設資料。在本節中,我們演示 ESD 的一些關鍵步驟,而不是所有步驟。關於如何使用 ESD for SAP Adapter 的資訊,請參見 Samples and Quick Start scenarios

如果已經獲得了 Integration Developer 生成的傳統匯入(出站)服務的資產,就可以跳過本節,直接學習構建 RESTful Web 服務的 兩種方法

  1. 在 Integration Developer 中,開啟 Business Integration 透檢視,然後單擊 File > New > External Service 以啟動 ESD。
  2. Adapters types 列表中選擇 SAP,見圖 6。

    圖 6. ESD - 選擇 SAP Adapter
    ESD - 選擇 SAP Adapter

  3. 在 ESD 期間和部署階段,需要 SAP JCo。配置 SAP JCo 檔案的路徑,見圖 7。

    圖 7. ESD - 找到 SAP JCo 庫
    ESD - 找到 SAP JCo 庫

ESD for BAPI

BAPI 實質上是 SAP 系統中的一個 RFC 函式模組。呼叫 BAPI 出站介面實際上是對這個模組執行 RFC 呼叫,從而在 SAP 中執行某個函式。在這個示例中,我們要發現一個名為 BAPI_CUSTOMER_GETDETAIL 的 BAPI,它根據提供的客戶號獲取客戶的詳細資訊。

  1. 配置用於發現的 SAP 系統連線資訊。另外,選擇 BAPI 作為 SAP interface name,見圖 8。

    圖 8. ESD - 指定 BAPI 的發現屬性
    ESD - 指定 BAPI 的發現屬性

  2. 對於 RFC 節點的篩選,在 Find objects with this pattern 框中輸入 BAPI_CUSTOMER_GETDETAIL 並單擊 OK。然後展開節點,選擇並匯入匹配的物件,見圖 9。

    圖 9. ESD - 篩選並匯入 BAPI
    ESD - 篩選並匯入 BAPI

  3. 指定複合屬性,見圖 10。輸入 CUSTOMER 作為 Business object name。新增 Retrieve 作為 Service operation,它對映到 BAPI_CUSTOMER_GETDETAIL

    圖 10. ESD - 指定 BAPI 的複合屬性
    ESD - 指定 BAPI 的複合屬性

  4. 然後,根據部署和執行時環境的設定,指定部署、安全、連線等的屬性,見圖 11。

    圖 11. ESD - 指定服務生成和部署屬性
    ESD - 指定服務生成和部署屬性

  5. 在 Location Properties 對話方塊中,單擊 ModuleNew,提供名稱 SAP_BAPI_OUTBOUND。在 Name 框中輸入 SAPBAPIOutboundInterface(見圖 12),然後單擊 Finish

    圖 12. ESD – 指定 BAPI 的位置屬性
    ESD – 指定 BAPI 的位置屬性

  6. ESD 完成之後,會在 Assembly Diagram 中建立一個帶有該介面的出站服務。還可以在 Properties 檢視中找到方法名 retrieveSapCUSTOMERWrapper,見圖 13。後面將在函式選擇器中使用這個名稱。

    圖 13. BAPI 出站介面
    BAPI 出站介面

ESD for ALE

對於 ALE 出站介面,為了讓示例簡單明瞭,我們使用一個簡單的 IDoc ALEREQ01。這個 IDoc 用於傳輸材料、客戶和廠商的基本資料。

  1. ALE 的 ESD 過程與 BAPI 相似。在 Discovery Properties 視窗中,選擇 ALE 作為 SAP interface name,見圖 14。

    圖 14. ESD - 指定 ALE 的發現屬性
    ESD - 指定 ALE 的發現屬性

  2. 開啟 Discover IDoc From System 節點的篩選,在 Find objects with this pattern 框中輸入 ALEREQ01 並單擊 OK。然後展開節點,選擇並匯入匹配的物件,見圖 15。

    圖 15. ESD - 篩選並匯入 IDoc
    ESD - 篩選並匯入 IDoc

  3. 在 Location Properties 對話方塊中,在 Module 框中輸入 SAP_ALE_OUTBOUND_ALEREQ01,在 Name 框中輸入 SAPALEOutboundInterface,見圖 16。

    圖 16. ESD - 指定 ALE 的位置屬性
    ESD - 指定 ALE 的位置屬性

  4. ESD 完成之後,會在 Assembly Diagram 中建立帶有該介面的 ALE 出站服務。還可以在 Properties 檢視中找到方法名 executeSapAlereq01,見圖 17。後面將在函式選擇器中使用這個名稱。

    圖 17. ALE 出站介面
    ALE 出站介面

 

第一種方法:為 SAP 出站介面構建 RESTful 服務

如果服務只需要幾個或不需要輸入引數,或者客戶機或使用者不應該提供複雜的輸入(比如 XML 格式),就適合使用第一種方法。與第二種方法相比,這種方法在實現期間需要的程式設計量比較多,但是可以讓客戶機呼叫更簡單、更容易使用。

第一種方法的示例是:使用者通過以下 URL 向 RESTful Web 服務發出 HTTP GET 請求,從而通過 BAPI 出站介面獲取客戶的詳細資訊:

http://://CUSTOMER/

為了實現這個 RESTful 服務,要實現一個函式選擇器類,它根據 HTTP 方法的型別選擇正確的服務函式並返回函式名。然後,新增一個資料繫結類,以便把來自 URL 的原生資料解析為業務物件。這個業務物件將作為 BAPI_CUSTOMER_GETDETAIL 的輸入。最後,為出站介面新增匯出,為匯出生成 HTTP 繫結,為繫結配置上面的類。

Web 服務模組將部署在 Process Server 上,從一個遠端 HTTP 客戶機測試它。

新增函式選擇器類

  1. 開啟 Java EE 透檢視,右鍵單擊模組專案 SAP_BAPI_OUTBOUND,選擇 New > Class,在 Package 框中輸入 com.ibm.rest,在 Name 框中輸入 RESTFunctionSelector。在 Superclass 框中輸入 HTTPFunctionSelector,單擊 Browse。在 Superclass Selection 對話方塊中,選擇惟一的匹配項(圖 19),單擊 OK,然後單擊 Finish(圖 18)。

    圖 18. 建立函式選擇器類
    建立函式選擇器類



    圖 19. 選擇 HTTPFunctionSelector 作為超類
    選擇 HTTPFuncti.or 作為超類

  2. 在生成的 RESTFunctionSelector 類中,修改 generateEISFunctionName 方法,讓它為 HTTP GET 返回 SAPBAPIOutboundInterface 的方法名,見清單 1。在這裡,還可以新增其他函式名以支援 HTTP 的 POST、PUT 和 DELETE 方法。

    清單 1. RESTFunctionSelector 類
    						
    public class RESTFunctionSelector extends HTTPFunctionSelector {
    
     @Override
      public String generateEISFunctionName(HTTPControl arg0, HTTPHeaders arg1,
        HTTPInputStream arg2) throws SelectorException {
      if (arg0.getMethod().equals("GET")){
    	return "retrieveSapCUSTOMERWrapper";
      } else {
    	return null;
      }
     }
    }

新增資料繫結類

  1. 選擇 New > Class 新增另一個類,在 Package 框中輸入 com.ibm.rest,在 Name 框中輸入 RESTDataBinding,見圖 20。
  2. Superclass 框中輸入 HTTPStreamDataBindingBytes(見圖 21),然後單擊 Browse。在 Superclass Selection 對話方塊中,選擇惟一的匹配項,單擊 OK,然後單擊 Finish

    圖 20. 新增資料繫結類
    新增資料繫結類



    圖 21. 選擇 HTTPStreamDataBindingBytes 作為超類
    選擇 HTTPStreamDataBindingBytes 作為超類

  3. 修改生成的 RESTDataBinding 類,見清單 2。在這裡,通過 URL 的最後一個 “/” 後面的引數獲取客戶號。然後,為 BAPI 建立新的輸入業務物件,在輸入業務物件的屬性中設定客戶號。

    清單 2. RESTDataBinding 類
    						
    package com.ibm.rest;
    
    import java.io.IOException;
    import com.ibm.websphere.http.data.bindings.HTTPStreamDataBindingBytes;
    import com.ibm.websphere.http.data.streams.HTTPInputStream;
    import com.ibm.websphere.sca.sdo.DataFactory;
    import commonj.connector.runtime.DataBindingException;
    import commonj.sdo.DataObject;
    
    public class RESTDataBinding extends HTTPStreamDataBindingBytes {
     DataObject dataobject = null;
     String nativeData = null;
    
     public void convertFromNativeData(HTTPInputStream httpinputstream)
      throws DataBindingException, IOException {
    	setDataObject(parseNativeData(parseRestURL(getControlParameters().getURL())));
      }
    
    	/*
    	 * Create a data object of a specific type, 
    	 * then set the properties of the data object with values parsed from input 
    	 */
    	public DataObject parseNativeData(byte arg[]) {
    		
    		// Note: Customize the namespace and name according to your generated
     Business Object schemas (xsd)
    		dataobject = 
    DataFactory.INSTANCE.create("http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/
    sapcustomerwrapper", "SapCUSTOMERWrapper");
    		dataobject.createDataObject("SapBapiCustomerGetdetail");
    		dataobject.getDataObject("SapBapiCustomerGetdetail").setString
    ("CustomerToBeRequired", new String(arg));
    
    		return dataobject;
    	}
    
    	public DataObject getDataObject() {
    		return dataobject;
    	}
    
    	private
     byte[] parseRestURL(String URL) {
    		return URL.substring(URL.lastIndexOf('/') + 1).getBytes();
    	}
    }

生成並配置 HTTP 繫結

  1. 開啟 Assembly Diagram,從左邊的 Palette 皮膚中把 Export 拖動到畫布上,見圖 22。把它改名為 BAPIRestExport,然後把它連線到 SAPBAPIOutboundInterface。在彈出的 Add Wire 對話方塊中單擊 OK,單擊 Save

    圖 22. 新增 Export 並連線到 BAPI 出站服務
    新增 Export 並連線到 BAPI 出站服務

  2. 右鍵單擊 BAPIRestExport 並選擇 Generate Binding > HTTP Binding。在 Configure HTTP Export Service 對話方塊中,在 Context path 中輸入 /CUSTOMER,見圖 23。

    圖 23. 配置 HTTP 繫結
    配置 HTTP 繫結

  3. 在彈出的 Data Transformation Configuration 對話方塊中,單擊 Select for Default data format,單擊 Select your custom data format transformation from the workspace 的單選按鈕,見圖 24。然後單擊 Select,輸入 REST 並選擇匹配的 RESTDataBinding 類,見圖 25。單擊 OKFinish

    圖 24. 配置資料轉換
    配置資料轉換



    圖 25. 選擇 RESTDataBinding
    選擇 RESTDataBinding

  4. 與資料轉換相似,單擊 Select for Function selector ,見圖 23。然後,選擇 RESTFunctionSelector 作為函式選擇器類,見圖 26。單擊 Finish

    圖 26. 選擇函式選擇器
    選擇函式選擇器

  5. 生成 HTTP 繫結之後,會在 BAPIRestExport 的 Properties 檢視中看到以上配置,見圖 27。

    圖 27. Properties 檢視中的 HTTP 繫結
    Properties 檢視中的 HTTP 繫結

  6. 現在進入 Method Bindings,在 Context path 中輸入 /*,見圖 28。

    圖 28. 配置方法繫結 - 一般設定
    配置方法繫結 - 一般設定

  7. 進入 Method BindingsData Serialization 選項卡,選擇 RESTDataBinding 作為 Input data format(過程與圖 24 相似)。然後選擇 UTF8XMLDataHandler 作為 Output data format,見圖 29 和圖 30。儲存所有修改。

    圖 29. 配置方法繫結 - 資料序列化
    配置方法繫結 - 資料序列化



    圖 30. 選擇 UTF8XMLDataHandler
    選擇 UTF8XMLDataHandler

部署和測試 RESTful BAPI 介面

現在,要把 Web 服務模組部署到 Process Server 上。

  1. 開啟 Server 檢視,右鍵單擊 Process Server 例項,選擇 Add and Remove Projects 以將模組專案新增到 Process Server 上。
  2. 在發出請求之前,從 Process Server 的 Admin Console 獲得這個模組的上下文根:Applications > Application Types > WebSphere enterprise application > SAP_BAPI_OUTBOUNDApp > Context Root for Web Modules。我們的 Web 模組使用 SAP_BAPI_OUTBOUNDWeb 作為上下文根,見圖 31。

    圖 31. 從 Admin Console 獲得 Web 模組的上下文根
    從 Admin Console 獲得 Web 模組的上下文根

  3. Poster 是 Firefox® 的附加元件,用於通過各種 HTTP 方法與 Web 服務和 Web 資源互動。我們使用它對以下 URL 發出 GET 請求以測試 RESTful Web 服務(“0000000001” 是要查詢的客戶號),見圖 32。
    http://9.186.115.135:9080/SAP_BAPI_OUTBOUNDWeb/CUSTOMER/0000000001



    圖 32. 通過 Poster 測試 BAPI RESTful Web 服務
    通過 Poster 測試 BAPI RESTful Web 服務

  4. 傳送請求之後,在 Process Server 的 HTTP 響應中以 XML 格式返回客戶詳細資訊,見圖 33。

    圖 33. BAPI RESTful Web 服務的響應
    BAPI RESTful Web 服務的響應

 

第二種方法:為 SAP 出站介面構建 RESTful 服務

第二種方法更靈活,適用於需要 XML 格式的輸入資料的大多數 SAP 出站請求。它的實現也比較簡單。

第二種方法的示例是:使用者通過以下 URL 向 RESTful Web 服務發出 POST 請求,從而通過 ALE 出站介面在 SAP 系統中建立 ALEREQ01 IDoc。通過 HTTP POST 請求體以 XML 格式提供 IDoc 的內容。

http://://ALEREQ01

為了實現這個 RESTful 服務,要實現一個函式選擇器類,它根據 HTTP 方法返回目標函式名,這與第一種方法相同。對於資料轉換,使用內建的 UTF8XMLDataHandler 把 HTTP 請求體中的 XML 資料解析為業務物件作為輸入,還把業務物件轉換為 XML 資料作為響應。然後,演示如何新增匯出、生成 HTTP 繫結和配置繫結。

新增函式選擇器類

  1. SAP_ALE_OUTBOUND 專案中新增一個新類,在 Package 框中輸入 com.ibm.rest,在 Name 框中輸入 RESTFunctionSelector,選擇 HTTPFunctionSelector 作為 Superclass,見圖 34。

    圖 34. 建立函式選擇器類
    建立函式選擇器類

  2. 然後修改 generateEISFunctionName,見清單 3。

    清單 3. RESTFunctionSelector 類
    						
    public class RESTFunctionSelector extends HTTPFunctionSelector {
    
    	@Override
    	public String generateEISFunctionName(HTTPControl arg0, HTTPHeaders arg1,
     HTTPInputStream arg2) throws SelectorException {
    	if (arg0.getMethod().equals("POST")){
    		return "executeSapAlereq01";
    	} else {
    		return null;
    	}
     }
    }

生成並配置 HTTP 繫結

  1. 開啟 Assembly Diagram,從左邊的 Palette 皮膚中把 Export 拖動到畫布上。把它改名為 ALERestExport,然後把它連線到 SAPALEOutboundInterface(圖 35)。在彈出的 Add Wire 對話方塊中單擊 OK,單擊 Save

    圖 35. 新增 Export 並連線到 ALE 出站服務
    新增 Export 並連線到 ALE 出站服務

  2. 右鍵單擊 ALERestExport 並選擇 Generate Binding > HTTP Binding。在 Configure HTTP Export Service 對話方塊中,在 Context path 中輸入 /ALEREQ01,見圖 36。對於 Default data format,選擇 UTF8XMLDataHandler(預設)。對於 Function selector,選擇 RESTFunctionSelector。單擊 OK

    圖 36. 配置 HTTP 繫結
    配置 HTTP 繫結

  3. 生成 HTTP 繫結之後,會在 ALERestExport 的 Properties 檢視中看到以上配置,見圖 37。

    圖 37. Properties 檢視中的 HTTP 繫結
    Properties 檢視中的 HTTP 繫結

  4. 現在進入 Method Bindings > Generic,在 Context path 中輸入 /*,見圖 38。

    圖 38. 配置方法繫結 - 一般設定
    配置方法繫結 - 一般設定

  5. 進入 Method BindingsData Serialization 選項卡,選擇 UTF8XMLDataHandler 作為 Input data formatOutput data format,見圖 39。

    圖 39. 配置方法繫結 - 資料序列化
    配置方法繫結 - 資料序列化

  6. 最後,進入 HTTP Method Settings 選項卡並單擊 Add。在彈出的對話方塊中,選擇 POST 並使用預設值,單擊 OK。結果見圖 40。儲存所有修改。

    圖 40. 配置方法繫結 - HTTP 方法設定
    配置方法繫結 - HTTP 方法設定

部署和測試 RESTful ALE 介面

現在,要把 Web 服務模組部署到 Process Server 上。

  1. 開啟 Server 檢視,右鍵單擊 Process Server 例項,選擇 Add and Remove Projects 以將模組專案新增到 Process Server 上。
  2. 在發出請求之前,從 Process Server 的 Admin Console 獲得這個模組的上下文根:Applications > Application Types > WebSphere enterprise application > SAP_ALE_OUTBOUNDApp > Context Root for Web Modules。我們的 Web 模組使用 SAP_ALE_OUTBOUNDWeb 作為上下文根,見圖 41。

    圖 41. 從 Admin Console 獲得 Web 模組的上下文根
    從 Admin Console 獲得 Web 模組的上下文根

  3. 使用 Poster 對以下 URL 發出 GET 請求以測試 RESTful Web 服務:
    http://9.186.115.135:9080/SAP_ALE_OUTBOUNDWeb/ALEREQ01

  4. 另外,在 Content to Send 中提供輸入業務物件的 XML 內容,見圖 42 和清單 4。

    圖 42. 通過 Poster 測試 ALE RESTful Web 服務
    通過 Poster 測試 ALE RESTful Web 服務



    清單 4. IDoc ALEREQ01 的示例業務物件
    						
    
      
        
          SAP**1
          LS
          ALEREQ01
          SYUSERVER
          EDI_DC40
          200
          ALEREQ
          SAPCLNT200
          SYUPORT001
          LS
        
        
          
            ALEREQ
            ALEREQ
            
              50
              E
              EQ
              0
              100
            
          
        
      
    
    

  5. 傳送 IDoc 之後,返回輸出業務物件的 XML 內容,其中包含這個 ALE 非同步請求的事務 ID,見圖 43。

    圖 43. ALE RESTful Web 服務的響應
    ALE RESTful Web 服務的響應

 

結束語

本文介紹瞭如何使用 WebSphere Adapter for SAP、WebSphere Integration Developer 和 WebSphere Process Server 為 SAP 出站介面構建 RESTful Web 服務。使用 ESD for SAP Adapter 發現 SAP 中的出站服務和後設資料。本文介紹了兩種方法,第一種方法實現函式選擇器和資料繫結並配置 HTTP 繫結,從而為 BAPI 介面構建 RESTful 服務。第二種方法實現函式選擇器併為 HTTP 繫結配置預定義的資料處理器,從而為 ALE 介面構建 RESTful 服務。這些方法不但有助於更方便地為業務整合構建全新的 RESTful Web 服務,還有助於以 RESTful 方式利用現有的服務資產。

 

原文連結:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1004_yu/1004_yu.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-669483/,如需轉載,請註明出處,否則將追究法律責任。

相關文章