• HANA VIEW 用 ABAP 创建CDS VIEW,在生成ODATA


    这里我们做ADT来创建

    场景介绍:把hana中的一个底表,创建成ABAP的 CDS VIEW ,在把CDS VIEW 生成 OData 服务。

    一、创建CDS Table Function 

    红框内根据自身情况填写

    选择 Define Table Function with Parameters 创建 Data Definition

    完整代码,定义 结构

    1. @EndUserText.label: '财务报表生成ODATA'
    2. define table function ZDDF_AUTHDATA
    3. returns {
    4. MANDT: abap.clnt;
    5. GSMC : abap.char( 400 );
    6. GSDM : abap.char( 400 );
    7. CWDATE: abap.dats;
    8. ZYYWLR: abap.fltp;
    9. JZCSYL: abap.fltp;
    10. KCFJCX: abap.fltp;
    11. ZYYWSRZZ: abap.fltp;
    12. JLRZZL: abap.fltp;
    13. JZCZZL: abap.fltp;
    14. YSZKZZL: abap.fltp;
    15. YSZKZZTS:abap.fltp;
    16. CHZZTS:abap.fltp;
    17. GDZCZZL: abap.fltp;
    18. }
    19. implemented by method zamdp_authdata_002=>GET_ENTITY_SET;

    二、创建AMDP

    完整代码,定义取数逻辑, return 后边跟的sql 代码 是查询的 HANA 数据库对象表,

    注意 AMDT中的 zamdp_authdata_002 是上一步中定义过关联

    implemented by method zamdp_authdata_002=>GET_ENTITY_SET;

    1. class zamdp_authdata_002 definition
    2. public
    3. final
    4. create public .
    5. public section.
    6. interfaces: IF_AMDP_MARKER_HDB.
    7. class-methods:
    8. GET_ENTITY_SET
    9. for table function ZDDF_AUTHDATA.
    10. protected section.
    11. private section.
    12. endclass.
    13. class zamdp_authdata_002 implementation.
    14. method GET_ENTITY_SET by database function
    15. for hdb language sqlscript
    16. options read-only.
    17. return
    18. SELECT
    19. '100' as MANDT,
    20. "GSMC" AS GSMC,
    21. "GSDM" AS GSDM,
    22. TO_VARCHAR ("CWDATE", 'YYYYMMDD') AS CWDATE,
    23. "ZYYWLR",
    24. "JZCSYL",
    25. "KCFJCX",
    26. "ZYYWSRZZ",
    27. "JLRZZL",
    28. "JZCZZL",
    29. "YSZKZZL",
    30. "YSZKZZTS",
    31. "CHZZTS",
    32. "GDZCZZL"
    33. FROM "_SYS_BIC"."ZAUTHDATA001";
    34. endmethod.
    35. endclass.

    三、创建 CDS View Entity 

    完整代码  注意:@OData.publish: true  这行是标记该CDS VIEW 可发布成OData服务,

    这里注意 必须要指定 KEY  ,不然,激活会不成功。

    1. @EndUserText.label: 'CDS View Entity'
    2. @OData.publish: true
    3. define view entity ZDD_AUTHDATA as
    4. select from ZDDF_AUTHDATA as AUT
    5. {
    6. @EndUserText.label: '公司名称'
    7. key AUT.GSMC,
    8. @EndUserText.label: '公司代码'
    9. key AUT.GSDM,
    10. @EndUserText.label: '报表日期'
    11. key AUT.CWDATE,
    12. @EndUserText.label: '主营业务利润(元)'
    13. AUT.ZYYWLR,
    14. @EndUserText.label: '净资产收益率(%)'
    15. AUT.JZCSYL,
    16. @EndUserText.label: '扣除非经常性损益后的净利润(元)'
    17. AUT.KCFJCX,
    18. @EndUserText.label: '主营业务收入增长率(%)'
    19. AUT.ZYYWSRZZ,
    20. @EndUserText.label: '净利润增长率(%)'
    21. AUT.JLRZZL,
    22. @EndUserText.label: '净资产增长率(%)'
    23. AUT.JZCZZL,
    24. @EndUserText.label: '应收账款周转率(次)'
    25. AUT.YSZKZZL,
    26. @EndUserText.label: '应收账款周转天数(天)'
    27. AUT.YSZKZZTS,
    28. @EndUserText.label: '存货周转天数(天)'
    29. AUT.CHZZTS,
    30. @EndUserText.label: '固定资产周转率(次)'
    31. AUT.GDZCZZL
    32. }

    四、管理服务(添加生成OData服务)

    管理服务(事务码 /N/IWFND/MAINT_SERVICE

    五、测试服务

    /sap/opu/odata/sap/ZDD_AUTHDATA_CDS/ZDD_AUTHDATA?$top=10&$skip=10

    由于底表有21万条数据,需要分页执行OData

    元数据

  • 相关阅读:
    前端入门学习笔记三十八
    python中的exec()、eval()以及complie()
    JAVA面向对象基础
    MySQL表的操作
    CITE2022丨中科创达发布一站式交钥匙边缘计算解决方案 解锁边缘应用落地新方式
    PerfView专题 (第七篇):如何洞察触发 GC 的 C# 代码?
    Spring Cloud Eureka 服务注册中心【看这一篇就够了】
    如何查看一个期刊是sci几区以及影响因子 入藏号 ISSN等信息
    Git的基本使用(用户初始化配置、新建代码库、把文件提交到缓存区、把文件提交到本地仓库等)
    ARM64 MMU 映射
  • 原文地址:https://blog.csdn.net/wangbanmin/article/details/136712357