1. 程式人生 > 其它 >SAP ABAP 平臺新的程式設計模型

SAP ABAP 平臺新的程式設計模型

ABAP 程式語言的演變

在過去 40 多年中開發的所有 SAP 功能中,大部分都是用 ABAP 編寫的。ABAP 程式語言是我們的旗艦語言,並且已經證明它是開發業務應用程式的經過驗證的強大平臺。

多年來,SAP 對 ABAP 程式語言進行了更新和現代化,我們可以區分 3 個主要里程碑:

  • 經典 ABAP 程式語言(最高至 Netweaver ABAP 7.50)
  • SAP FIORI 的 ABAP 程式設計模型(從 Netweaver ABAP 7.50 開始)
  • RESTful ABAP 程式設計模型(自 ABAP 平臺 1909 起可用)

眾所周知,我們的許多 SAP 客戶仍在使用可用於基於 SAP Netweaver 7.40 及更低版本的 SAP 產品的經典 ABAP 程式設計模型執行和開發 SAP 軟體。

隨著 ABAP 版本 7.4,SAP 開始為 SAP HANA 記憶體資料庫(程式碼下推)優化 ABAP 平臺,但其中許多應用程式仍然基於經典的 Dynpro、Web Dynpro ABAP、Floorplan Manager 和 WebClient UI 框架。

SAP Fiori的ABAP 程式設計模型 隨 SAP Netweaver 7.50 一起釋出,提供了一種標準化的方式來高效地開發現代 SAP HANA 優化的基於 Web 的應用程式。

為什麼是程式設計模型?因為它提供了一個標準化的、有據可查的、模型驅動的程式設計模型,可以極大地改進預設實現任務。當然,可以在沒有預定義程式設計模型的情況下開發應用程式。然而,這導致了跨不同應用領域的非常異構的方法(例如,沒有用於整合測試的通用方法、端到端堆疊的可追溯性和支援工具、無法保證 UI 解耦等……)

SAP Fiori 的 ABAP 程式設計模型基於成熟的技術(CDS、BOPF 和 SAP Gateway)。

在 SAP Netweaver 7.51 中,SAP Fiori 的 ABAP 程式設計模型得到了改進,添加了額外的功能以支援無狀態應用程式(消除傳統客戶端-伺服器模型的緊密耦合以避免伺服器粘性,以便應用程式可以從一個應用程式伺服器遷移到另一個,以便應用程式上下文不儲存在應用程式伺服器級別)

ABAP 平臺的主要投資之一是RESTful ABAP 程式設計模型 (RAP),該模型自 SAP Cloud Platform 1808 釋出以來已普遍可用,現在也可用於 SAP S/4HANA 內部部署和 ABAP 平臺 1909 - 前提釋出。

RESTful ABAP 程式設計模型是 SAP Fiori ABAP 程式設計模型的進化繼承者。它包括 ABAP 語言、開發工具和框架的基本擴充套件,可在 AS ABAP 中實現本質上 SAP HANA 優化的 SAP Fiori 應用程式和 Web 服務的高效端到端開發。

本次 shipment 的重點是查詢(只讀應用)的使用以及基於現有應用邏輯的非託管事務性應用的開發:

藉助這種全新的 RESTful ABAP 程式設計模型,您可以擴充套件現有的 SAP ABAP 應用程式或使用最先進的技術開發新的應用程式。

但我們知道,有時客戶更喜歡或需要使用不同的程式語言、工具和/或框架……這就是 SAP 還提供新的程式設計模型的原因,SAP 雲應用程式程式設計模型 (CAP) ,這是一個開放的框架,包含用於構建企業級服務和雲原生應用程式的語言、庫和工具。

SAP Cloud 應用程式程式設計模型 (CAP) 也像 RESTful ABAP 程式設計模型 (RAP) 一樣基於核心資料服務 (CDS),但提供對 JAVA 和 node.js 的支援,並且可以更靈活地整合其他框架、庫和工具。

讓我們嘗試總結一下 SAP 當前提供的用於開發/擴充套件 SAP 應用程式的解決方案。SAP 提供了兩種基於 REST 的應用程式程式設計模型:

(1) ABAP RESTful 程式設計模型 (RAP)

  • FIORI 的 ABAP 程式設計模型的演變
  • 自 1808 年以來可用於 SAP Cloud Platform、ABAP 環境
  • 可用於 1909 年以上的 S/4HANA(目前功能範圍已縮小)

(2) SAP 雲應用程式程式設計模型 (CAP)
基於 CDS 但基於 Node.js 和 JAVA

值得注意的是,雲平臺應用程式程式設計模型(或 CAP)和 Restful ABAP 程式設計模型(RAP)在概念上的相似性。兩者都基於 CDS(核心資料服務),但在 CAP 中是在 Java 或 Node.js 上實現的,而不是 ABAP.

更多Jerry的原創文章,盡在:"汪子熙":