天天看點

什麼是SAP HANA Database Procedure(資料庫過程)

SAP HANA資料庫給開發人員提供了一種程式設計方式的選擇,能夠在資料庫層直接編寫應用邏輯。這些應用邏輯可以實作在所謂的資料庫過程(database procedure)裡,實作語言為SAP HANA SQLScript.

什麼是SAP HANA Database Procedure(資料庫過程)

我們可以把資料庫過程簡單地類比成一個隻能進行資料庫讀寫相關方面的函數,能接收任意多個輸入參數和定義輸出參數,存放資料庫操作的結果。參數的類型既可以是标量式類型,比如integer, double, varchar等,也可以是table類型。

什麼是SAP HANA Database Procedure(資料庫過程)

使用ABAP Development Tool, 我們可以選擇兩種不同的方式來實作資料庫過程。第一種,即本文标題提及的AMDP, 第二種為Xxx, 不在本文讨論範圍之内。

AMDP, 顧名思義,即在ABAP層進行HANA資料庫過程的實作和生命周期(lifecycle)的管理。開發人員通過位于ABAP層的ADT, 編寫HANA SQLScript作為AMDP的實作體,以此達到在ABAP層直接消費HANA資料庫層原生功能的目的。

什麼是SAP HANA Database Procedure(資料庫過程)

具體到實作環節,在ABAP層内何種類型的開發對象裡編寫HANA SQLScript呢?答案仍然是ABAP類的方法内,隻不過是在一種聲明了特定接口的ABAP類,用AMDP特定的ABAP關鍵字修飾的方法内。繼續沿用ABAP類方法來開發AMDP, 使得傳統ABAP應用開發人員除了熟悉HANA SQLScript文法外,無需付出額外的學習成本。這種特殊的ABAP類方法,作為HANA SQLScript的承載容器,使得AMDP同其他普通的ABAP開發對象一樣,采取統一的ABAP傳輸管理,生命周期管理,代碼缺陷和更新管理方式。

什麼是SAP HANA Database Procedure(資料庫過程)

It enables the shipment of AMDP in the same way as any other ABAP development object (lifecycle management)

It allows you to implement and ship corrections for AMDPs, just like it is possible for ABAP classes, including SAP Note support (supportability and extensibility).

除了AMDP之外,資料庫過程代理也是另一種HANA資料庫過程的實作方式。這種方式首先在HANA repository裡建立一個HANA原生的資料庫過程,再到ABAP層建立一個代理指向前者,在ABAP應用裡通過使用該代理對象消費HANA倉庫裡的原生資料庫過程。同AMDP相比,這種方式需要在HANA層進行原生開發,是以在實際的開發中,SAP更推薦使用AMDP.

什麼是SAP HANA Database Procedure(資料庫過程)