ODP OData日期格式

2020-08-17 10:02发布

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

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


大家好,

作为POC,我们基于标准数据源0PROFIT_CTR_ATTR创建了一个简单的ODP Odata服务(通过SEGW)。 显然,由于ODP返回日期的方式,该服务不断失败。

这是错误:

详细信息是:

如果我从实体类型属性中删除所有日期字段,则一切正常:

对于包含日期的任何数据源,我们都会遇到相同的错误。 它们都以YYYY-MM-DD格式返回值,而GW显然不希望YYYYMMDD,因此GW不喜欢这种格式。

我缺少什么以及如何处理?

(231.7 kB)

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

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


大家好,

作为POC,我们基于标准数据源0PROFIT_CTR_ATTR创建了一个简单的ODP Odata服务(通过SEGW)。 显然,由于ODP返回日期的方式,该服务不断失败。

这是错误:

详细信息是:

如果我从实体类型属性中删除所有日期字段,则一切正常:

对于包含日期的任何数据源,我们都会遇到相同的错误。 它们都以YYYY-MM-DD格式返回值,而GW显然不希望YYYYMMDD,因此GW不喜欢这种格式。

我缺少什么以及如何处理?

(231.7 kB)
付费偷看设置
发送
5条回答
我是小鹏鹏啊
1楼-- · 2020-08-17 10:51

嗨,Vadim,

您可以尝试在MPC_EXT类中重新定义DEFINE方法。

         super-> define()。



         lo_entity_type =模型-> get_entity_type('<外部实体类型名称>')。

         如果lo_entity_type不是初始的。

             lo_property = lo_entity_type-> get_property('<外部属性名称>')。

             如果lo_property不是初始的。

               lo_property-> set_type_edm_datetime()。

             万一。

         万一。
 
愤怒的猪头君
2楼-- · 2020-08-17 10:27

您找到了任何解决方法吗?

SAP德到
3楼-- · 2020-08-17 10:36

嗨,Vadim,

在错误日志中,我可以看到以下错误消息:

'2000-01-01' 违反方面信息'maxlength = 8'

根据SAP KBA文章

https://launchpad.support.sap.com/#/notes/0002730945 一个原因可能是" ...必须根据业务设置MaxLength

您可以尝试将给定属性的构面"最大长度"设置为有效值。

 lo_property-> set_maxlength(iv_max_length = 10)。  " #EC NOTEXT 

这意味着与上述建议相反,您不会将Edm Type设置为EdmDateTime,而是将其保留为字符串,而仅更改MaxLength。

帮助,请举票。

然后可以确定这是SAP Gateway问题还是用于生成OData服务的ODP组件问题。

通过

最好的问候

安德烈

< p>

4楼-- · 2020-08-17 10:37

嗨,安德烈,没有抛出错误, 但在这种情况下也不会返回任何值!

天桥码农
5楼-- · 2020-08-17 10:47

安德烈,在MPC_EXT中设置maxlength 或重新定义该属性也无济于事。

我已经通过SAP提出了一条消息530984/2019,但是它以高优先级坐在那里几天了,甚至没有得到确认。

此外,是的,我要求使用与其他提取程序完全相同的简单GET,只要没有date属性,一切都可以正常工作。 哪个很邪恶。

谢谢

Vadim。

一周热门 更多>