从SAP网关到我的UI5应用的OData属性中的小数问题

问题描述

一个应用程序中,我将OData服务与通过SAP-Gateway中的SEGW创建的实体一起使用。该实体包含定义为十进制的属性。 在ABAP词典中,其类型为PACKED

Screenshot of ABAP type editor

该结构的导入结果为OData属性

Screenshot of resulting OData property type

据我所知,OData应该从技术上将值作为String返回给我的应用程序。但就我而言,我的UI5应用收到的针对此属性的结果为Numeric。 此外,它不符合定义,因为似乎存在舍入问题,因此它至少具有12个小数位,其中有多个零,最后是一个数字。

为使其更加真实,请在此处提供真实数据:

在SAP中,数据库表包含以下内容

Screenshot of a row in an SAP database table

当我的OData GET请求现在将数据返回到UI5应用程序并且使用Chrome调试器时,我得到以下信息:

Screenshot of sample result

因为该应用程序使用户可以更改数据,然后将整个记录发送回OData-update-request,所以这会导致异常,并显示错误消息,即小数位转换将导致小数位丢失-地方。

此外,我现在检查了odata-service的原始回报。 它以正确的技术预期方式有效地返回了预期的正确值。它返回“ 457.53”。 我的UI5-app使用OData V2和“ read”方法调用了OData-Service。 chrome调试器的输出是控制台输出的数据,该数据输出到Odata读取方法的成功处理程序。

有人知道如何处理它,可能是什么问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)