前言
第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