SAP HANA ODATA 跨域访问

在 SAP HANA 中,我们通过开源的 ODATA Java 实现 — Apache Olingo,构建了一个 Java Application 来实现 ODATA。ODATA Service 的地址是访问
ApplicationPath/*.svc
当你访问这个地址时,会自动调用同名的 servlet 进行相关的操作。

当我们访问这个地址时,一切还是正常的。但当我们在构建的 HTML5 Application 中为了使用该 ODATA Service 中的数据,将该地址作为 ODATA Service 地址传入的时候,访问出现了
400 Bad Request

odata-400
出现400无效请求的原因是因为 ODATA Service 和 HTML5 Application 不在同一个域中,为了保护数据,ODATA 对来自其他域的请求做了限制。

解决的方法是在 HANA 中设置一个 Destination 作跳转:
Continue Reading…

如何使用 SAP HANA 上的 ODATA 接口?

在阅读本文前,请确保:
1.你拥有一个 HANA 账户,没有的话可以访问 http://hanatrial.ondemand.com/ 申请免费体验账户;
2.新建一个 HANA Instance,参考 tutorial :Getting your free Trial HANA Instance on SAP HANA Cloud Platform
3.新建一个 HANA XS Application,参考 tutorial :Hello World! Develop your first SAP HANA Application using the SAP HANA Web-based Development Workbench

How to use ODATA interface on SAP HANA?

在 SAP HANA 中,我们通常意义上的 database 是以 schema 的形式呈现给开发者的。

对数据库中的数据进行直观的操作有两种方法:
1.一种是官方比较推荐的,也是我们内部开发中比较推崇的方法:Cloud。
在云端做相关的编辑和修改。具体是通过 SAP HANA Cloud Cockpit 中的 SAP HANA Web-based Development Workbench 进入 catalog 中打开 SQL console 进行操作;
2.另外一种则是通过安装了 HANA 插件的 Eclipse ,连接到 HANA Cloud System 中进行相关的操作。

我们都知道,每个 HANA System 上都会跑若干个 Instance, 每个 Instance 相当于一个节点,你可以在这个 Instance 上建立若干个 XS Application, Java Application 和 HTML5 Application。
这些 Application 要从后台的数据库对数据进行增删改查有很多方法,例如我们熟知的 JDBC,ODBC 和 ODATA 等等。
我们这次重点要说的是 ODATA,是一种描述如何创建和访问Restful服务的OASIS标准。SAP 在 HANA 相关的开发中极力推崇使用这个标准,并在 HANA 中有相关的实现。
在 HANA 的 Hello World 中,官方用一个简单的例子,演示了如何从一个 table(’SYS’.’DUMMY’)中取出数据在前端进行呈现,用的就是 ODATA。
Continue Reading…