本节内容用于测试SAP HANA Odata interface,使用SAP HANA XS用于显示一个Odata collection。步骤与helloworld程序类似。
a、在SAP HANA repository中新建workspace;
b、在workspace中新建project,添加相应代码;
c、 share project。
过程详细如下:
1、在WorkShop中新建project:helloodata,同时新建文件.xsapp、.xsaccess,.xsapp内容为空,.xsaccess中添加代码{"exposed" : true}
2、创建一个schema。在helloodataproject中新建文件HELLO_ODATA.hdbschema,添加代码schema_name="HELLO_ODATA"。
3、在HELLO_ODATA schema中创建数据库表。新建文件otable.hdbtable,添加代码:
table.schemaName ="HELLO_ODATA"; table.tableType =COLUMNSTORE; table.columns = [{name = "Col1"; sqlType = VARCHAR; nullable = false; length = 20;comment = "dummy comment";}, {name ="Col2"; sqlType = INTEGER; nullable = false;}, {name ="Col3"; sqlType = NVARCHAR; nullable = true; length = 20;defaultValue = "Defaultvalue";}, {name = "Col4"; sqlType =DECIMAL; nullable = false; precision = 12; scale = 3;}]; table.primaryKey.pkcolumns= ["Col1", "Col2"];
保存,share project→commit→activate后,打开SAP HANAsystems,检查HELLO_ODATA schema。
4、赋权限。用SYSTEM用户登录后会发现没有hello_odata的select权限,如下图:
在SQL console中输入代码如下:
call_SYS_REPO.GRANT_SCHEMA_PRIVILEGE_ON_ACTIVATED_CONTENT('select','<SCHEMANAME>','<username>');
注意<username>区分大小写,赋权限成功,打开刚刚新建的表如下图:
5、新建文件hello.xsodata,添加代码如下:
service {"helloodata::otable";}
格式:<package.path>::<TableName>
service { "WorkShop.helloodata::otable"; }
浏览器中输入链接如下,测试成功:
http://<hana.server.name>:80<HANA_instance_number>/helloodata/hello.xsodata