Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
2,247

这是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

1 Comment