前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SAP HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】

【SAP HANA系列】SAP HANA XS使用Data Services查询CDS实体【一】

原创
作者头像
matinal
修改2020-11-11 18:16:54
7700
修改2020-11-11 18:16:54
举报
文章被收录于专栏:SAP TechnicalSAP Technical

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

使用SAP HANA XS数据服务(XSDS)库来查询CDS实体,类似于JavaScript对象一样。

CDS是什么,请参考另一篇文章,链接如下,或者直接去SAP官网看介绍

点击进入:SAP HANA XS CDS简介

由于时间关系,不过多介绍概念内容,直接说过程

导入XS DS库并通过变量引用它。

1、导入XS DS库并通过变量引用它。

代码语言:javascript
复制
?
var XSDS = $.import("sap.hana.xs.libs.dbutils", "xsds");

?

2、导入要查询的CDS实体。

代码语言:javascript
复制
?
var soItem = XSDS.$importEntity("sap.hana.democontent.epm.data",
"EPM.SO.Item");
var soHeader = XSDS.$importEntity("sap.hana.democontent.epm.data",
"EPM.SO.Header", {
 items: {
 $association: {
 $entity: soItem,
 $viaBacklink: "SALESORDERID"
 }
 }
});

?

3、添加查询。与实体相关的一般查询是通过调用实体构造函数的$ query()方法构建的。

代码语言:javascript
复制
?
var qOrders = soHeader.$query();

?

4、优化查询。

代码语言:javascript
复制
?
qOrders = qOrders.$limit(3);

?

5、执行查询。使用$ execute方法运行查询

代码语言:javascript
复制
?
var result = qOrders.$execute();

?

6、指定查询应返回的字段。

使用$ project()方法创建一个查询,该查询指定查询应返回的字段。

代码语言:javascript
复制
?
var qOrderAndItemTitles = qOrders.$project({
 SALESORDERID: true,
 NETAMOUNT: "TotalNet",
 items: {
 NETAMOUNT: true
 }
});

?

投影字段的列表是一个JavaScript对象,其中所需字段由true或String文字标记

代码语言:javascript
复制
?
[{
 "SALESORDERID": "0500000236",
 "TotalNet": 273.9,
 "items": {
 "NETAMOUNT": 29.9
 }
}, {
 "SALESORDERID": "0500000236",
 "TotalNet": 273.9,
 "items": {
 "NETAMOUNT": 102
 }
}, {
 "SALESORDERID": "0500000236",
 "TotalNet": 273.9,
 "items": {
 "NETAMOUNT": 55
 }
}]

?

实际的数据库查询根据所涉及的关联自动加入所有需要的表。 在上面的示例中,生成的SQL如下所示:

代码语言:javascript
复制
?
SELECT "t0"."SALESORDERID" AS
 "t0.SALESORDERID",
 "t0"."NETAMOUNT" AS "t0.NETAMOUNT",
 "t0.items"."NETAMOUNT" AS "t0.items.NETAMOUNT"
FROM "Header" "t0"
LEFT OUTER JOIN "Item" "t0.items"
 ON "t0"."SALESORDERID"="t0.items"."SALESORDERID"
LIMIT 10

?

今天先写到这,后续内容下一篇更新。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言部分
  • 正文部分
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com