Skip to Content

这是open.sap.com的免费课程,一共需要6周的时间,每周会有几个单元的讲解伴随练习题。对于想了解HANA的同学来说很有帮助。

第一单元 基于HANA的应用简介

主要是基于HANA开发的一些基本概念。关于HANA本身的特点,我就不赘述了。那么至于基于HANA的开发,不是简单的写SQLScript和存储过程,那样的话依然是把HANA当做一个数据库来使用。而SAP现在强调的是HANA是一个平台。而使HANA可以称为平台的重要里程碑是SPS5,它使得HANA内置了应用引擎XS extended application services。这使得我们可以在其上利用javascript和HTML5直接开发应用,而因为HANA XS这个轻量级应用层,前端直接连接HANA,免去了应用服务器物理一层。

12

对于基于HANA的应用主要分两种:Native与非Native。那么Native应用就是利用之前提到的XS引擎开发的,直接运行于HANA平台之上的应用。非Native当然就是那些把HANA当做数据库,利用JDBC ODBC等连接到HANA来,运行于应用服务器上的应用,比如SAP Business Suite on HANA。

21

33

41

Thomas强调,Native应用不仅仅可以构建简单的web应用,还能够开发出极其复杂的应用。关于这点,是我本人的疑问,看看随着课程的深入是否可以解答。因为我们都知道C++ JAVA的出现,其实是为了应对越来越复杂的软件应用开发,而非效率,从效率的角度说,当然是C更高,如果要抬杠的话,汇编语言。但是他们的可读性,可编程性,复杂度,可维护性都很差。那么从这个角度来说,直接基于XS编写应用,而将逻辑推入HANA,很难想象的可以开发出来企业级复杂应用。从我个人的角度来说,Suite on HANA这种非native应用反而更成熟。当然,据我所知,SAP已经推向市场的Sales Operation&Planning基本可以归类为这种native application,但是具体这个产品有多复杂,就不得而知了。

第二单元 开发工具

基于HANA的应用开发工具是基于ECLIPSE的,即HANA Studio。在老的版本的HANA Studio里只具备HANA的管理和建模视图,而最新版的已经有了HANA开发视图。如我前面的一篇BLOG所介绍,SAP正在将ECLIPSE作为开发工具的战略方向,越来越多的开发工作都可以在基于ECLIPSE这个世界级的开源IDE平台上来进行。

在HANA开发视图里有三个主要标签页,分别是项目、HANA资源库和导航。

13

其中项目并没有什么特别的,只要用过ECLIPSE做开发的人一定对它不陌生。要强调的是这里看到的所有的对象都是保存于本地的对象。而导航视图与以前HANA studio里传统视图是一样的,能够看到数据库catelog下各个schema的底表,能看到package下的内容,和role 用户。
HANA资源库看到的是保存于HANA平台上的对象,也是就是在服务器端的。这里面就有一个问题,对于开发来讲,最普遍的版本管理在哪里?HANA资源库就是一个版本管理工具,所以当我们创建一个HANA开发项目并且要与HANA资源库同步时,要选择HANA资源库也就是要连接的HANA系统以及要保存对象的HANA PACKAGE。

22

34

为了实现版本管理,有一个比较有意思的地方是,我们需要安装HANA CLIENT。HANA CLIENT作为连接HANA的驱动被我们所熟知,可是岂不知安装它时也带了一个regi的程序,帮助HANA STUDIO和HANA资源库之间进行版本管理的工作。所以,安装HANA CLIENT是一个开发前提。

42

51

通过开发资源库标签页,我们可以checkout一整个project,复制到本地,在项目视图里继续工作。当然,讲了这么多,都是跟版本管理相关的,项目该有的checkin checkout,在HANA应用开发里也不例外。

6

第三、四单元 HANA开发工具准备

这里基本没什么内容。大家只要知道去scn.sap.com的developer center下,找到HANA类别访问,里面有为开发者准备的试用版HANA studio HANA Client就行了。
其中对HANA Cloud One的介绍比较有意思。这里能让你实实在在的感觉到云计算的好处。http://scn.sap.com/docs/DOC-31722 访问这个链接,大家可以选择托管HANA环境的云服务商,其中重点讲解和推荐了亚马逊,因为它足够灵活,可以按小时付费,而每小时的价格还不足1美金(50美分起),这对于没有环境又想学习HANA的开发人员来说实在是个好事情。记得当年我刚学SAP时就是付费试用一些别人管理的服务器(其实他们这么做是违法的,那些服务器都是盗版 :P),如果当年有这样的服务,该有多好!

第五单元 体验XS应用

这一单元主要是让大家体验一个基于JAVA的XS应用开发,有一个感性的认识。前面的单元对这部分内容已经有所介绍:

创建一个项目=》贡献跟一个项目,也就是与某个HANA资源库同步=》选择HANA系统和保存项目的包

那么对于一个XS项目来说有两个十分重要的文件,一个是.xsapp一个是.xsaccess,都是只有后缀的文件。.xsapp是一个空文件,它的作用主要是告诉应用服务器当前应用是一个xs应用。.xsaccess的文件里面就有配置项了,比如访问认证方法,下面的练习我们会看到。

111

我们首先在项目下新建这两个文件,其中.xsaccess的内容为:

{

“exposed”: true,

“authentication”:[{ “method”: “LogonTicket” },{ “method”: “Basic” }]

}

熟悉SAP系统的人一定对这些认证方法很熟悉,但是目前HANA XS只支持以上两种加上Form,但是其它的认证方法正在陆增加,比如SAML Kerbros。

接下来就是真正起作用的文件了,XS服务器端javascript文件。
121

文件的内容为:

$.response.contentType = “text/html”;

var output = “Hello XS project <br/>”;

var conn = $.db.getConnection();

var pstmt = conn.prepareStatement( “select * from DUMMY” );

var rs = pstmt.executeQuery();

if(!rs.next()){

$.response.setBody( “Filed to retrieve data” );

$.response.status = $.net.http.INTERNAL_SERVER_ERROR;

}

else{

output = output + “This is the response from my SQL: ”

+ rs.getString(1);

}

rs.close();

pstmt.close();

conn.close();

$.response.setBody(output);

基本对于程序员来说,理解这段代码就是piece of case。只是我发现我在徒手敲这段代码时,当我输入rs加上一个点,我本满心期待着熟悉的方法提示框,结果是没有…output倒是出来了。可能是某些库没有在本地,所以本地编辑器没法提示。希望在后面的课程里能看到相关的内容,否则客户端编写服务器端程序而不具备语法提示,这用不用eclipse都没什么区别了。

之后我们将整个项目commit active

131

检验我们最后的成果的时候到了。打开浏览器,访问HANA的IP加上端口号8000,嗯,默认的页面还是很漂亮的。

14

我们在后面以项目名称作为后缀,再加上刚开开发的文件名即retrieveData.xsjs,简陋的结果便显示出来了。

15

To report this post you need to login first.

1 Comment

You must be Logged on to comment or reply to a post.

Leave a Reply