CAPM-外部服务-消费日期字段时出错

2020-08-17 12:56发布

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

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


嗨,

我正在使用CAPM开发解决方案。

我正在使用S/4 HANA Cloud API API_JOURNALENTRYITEMBASIC_SRV作为外部服务。

我的问题是,当我尝试使用EntitySet并返回tipe Edm.Date属性(例如A_CostCenter实体集)时。

错误是"无效值/Date(253402214400000)/(JavaScript字符串)。必须将格式为YYYY-MM-DD的字符串值指定为Edm.Date类型的值。"

我认为CAPM框架期望使用YYYY-MM-DD格式,但是S/4 HANA Cloud返回的日期具有以下格式:/Date(253402214400000)/

这是发生错误的图像:

有人有相同的错误吗?

是否存在任何修复程序?

预先感谢

(330.0 kB)

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

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


嗨,

我正在使用CAPM开发解决方案。

我正在使用S/4 HANA Cloud API API_JOURNALENTRYITEMBASIC_SRV作为外部服务。

我的问题是,当我尝试使用EntitySet并返回tipe Edm.Date属性(例如A_CostCenter实体集)时。

错误是"无效值/Date(253402214400000)/(JavaScript字符串)。必须将格式为YYYY-MM-DD的字符串值指定为Edm.Date类型的值。"

我认为CAPM框架期望使用YYYY-MM-DD格式,但是S/4 HANA Cloud返回的日期具有以下格式:/Date(253402214400000)/

这是发生错误的图像:

有人有相同的错误吗?

是否存在任何修复程序?

预先感谢

(330.0 kB)
付费偷看设置
发送
3条回答
ZJXianG
1楼 · 2020-08-17 13:31.采纳回答

大卫

我找到了进行转换的方法(基本上," run"方法返回一个Promise,即它的解析值是已解析的外部服务的JSON响应,没有进行任何验证):

 this.on('READ',实体,async req => {
             让响应=等待jo​​urnalEntryItemBasicSrv.tx(req).run(req.query)
             response.forEach(实例=> {
                 如果(instance.ValidityEndDate)
                 instance.ValidityEndDate = ODataV2toODataV4Date(instance.ValidityEndDate)
             });
             返回响应;
         })
 

如果问题解决,这将非常有帮助。

非常感谢您的支持!

亲切的问候

黑丝骑士
2楼-- · 2020-08-17 13:46

嗨,大卫,

感谢您的回复。

我认为问题在于框架没有考虑外部服务是OData 2.0。

然后,它尝试将OData 2.0 JSON日期解析为OData 4.0 JSON日期,并且格式非常不同。

您有任何建议自己进行转换吗?

我正在执行以下操作以将请求转发给外部服务:

 const cds = require('@ sap/cds')

 module.exports = cds.service.impl(异步函数(){

     const journalEntryItemBasicSrv =等待cds.connect.to('API_JOURNALENTRYITEMBASIC_SRV')
     const {A_CompanyCode,A_GLAccountInChartOfAccounts,A_CostCenter} = this.entities

     const实体= [A_CompanyCode,A_GLAccountInChartOfAccounts,A_CostCenter]
     Entity.forEach(实体=> {
         this.on('READ',实体,req => journalEntryItemBasicSrv.tx(req).run(req.query))
     });
 })

 

预先感谢。

SC_Yao
3楼-- · 2020-08-17 13:47

尊敬的胡安,

感谢您举报。 我们会研究它。

暂时,恐怕您需要自己进行转换。
最好的问候,
David

一周热门 更多>