云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_阿里云众包_年度促销

小七 141 0

小结:

这个博客是关于如何使用DATS\u ADD\u DAYS(date,物联网+,DAYS,on\u error)函数,当"DAYS"字段不是INT4类型时。

场景

作为S/4 HANA中央财政实施项目的一部分,我们正在将一个ECC ABAP程序转换成CDS视图,在ABAP程序中有一个对FM NET\u DUE\u date\u GET的调用,它基本上增加了天数约会。这里是这个FM的调用语法:

调用函数'NET\u DUE\u DATE\u GET'导出i_zfbdt=LS_BSID-zfbdti_zbd1t=LS_BSID-zbd1ti_zbd2t=LS_BSID-zbd2ti_zbd3t=0我叫"shkzg"i_rebzg=''i_koart='D'导入e\u faedt=Lv\u到期日

Ex-1:LS\u BSID-ZFBDT=13.08.2018,返利机器人,LS\u BSID-ZBD1T=14,LS\u BSID-ZBD2T=0.

输出:27.08.2018

Ex-2:LS\u BSID-ZFBDT=13.08.2018,LS\u BSID-ZBD1T=14,LS_BSID-ZBD2T=20.

输出:2018年9月2日(如果i_zbd1t和i_ZBD2T都通过了,那么FM忽略i_zbd1t并使用i_ZBD2T进行计算)

解决方案

有一个标准的CDS函数,它将天数添加到通过的日期数据s_ADD_天(日期,wap自助建站,天,错误时),云呢拿,不幸的是,在这种情况下,服务器,Days字段(即ZBD1T和ZBD2T)不是Date函数所需的数据类型INT4,这些字段的数据类型是Dec(3)。所以如果我尝试在这些字段上使用CDS函数,我会得到以下错误:

所以为了克服这个数据类型错误,我们需要将Dec转换为INT4,好的是CDS有Cast函数,可以用来改变变量的数据类型。例如:铸造(总金额)abap.fltp公司)但不太好的是Dec不能直接转换成INT4。"直接"是这里的关键词,我找到了一个将DEC转换为INT4的间接方法。

我通过SAP帮助将DEC->CHAR->NUMC->INT4和下表转换为:

链接到上表:

https://help.sap.com/doc/abapdocu\u 751\u index\u htm/7.51/en-US/abencds\u f1\u cast\u expression.htm

这是决赛CDS代码:

结果:

如果您有更好的解决方案请在评论中分享,欢迎随时提出建议!

顺便说一句,如果您正在寻找CD日期功能,那么这里是链接:

https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abencds_f1_date_functions.htm#!ABAP\变型\ 3@3@