大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
使用SAP HANA XS数据服务(XSDS)库来查询CDS实体,类似于JavaScript对象一样。
CDS是什么,请参考另一篇文章,链接如下,或者直接去SAP官网看介绍
由于时间关系,不过多介绍概念内容,直接说过程
导入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
?
今天先写到这,后续内容下一篇更新。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。