SAP HANA 开发模式 - 基于SAP HANA平台的多团队产品研发
“基本”开发模式
Windows:
Unix/Linux:
在基本模式下我们可以通过regi来进行激活我们的object。Regi是一个类git功能的,方便和HANA repository交互的一个命令行工具。
具体步骤如下:
- 创建一个HANA的user key:
hdbuserstore SET <key> <hana server>:<port> <UserName> <Password> - 创建 xs的workspace
regi create workspace <project folder> <key> - Track xs project packages
regi track <package> - 提交
regi commit - 激活项目
regi activate
其中第4,5步可以使用regi push一次完成。
整个步骤合起来举个例子:
hdbuserstore SET HANADEV 127.0.0.1:30015 SYSTEM manager
regi create workspace HanaDevelop HANADEV
cd HanaDevelop
regi track sap.hana.demo
regi commit
regi activate
“官方”开发模式
+
+ 其他插件
在老版本hana studio中是使用regi和HANA repository交互的,从rev 70以后对此进行了增强,不在使用regi了。具体信息:http://scn.sap.com/community/developer-center/hana/blog/2013/12/03/sap-hana-sps07--various-new-developer-features
所有的东西都在HANA中了,更确切的说是repository
具体步骤:
- 在HANA Studio中创建一个新的repository package
- 创建新的project
- 通过XS Team Provider,share新创建的项目
- 在project中创建新的object,commit并activate
进行到这里我们已经拥有一个不错的开发环境,但是我们如何去debug呢?别急我们需要一些特别的设置。(这是服务器端的debugger)
xsengine.ini
- debugger – enabled:true
- debugger – listenport:47112
到这里,大家觉得怎么样?有什么想法?这些开发模式对多团队,大规模开发能行么?和我们市面上流行的,高大上的叫法“Best Practice”好像不匹配嘛。
“多团队大规模”的开发模式
- 用GIT来管理源码 (or P4、SVN这个无所谓哪一种)
- 用Maven来管理project
- 多个人在同一个HANA Instance上工作,而且还不是ABAP那种模式
- 和持续集成系统集成起来
我们使用maven,主要就是用regi maven plugin来和HANA Repository交互。这个plugin实现regi的操作,把这些复杂命名都隐藏起来。当然也可以通过其他plugin来实现和HANA Repository的交互。
在这个开发模式下,我们最想要的就是:
- 很多的开发人员可以在同一个HANA Instance上开发
- 很多的测试人员多个版本可以在同一个HANA Instance进行测试
很明显,默认的开发模式不支持这样的想法。那我们如何做到这些呢?这里有个方法就是我们的最上层package变成可配置的。
例如:sap.hana.demo 变成 ${rootPackage}.hana.demo
rootPackage可以根据每个人的员工号去设置。通过maven的配置,我们很容易实现我们想要的。如果对具体做法感兴趣且听下回分解。