CDS where子句中的动态日期

2020-09-04 17:46发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我目前正在尝试从表中选择...

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

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


嗨,

我目前正在尝试从表中选择最近3个月的一些条目。 该表包含一个时间戳列。 sap帮助文档仅显示固定值,但是我需要动态选择行。 有什么办法吗?

@ AbapCatalog.sqlViewName:'SALES_ORDER_VW'
将视图sales_order定义为
,在snwd_so.buyer_guid = _partner.node_key =
snwd_so.buyer_guid,
_partner.company_name,
snwd_so.created_at,
@ Semantics.currencyCode
货币代码,
@ Semantics.amount.currencyCode:'currency_code'
Gross_amount
}
其中_partner.company_name如'S%'和
2013010100000.0
和20130401000000.0
之间创建的; //一月至三月

3条回答
半个程序猿
2020-09-04 17:51

为以下日期创建动态日期范围的基本视图,作为在任何表上的虚拟选择,并使用时间戳功能来计算三个月后的时间戳(例如14天以下) 或1209600秒)

 @ AbapCatalog.sqlViewName:'YIDateRange'
 @ AbapCatalog.compiler.compareFilter:是
 @ AccessControl.authorizationCheck:#NOT_REQUIRED
 @ VDM.viewType:#BASIC
 @ EndUserText.label:"参数日期范围"
 定义视图YI_DateRange
     带参数
         @ Environment.systemField:#SYSTEM_DATE
         P_Today:abap.dats
         从SEPMRA_I_MonthName中选择作为MonthName
     -虚拟选择(请参阅S/4 HANA Suite中的scal_tt_date)
     {
           tstmp_add_seconds(tstmp_current_utctimestamp(),cast(-1209600 as abap.dec(15,0)),'FAIL')as TimeStampMinus14,
           tstmp_current_utctimestamp()作为CurrentTimeStamp
     }
 其中MonthName.Language ='E'和MonthName.MonthNumber ='01'
 

然后在主CDS视图中使用它们,如下所示:

定义视图sales_order
     带参数
     @ Consumption.hidden
     @ Consumption.derivation:{
         lookupEntity:" YI_DateRange",
         resultElement:'TimeStampMinus14'
          }
     TimeStampMinus14:时间戳记,//变量的类型
     @ Consumption.hidden
     @ Consumption.derivation:{
         lookupEntity:" YI_DateRange",
         resultElement:'CurrentTimeStamp'
          }
     CurrentTimeStamp:时间戳记
  从snwd_so中选择
 在snwd_so.buyer_guid = _partner.node_key上作为_partner与snwd_bpa关联
 {键so_id,
 snwd_so.buyer_guid,
 _partner.company_name,
 snwd_so.created_at,
 @ Semantics.currencyCode
 货币代码,
 @ Semantics.amount.currencyCode:'currency_code'
 Gross_amount},其中_partner.company_name如'S%',并且介于$ parameters.TimeStampMinus14和$ parameters.CurrentTimeStamp之间

 

一周热门 更多>