在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条回答
Doze时光
2020-08-14 14:23

好吧,SAP不接受-我的意思是它可以接受,但是当我报出语法错误时 不要为EDM.INT64数据类型添加双引号。 然后我尝试添加双引号,然后就可以了。 而且,当我们选择EDM.INT64时,SAP Gateway会在运行时自动映射ABAP数据类型Packed 19,这不是整数。

在JSON有效负载中,对于整数类型以外的数据类型,我们不能传递没有双引号的字段值。

因此,我得出的结论是SAP期望INT64数据类型使用双引号。

让我知道是否需要更多说明。

一周热门 更多>