本書是《SAP HANA實戰》的兄弟篇,也是其進一步的延續和深入。本書是一本面向應用開發的純技術書,瞄準基于SAP HANA原生應用開發的所有細節內容,囊括所有與SAP HANA、XS、UI5、HANA原生應用開發相關的內容。
本書邏輯上可分成五個部分,讀者可以根據下面的簡介來選擇性閱讀。
及時部分:包含第1~2章,主要講解SAP HANA應用服務器的各個組件、原生項目的開發架構、SAP HANA工作臺的主要操作、創建用戶、創建表、賦予權限等。
第二部分:包含第3~4章,主要介紹信息建模的基礎和高級特性、以及SQLScript,和存儲過程的相關知識。這部分內容相對獨立而且好上手,已經熟悉這些內容的讀者可跳過本章節,但是在后續的XS項目示例中,我們會應用到這部分所介紹的全部知識。
第三部分:包含第5~8章,講解了HANA原生應用開發過程涉及的絕大部分內容,包含XS項目的創建、核心數據服務(Core Data Service)、訪問控制、XSJS、OData服務和UI5前端集成、以及OData Web Service高效架構設計實踐、XSJS處理http請求、數據庫訪問、創建定時運行的作業等內容。
第四部分:包含第9~11章,這部分主 要通過一個具體案例來說明HANA XS原生應用的開發過程及所涉及的全部對象。在介紹過程中,一步一步不斷增加新特性,使這個例子成為一個完整和考慮周全的系統,還將這個開發后的XS 應用部署和傳輸到另外一個HANA系統,并重點介紹了修改控制、傳輸管理等細節內容。
第五部分:包含第12~13章及附錄。主要講解HANA應用上線后如何進行運維、團隊如何進行協同開發,以及如何實現系統的高可用。
另外在本書還單獨以問答的形式為讀者提供了作者多年的從業經驗和項目心得。
SAP中國官方博學專家撰寫。
囊括所有SAP HANA、XS、CDS、XSJS、OData高效服務開發及UI5數據集成重要技術細節,并通過一個完整實例,幫讀者快速掌握在SAP HANA平臺上進行高級應用開發的方法與技巧
至今SAP HANA已推出5年,全球客戶應用規模已超過1萬家。這和SAP HANA能夠極速解決客戶的海量數據運算難題有關,也和SAP最近這些年卯足了勁持續提升、每2個月一個新Revision、快速HANA新功能的投入密不可分。
從市場上客戶應用HANA的案例來看,已從早期利用HANA做BI商務智能應用、加速ERP報表應用、加速BW數據倉庫,進化到ERP on HANA、S/4 HANA這一新生態。
從技術平臺角度來看,SAP HANA也從一個單純的高性能內存數據庫,慢慢演變成了一個新應用的開發和部署平臺,即SAP HANA XS(Extended Application Server)。從一開始僅支持XSJS到現在支持XSJS、Node、Java、C 、Container技術等,SAP HANA越來越開放,越來越面向互聯網,并且成為SAP HCP(HANA Cloud Platform)公有云的應用服務平臺。因此,我們有必要在已經了解SAP HANA、HANA建模、存儲過程開發等知識的基礎上,進一步學習在SAP HANA平臺上設計、開發、部署、管理我們的企業應用。
內容簡介
劉剛,11年SAP領域工作經驗,主要涉及SAP NetWeaver、IS-CoreBanking、IS-Utility這些產品和解決方案的咨詢和研發工作,此前并著有《SAP HANA實戰》一書。
從2011年起,在SAP中國擔任高級方案架構師,幫助SAP數據庫和技術產品線在中國地區的市場開發、售前、以及各行業客戶的推廣和創新應用的支持工 作。目前,作者在SAP中國研究院擔任高級項目經理一職,負責SAP HANA、S/4 HANA、大數據相關領域的定制化研發項目。
Contents 目 錄
前言
第1章 SAP HANA和XS開發 1
1.1 SAP HANA系統的組件 2
1.1.1 數據庫服務的組件 3
1.1.2 應用服務和輔助組件 4
1.2 進入XS應用開發的新篇章 5
1.2.1 XS原生應用和Fiori Apps 6
1.2.2 XS應用開發架構 8
第2章 熟悉HANA開發環境 10
2.1 環境準備 10
2.1.1 SAP HANA服務器軟件及硬件 10
2.1.2 SAP HANA客戶端軟件 12
2.2 及時次親密接觸 14
2.2.1 幾個系統用戶 14
2.2.2 連接到SAP HANA系統 15
2.3 熟悉SAP HANA工作臺 18
2.3.1 視角切換 18
2.3.2 SAP HANA系統運行期對象 21
2.3.3 常用的三個按鈕 24
2.3.4 創建表和上傳數據 25
2.4 用戶、角色和授權管理 31
2.4.1 用戶管理 32
2.4.2 角色管理 35
2.4.3 關于授權 40
第3章 信息建模 43
3.1 準備工作和TPC-H 44
3.2 屬性視圖 45
3.3 分析視圖 63
第4章 建模進階和SQLScript 72
4.1 計算視圖 72
4.1.1 基本工作界面 72
4.1.2 計算操作 75
4.2 計算視圖―可視化方式 80
4.3 SQLScript 85
4.3.1 表類型 85
4.3.2 存儲過程 86
4.3.3 計算引擎函數CE Function 94
4.4 計算視圖―腳本方式 95
第5章 HANA XS原生應用 99
5.1 XS路線圖 101
5.2 XS應用開發 102
5.2.1 XS應用程序 102
5.2.2 XS項目開發流程 103
5.3 永遠的“Hello, World” 105
5.3.1 XS項目的開發視圖 105
5.3.2 創建XS資源庫的本地工作區 109
5.3.3 創建“Hello,World”的XS項目 111
5.3.4 訪問控制部分 114
5.3.5 運行程序 117
5.3.6 項目協同開發 118
5.4 從設計期到運行期 125
5.4.1 設計期對象的擴展名 126
5.4.2 可視化向導方式 127
第6章 深入XS開發 129
6.1 XS應用的開發流程 129
6.2 XS應用的訪問控制 131
6.2.1 應用描述文件 133
6.2.2 應用訪問控制文件 134
6.2.3 應用權限定義文件 142
6.3 XS項目開發規范 146
6.3.1 分門別類 146
6.3.2 Package和開發規則 147
6.3.3 對象如何引用 150
6.4 數據庫對象 151
6.4.1 創建Schema定義 151
6.4.2 創建Table定義 152
6.4.3 創建Table Type定義 157
6.4.4 創建Sequence定義 158
6.4.5 創建SQL View定義 159
6.4.6 創建Role定義 161
6.4.7 存儲過程 165
6.4.8 創建HANA模型視圖 168
6.4.9 數據自動加載 169
6.5 用CDS開發Table定義 172
6.5.1 CDS定義和組成 173
6.5.2 CDS文件分解 175
6.5.3 hdbtable還是CDS 182
6.5.4 示例:創建一個CDS 182
第7章 XS應用的后臺服務 185
7.1 支持XS應用的數據服務 185
7.2 OData服務―數據讀取 187
7.2.1 XS開發中的OData 187
7.2.2 快速定義OData服務 188
7.2.3 OData服務定義 191
7.2.4 OData訪問操作 201
7.2.5 OData輔助工具 201
7.3 OData服務―自定義出口數據更新 204
7.3.1 OData服務的自定義出口 204
7.3.2 創建操作 207
7.3.3 更新操作 208
7.3.4 刪除操作 209
7.3.5 關于數據傳遞 211
7.4 OData高效架構設計實踐 212
7.4.1 OData CUD程序架構設計 212
7.4.2 導入SHINE應用 214
7.4.3 測試源代碼介紹 217
7.4.4 OData調用存儲過程―方式B 219
7.4.5 OData調用XSJS―方式C.1 221
7.4.6 OData調用XSJS―方式C.2 225
7.4.7 OData調用XSJS―方式C.3 229
7.4.8 開發XS應用的方案 231
第8章 XSJS高級應用 236
8.1 Node和XSJS 236
8.2 XSJS的API分類 238
8.3 處理Request和Response 240
8.4 訪問HANA數據庫 244
8.4.1 舊數據庫API 244
8.4.2 新數據庫API 246
8.4.3 使用自定義DB訪問連接 249
8.5 使用XS DB Utilities 251
8.6 調用Web服務―SOAP 254
8.7 發送電子郵件 257
8.8 創建XS定時運行的作業 261
8.8.1 創建XS Job 261
8.8.2 XS Job訪問關系 264
8.8.3 配置XS Job和執行計劃 265
8.9 Java訪問XS Web服務 269
第9章 XS應用項目開發示例 272
9.1 示例項目的結構設計 272
9.2 創建XS項目 274
9.3 數據模型實現 276
9.4 主數據初始化 280
9.5 UI5界面和OData、HANA模型綁定 282
9.5.1 UI界面―客戶信息 282
9.5.2 UI界面―整體業務分析 287
9.6 從UI到后臺邏輯 291
9.6.1 UI5觸發HTTP請求 291
9.6.2 OData處理請求的出口定義 292
9.6.3 處理POST請求 293
9.6.4 處理DELETE請求 295
9.7 訪問控制和權限 296
9.7.1 訪問時的自動校驗 296
9.7.2 UI界面如何檢查應用權限 298
9.7.3 應用權限封裝為角色 301
9.8 應用部署 302
第10章 應用權限設計與開發 304
10.1 用戶設計和DB交互 305
10.1.1 前端用戶使用同一個DB賬號 305
10.1.2 前端用戶使用自己賬號 309
10.1.3 匿名訪問 311
10.2 數據訪問和隔離設計 312
10.2.1 數據讀取的隔離 312
10.2.2 數據更新,INVOKER還是DEFINER 318
10.2.3 真實Role或虛擬Role 320
10.3 應用運行期的用戶和權限處理 326
10.3.1 從XS應用層面創建用戶 327
10.3.2 程序中實現對用戶的授權 329
第11章 XS自動化傳輸和部署 332
11.1 產品管理 332
11.1.1 一些前提操作 333
11.1.2 管理Delivery Unit 335
11.1.3 管理Product 340
11.2 CR修改管理 342
11.3 自動化傳輸管理 344
11.3.1 注冊系統 346
11.3.2 傳輸路徑 348
11.3.3 傳輸DU―啟用CR模式 350
11.4 應用部署和分包策略 352
第12章 XS運維和開發協同 354
12.1 XS應用運維、協同開發和傳輸 354
12.1.1 簡約3系統架構 354
12.1.2 傳統6系統架構 355
12.1.3 傳輸時代碼鎖定,覆蓋失敗 357
12.1.4 運維傳輸的常見問題 359
12.2 訪問賬號的權限和角色設計 361
12.3 XS服務器的一些重要參數 364
第13章 XS系統高可用 366
13.1 HANA高可用方案 367
13.1.1 數據庫備份 368
13.1.2 存儲復制 369
13.1.3 節點自動故障切換 371
13.2 系統復制方案 371
13.2.1 Redo日志的復制模式 374
13.2.2 如何執行切換 377
13.3 系統復制的配置示例 378
13.3.1 系統復制―HANA工作臺 379
13.3.2 系統復制―使用命令行 383
13.4 瀏覽器訪問的重定向 385
附錄A SAP HANA快問快答 387