ABAP CDS中基于日期计算的默认值

2020-09-12 03:39发布

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

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


嗨,

我复制了用于试算表的标准CDS视图,并希望对输入参数代码进行一些更改,如下面的代码片段所示,有4个日期参数:

P_FromPostingDate:默认为当月的第一天

P_ToPostingDate:默认为当天

P_ComprnFromPostingDate:<要求默认为上一年当月的第一天..本质上是P_FromPostingDate减去1年>

P_ComprnToPostingDate:<要求默认为上一年当月的第一天..本质上是P_ToPostingDate 减去1年>

我该如何实现?


 @ Consumption.derivation:{lookupEntity:'I_CalendarDate',
     resultElement:" FirstDayofMonthDate",绑定:[
     {targetElement:'CalendarDate',类型:#PARAMETER,值:'P_KeyDate'}]
    }
   P_FromPostingDate:fis_budat_from,
 @ Consumption.derivation:{lookupEntity:'I_CalendarDate',
     resultElement:" CalendarDate",绑定:[
     {targetElement:'CalendarDate',类型:#PARAMETER,值:'P_KeyDate'}]
    }
   P_ToPostingDate:fis_budat_to,
   P_ComprnFromPostingDate:fis_comprn_budat_from,
   P_ComprnToPostingDate:fis_comprn_budat_to


 

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

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


嗨,

我复制了用于试算表的标准CDS视图,并希望对输入参数代码进行一些更改,如下面的代码片段所示,有4个日期参数:

P_FromPostingDate:默认为当月的第一天

P_ToPostingDate:默认为当天

P_ComprnFromPostingDate:<要求默认为上一年当月的第一天..本质上是P_FromPostingDate减去1年>

P_ComprnToPostingDate:<要求默认为上一年当月的第一天..本质上是P_ToPostingDate 减去1年>

我该如何实现?


 @ Consumption.derivation:{lookupEntity:'I_CalendarDate',
     resultElement:" FirstDayofMonthDate",绑定:[
     {targetElement:'CalendarDate',类型:#PARAMETER,值:'P_KeyDate'}]
    }
   P_FromPostingDate:fis_budat_from,
 @ Consumption.derivation:{lookupEntity:'I_CalendarDate',
     resultElement:" CalendarDate",绑定:[
     {targetElement:'CalendarDate',类型:#PARAMETER,值:'P_KeyDate'}]
    }
   P_ToPostingDate:fis_budat_to,
   P_ComprnFromPostingDate:fis_comprn_budat_from,
   P_ComprnToPostingDate:fis_comprn_budat_to


 
付费偷看设置
发送
3条回答
半个程序猿
1楼-- · 2020-09-12 04:16

我已经阅读到,在版本7.51之后,您将可以在CDS视图中访问值" $ session.system_date"。 我还没有,所以我不能说这是否有用。

以下是我在CDS视图中使用的一些想法。 对于当前月份的第一天:

 DATS_ADD_DAYS(cast(concat(LEFT(vbrk.erdat,6),'01')as abap.dats),0,'UNCHANGED')

对于上一年当前月份的第一天,您可以尝试:

 DATS_ADD_MONTHS(cast(concat(LEFT(vbrk.erdat,6),'01')as abap.dats),-12,'UNCHANGED')

如您所见,这来自vbrk上的SELECT。 希望有一些变化可以为您服务。

zhangjiyang1323
2楼-- · 2020-09-12 04:19

Sreekanth Surampally 有什么想法吗?

Tong__Ming
3楼-- · 2020-09-12 04:12

我用了一张桌子 函数,我已经在表函数中计算了所有必需的日期值,并将其用作联接。 不确定这是否是您想要的。

一周热门 更多>

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