点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我试图学习CDS视图,并...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我试图学习CDS视图,并...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我试图学习CDS视图,并创建带有参数的CDS视图,并使用日期函数'DATS_ADD_DAYS'确定到期日期。
在下面的语句中遇到语法错误"列的到期日期未知"
DATS_DAYS_BETWEEN(到期日期,$ parameters.p_date)为天。
@ VDM.viewType:#BASIC @ AbapCatalog.sqlViewName:'YFIINVDUEDATE' @ AbapCatalog.compiler.compareFilter:是 @ AbapCatalog.preserveKey:是 @ AccessControl.authorizationCheck:#检查 @ EndUserText.label:" CDS视图以计算付款到期日" 定义视图Y018_Invoice_duedate 参数p_date:bldat, P_bukrs:bukrs, p_gjahr:gjahr 从bkpf_bsik中选择为_bsik 内部连接lfa1作为_lfa1 在_lfa1.lifnr = _bsik.lifnr { _bsik.bukrs, _bsik.lifnr, _lfa1.name1, _bsik.gjahr, _bsik.belnr, _bsik.budat, _bsik.bldat, _bsik.cpudt, _bsik.waers, _bsik.xblnr, _bsik.blart, _bsik.monat, _bsik.zterm作为pay_term, zbd2t <> 0时的情况 然后DATS_ADD_DAYS(zfbdt,cast(cast(cast(cast(_bsik.zbd2t as abap.char(5))as abap.numc(5))as abap.int4),'INITIAL') else DATS_ADD_DAYS(zfbdt,cast(cast(cast(cast(_bsik.zbd1t as abap.char(5))as abap.numc(5))as abap.int4),'INITIAL') 以截止日期结束, DATS_DAYS_BETWEEN(due_date,$ parameters.p_date)为天 },其中_bsik.bldat <= $ parameters.p_date和 _bsik.bukrs = $ parameters.P_bukrs和 _bsik.gjahr = $ parameters.p_gjahr
感谢您对解决问题的帮助。
此致
穆罕默德M
您无法访问投影中的计算列(到期日期),例如
您必须复制整个CASE表达式,并将其用于Due_date计算,作为DATS_DAY_BETWEEN函数的参数(... DATS_DAYS_BETWEEN(zbd2t <> 0的情况 然后... end)...)。
另一种方法是引入另一个提供due_date信息的视图层。 其他视图可以用作您的视图的源。
您好 Florian Pfeffer
根据您的建议,我复制了整个CASE表达式,并能够创建另一个计算列。
致谢
穆罕默德M
一周热门 更多>