zoukankan      html  css  js  c++  java
  • 【HANA系列】【第七篇】SAP HANA XS使用Data Services查询CDS实体【一】

    公众号:matinal
    本文作者: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

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

    可以关注我的公众号。

  • 相关阅读:
    hdu 4033Regular Polygon(二分+余弦定理)
    hdu 4405Aeroplane chess(概率DP)
    hdu 3853LOOPS (概率DP)
    网络编程基础(转)
    网络编程socket基本API详解(转)
    网络编程之socket(转)
    cf(#div1 B. Dreamoon and Sets)(数论)
    cf(#div1 A. Dreamoon and Sums)(数论)
    hdu 1805Expressions(二叉树构造的后缀表达式)
    hdu1710(Binary Tree Traversals)(二叉树遍历)
  • 原文地址:https://www.cnblogs.com/SAPmatinal/p/11184375.html
Copyright © 2011-2022 走看看