通过AMDP在CDS-View中进行计算视图

2020-09-12 03:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个问题:我在类(if_amdp_marker_hdb)中构建了一个方法,在该方法中,我从带有参数的计算视图中获取了数据(通过数据库过程)。 一切正常。

现在我想在CDS视图中使用此AMDP,但是如我所见,当该方法是数据库函数时,我只能在其上构建CDS表函数,但在我的情况下,这是一个数据库过程。 所以这行不通。

有人知道我如何在CDS视图中访问此AMDP吗? 或如何建立具有数据库功能且​​可访问计算视图的AMDP?

谢谢。...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我有一个问题:我在类(if_amdp_marker_hdb)中构建了一个方法,在该方法中,我从带有参数的计算视图中获取了数据(通过数据库过程)。 一切正常。

现在我想在CDS视图中使用此AMDP,但是如我所见,当该方法是数据库函数时,我只能在其上构建CDS表函数,但在我的情况下,这是一个数据库过程。 所以这行不通。

有人知道我如何在CDS视图中访问此AMDP吗? 或如何建立具有数据库功能且​​可访问计算视图的AMDP?

谢谢。...

付费偷看设置
发送
6条回答
土豆飞人
1楼-- · 2020-09-12 03:58

Thorsten,你好

也许这不是您要查找的内容,但是下面是我用来在CDS视图中调用Calc视图的方法。 也许会有帮助。

https://blogs.sap.com/2018/05/24/abap-dictionary-external-views-for-overcoming-abap-cds-views-limitiations /

Shyam

shere_lin
2楼-- · 2020-09-12 03:59

这是我访问计算视图的方法。 我想在CDS Table函数中使用此函数,但这不起作用...

 CLASS zzc_gfm方法定义
   上市
   最后
   创建公共。


   公共部分。
   接口if_amdp_marker_hdb。


   类型:
    gty_notice的开头,
    客户端类型sy-mandt,
    ContractInternalNumber类型char13,
    状态类型char2,
    NextEndDate类型为char10,
    LatestEndDate类型char10,
    RenewalToDate类型char10,
    RenewalReceiptToDate类型为char10,
    可能的TenNoticeReceiptToDate类型为char10,
    可能的类型为char10的LanNoticeReceiptToDate类型,
    可能的TenNoticeDate类型为char10,
    可能的LanNoticeDate类型为char10,
    gty_notice的结尾,


    gtt_notice gty_notice的类型标准表。


    类别方法get_noticedates


    出口
      VALUE(ex_cal_view_data)类型gtt_notice。


   受保护的部分。
   专用部分。
 ENDCLASS。


 ZZC_GFMMETHODS类的实现。




 方法get_noticedates按数据库过程
                        用于HDB
                        语言sqlscript
                        选项为只读。


  ex_cal_view_data
         =选择
         以" SAPClient"作为客户端,
         " REContractIntRealEstateNumber"作为ContractInternalNumber,
         " REContractState"为州,
         " REContractNextEndDate_E"作为NextEndDate,
         " REContractLatestEndDate_E"作为LatestEndDate,
         " REContractRenewalToDate_E"作为RenewalToDate,
         " REContractRenewalReceiptToDate_E"作为RenewalReceiptToDate,
         将" REContrPossibleTenantNoticeDate_E"作为可能的TenNoticeReceiptToDate,
         " REContrTenantNoticeReceiptToDate_E"(可能为LanNoticeReceiptToDate),
         将" REContrPossibleLandlordNoticeDate_E"作为可能的TenNoticeDate,
         尽可能将" REContrLandlordNoticeReceiptToDate_E"设置为LanNoticeDate
         从
          "" _SYS_BIC"。" gfmc.noticedates/ZCL_GFMC_NoticeDatesCalculation";
  终结法。


 ENDCLASS。
 
灬番茄
3楼-- · 2020-09-12 04:10

您好索尔森·瓦茨克

如果您已如前所述将此AMDP用于表函数,则应将" METHOD get_noticedates BY数据库过程"替换为" METHOD get_noticedates BY数据库函数",此外,您还必须提及您希望AMDP方法针对哪个表函数 在方法定义中执行。

那么,这是我的问题,您是否在方法定义中提到了"用于表函数"?

参考 博客

请看看,如果有帮助,请告诉我。


感谢与问候,

Tushar Sharma

渐行渐远_HoldOn
4楼-- · 2020-09-12 04:16

为什么将该逻辑转换为CDS表函数不起作用? 您会遇到什么错误?

葫芦娃快救爷爷
5楼-- · 2020-09-12 04:00

这是我的表格函数:

 @ClientDependent:否
 @ EndUserText.label:" GFM:表功能通知日期"

 定义表函数zzi_gfmnoticetf
 退货
 {
 
   键
    客户:char3;
    ContractInternalNumber:char13;
    状态:char2;
    NextEndDate:char10;
    LatestEndDate:char10;
    RenewalToDate:char10;
    RenewalReceiptToDate:char10;
    PossibleTenNoticeReceiptToDate:char10;
    可能的LanNoticeReceiptToDate:char10;
    PossibleTenNoticeDate:char10;
    可能的LanNoticeDate:char10;
  
   }

 通过方法实现
   zzc_gfmmethods => get_noticedates;
 

那是错误:

Nan4612
6楼-- · 2020-09-12 04:13

您好Shyam,

是的,我在寻找解决方案时找到了您。 字典视图的逻辑对我来说是众所周知的,我想直接使用calc视图(不是直接使用calc视图,而是现在使用dic视图)。

但是谢谢您的回答。...

最好的问候

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答