在Odata SAP Gateway中处理最大为INT64(9,223,372,036,854,775,807)的整数值

2020-08-14 13:30发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) data-types.jpg...

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

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


data-types.jpg

您好专家

我需要就ODATA SAP网关中使用的数据类型面临的一个问题提出建议。

问题-我们已经将URL公开给第三方,并且在传入有效负载中,我们有一个整数字段,因为他们使用的数据类型为long 20,它可以处理整数值9,223,372,036,854,775,807。
因此,当他们发送JSON有效负载时,SAP会收到如下所示的有效负载。

{" Number":1234567890123456}。

如果您可以在上面的有效负载号中看到字段值是一个整数,这就是为什么它周围没有双引号""的原因。 但是在SAP中,我们在处理此字段时遇到了问题。

SAP中很少有数据类型可用于处理此数据,例如INT16(最高值为32,767)和INT32(最高值为2,147,483,647)。 使用这种数据类型,SAP可以处理不带双引号""的值,例如- {" Number":1234567890123456} 。

当我们使用INT64时,SAP需要双引号(例如 {" Number":" 1234567890123456"})处理大于INT32的值(2,147,483,647)。

所以我的问题是SAP Gateway中是否有任何选项可以接收数据类型为INT64或其他数据类型的整数值,这些整数值最多可以处理9,223,372,036,854,775,807的值而没有双引号?

请检查SAP Gateway中使用的附加EDM数据类型。

data-types.jpg (100.6 kB)
7条回答
clasier
2020-08-14 14:07

安德烈,

是的,我已经检查了我的EDM数据类型,当前正在使用EDM.INT16数据类型,该数据类型在SAP中具有Integer数据类型映射。

我只需要使用Integer数据类型,它可以处理最多9,223,372,036,854,775,807的值。 有使用EDM.INT64的选项,但是当我选择EDM.INT64时,SAP不接受 {" Number":1234567890123456} 之类的有效负载,因为映射的ABAP数据类型已打包。

因此可以接受JSON有效负载 {" Number":1234567890123456},解决方案是什么。

具有EDM.INT16,SAP接受JSON有效载荷,其最大续续号为 {" Number": 2147483647 }。 超出 2,147,483,647时,将引发错误"溢出转换为'1002323456734'。

谢谢

一周热门 更多>