• 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数据可视化案例
    计算机操作系统-第十天
    Stable Diffusion webui 源码调试(二)
    Rocket MQ Crash-Safe机制浅析
    《深入浅出OCR》第二章:OCR技术发展与分类
    WiFi基础学习到实战(一)
    「Python实用秘技13」Python中临时文件的妙用
    CAS: 1816258-36-2 Biotin-PancreaticPoly Peptide , human
    linux openlab搭建web网站
    盘点一个os.path.join()函数遇到的小问题(文末赠书)
  • 原文地址:https://blog.csdn.net/wangbanmin/article/details/136712357