首页 > 其他 > 详细

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

时间:2019-07-14 16:53:17      阅读:92      评论:0      收藏:0      [点我收藏+]
公众号:SAP Technical
本文作者:matinal
 

技术分享图片

 

前言部分

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

正文部分

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

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

点击进入:SAP HANA XS CDS简介

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

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

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

?
var XSDS = $.import("sap.hana.xs.libs.dbutils", "xsds");

?

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

?
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()方法构建的。

?
var qOrders = soHeader.$query();

?

4、优化查询。

?
qOrders = qOrders.$limit(3);

?

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

?
var result = qOrders.$execute();

?

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

 

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

?
var qOrderAndItemTitles = qOrders.$project({
 SALESORDERID: true,
 NETAMOUNT: "TotalNet",
 items: {
 NETAMOUNT: true
 }
});

?

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

?
[{
 "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如下所示:

?
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

?

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

可以关注我的公众号。

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

原文:https://www.cnblogs.com/SAPmatinal/p/11184375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!