运算符" gt"与操作数类型" Edm.DateTime"和" Edm.DateTimeOffset"不兼容

2020-08-31 13:37发布

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

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


您好,专家,我在SAP CPI中使用SuccessFactors适配器从SF中的实体获取数据。 我在通道中有以下查询,

操作:查询(GET)ResourcePath:<实体名称>?$ select = <要选择的字段列表>&$ filter =(startDate gt datetimeoffset'1900-01 -01T00:00:00Z'和endDate le datetimeoffset'9999-12-31T23:59:59Z')edmx的路径:edmx/performancemanager10_successfactors_com_odata_metadata.xml

当我运行此iFlow时,出现以下错误,< br>
运算符" gt"与操作数类型" Edm.DateTime"和" Edm.DateTimeOffset"不兼容

我也检查了此博客- https://archive.sap.com/discussions/thread/3767947
但我仍然遇到相同的错误。 br>
有什么想法可以解决此问题吗?

在此先感谢

Netrey

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

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


您好,专家,我在SAP CPI中使用SuccessFactors适配器从SF中的实体获取数据。 我在通道中有以下查询,

操作:查询(GET)ResourcePath:<实体名称>?$ select = <要选择的字段列表>&$ filter =(startDate gt datetimeoffset'1900-01 -01T00:00:00Z'和endDate le datetimeoffset'9999-12-31T23:59:59Z')edmx的路径:edmx/performancemanager10_successfactors_com_odata_metadata.xml

当我运行此iFlow时,出现以下错误,< br>
运算符" gt"与操作数类型" Edm.DateTime"和" Edm.DateTimeOffset"不兼容

我也检查了此博客- https://archive.sap.com/discussions/thread/3767947
但我仍然遇到相同的错误。 br>
有什么想法可以解决此问题吗?

在此先感谢

Netrey

付费偷看设置
发送
8条回答
我是小鹏鹏啊
1楼 · 2020-08-31 14:08.采纳回答

大家好,

非常感谢您的回复和帮助。 我找到了解决此问题的方法,并考虑在此处共享它,以便其他SCN用户可以受益。

要基于日期进行过滤,SAP提供了两个变量-" fromDate"和" toDate"。 过滤条件后,使用以下语法

&fromDate = <从YYYY-MM-DD格式的日期>&toDate = <到 YYYY-MM-DD格式的日期 >

请参见下面的示例

 $ filter =公司eq'9000'和状态eq'active'&fromDate = 2018-06-07&toDate = 9999-12-31
 

感谢和问候,

Netrey

哎,真难
2楼-- · 2020-08-31 14:03

你好Sriprasad Shivaram Bhat,

我们正在使用实体" EmpPayCompRecurring"

谢谢

Netrey

一只江湖小虾
3楼-- · 2020-08-31 13:54

Hello Netrey,

请您分享实体名称,以便我复制您的问题。

此致

Sriprasad Shivaram Bhat

半个程序猿
4楼-- · 2020-08-31 14:01

我不认为这是OData的默认行为。

无论如何,如上所述,请先使用Postman尝试一下。

并尝试省略括号。

大简至美
5楼-- · 2020-08-31 13:44

我只是指出一个显而易见的事实-使用您提供的开始日期和结束日期,我敢肯定,任何记录肯定会落入该范围内, 那么,为什么要完全使用此过滤条件呢?

无论如何,关于错误,我建议您首先从$ filter条件中删除左括号()。 并尝试先从Postman进行测试,以确保您的查询正确,甚至在CPI流中进行配置。

clasier
6楼-- · 2020-08-31 13:44

嗨,大家好,

我尝试遵循过滤器表达式的语法

 $ filter =(startDate gt datetime'1900-01-01T00:00:00')

部分起作用,这意味着该消息已成功处理,没有任何语法错误,但是仍未获取历史数据。

我尝试使用SFAPI提取详细信息。 但是,我也只能得到最新的活动记录。

还有其他想法可以使我从指定的portlet/对象获得完整的历史详细信息吗?

-Netrey

hongfeng1314
7楼-- · 2020-08-31 14:09

Hello Netrey,

基本上,这两个字段startDate和endDate的类型为datetime,因此在比较时不能使用datetimeoffset。下面的查询应该对您有用。

$ select = userId,endDate,startDate&$ filter =(startDate gt datetime'2017-12-08T00:00:00'和endDate le datetime'9999-12-31T23:59:59Z')

让我知道您是否遇到任何问题。

此致

Sriprasad Shivaram Bhat

一周热门 更多>