odata调用-过滤条件不起作用-从PerEmail实体检索基于语言的标签

2020-08-26 18:17发布

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

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


大家好,

我正在尝试连接到Successfactors系统以检索电子邮件信息。 具体来说-电子邮件地址和电子邮件类型。

我要在PerPerson实体中选择几个字段,然后导航到PerEmail。

emailNav/emailTypeNav

现在要获取电子邮件类型,我需要导航至选择列表-ecEmailType,然后至picklistLabels并选择标签。 此字段的值为"业务"或"个人"。 这就是我需要的价值。 PerEmail实体中的emailType字段的值为" B"。 这不是我可以使用的东西。

当我从picklistLabels中选择标签时,它会给我3条记录。 例如:

" optionId":" 17757",

"语言环境":" en_DEBUG",

" id":" 44230",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......

" optionId":" 17757",

"语言环境":" en_US",

" id":" 44229",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......

" optionId":" 17757",

"语言环境":" fr_CA",

" id":" 44231",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......................

在odata调用中,我正在使用过滤器:

&$ filter = emailNav/emailTypeNav/picklistLabels/locale ne'en_US'

仅过滤英文值。 但是它仍然会检索标签的所有三个记录。

完整的odata调用:

https://api4preview.sapsf.com/odata/v2/PerPerson?$select=customString3,personIdExternal,emailNav/emailTypeNav/picklistLabels/label,emailNav/emailAddress&$ expand = emailNav/emailTypeNav/picklistLabels&$ filter = emailNav/emailTypeNav/picklistLabels/locale eq'en_US'&$ format = json

注意:我在邮递员中尝试了这些,但它们不起作用

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

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


大家好,

我正在尝试连接到Successfactors系统以检索电子邮件信息。 具体来说-电子邮件地址和电子邮件类型。

我要在PerPerson实体中选择几个字段,然后导航到PerEmail。

emailNav/emailTypeNav

现在要获取电子邮件类型,我需要导航至选择列表-ecEmailType,然后至picklistLabels并选择标签。 此字段的值为"业务"或"个人"。 这就是我需要的价值。 PerEmail实体中的emailType字段的值为" B"。 这不是我可以使用的东西。

当我从picklistLabels中选择标签时,它会给我3条记录。 例如:

" optionId":" 17757",

"语言环境":" en_DEBUG",

" id":" 44230",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......

" optionId":" 17757",

"语言环境":" en_US",

" id":" 44229",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......

" optionId":" 17757",

"语言环境":" fr_CA",

" id":" 44231",

"标签":"业务",

" picklistOption":{" __deferred":{" uri":................................. ......................

在odata调用中,我正在使用过滤器:

&$ filter = emailNav/emailTypeNav/picklistLabels/locale ne'en_US'

仅过滤英文值。 但是它仍然会检索标签的所有三个记录。

完整的odata调用:

https://api4preview.sapsf.com/odata/v2/PerPerson?$select=customString3,personIdExternal,emailNav/emailTypeNav/picklistLabels/label,emailNav/emailAddress&$ expand = emailNav/emailTypeNav/picklistLabels&$ filter = emailNav/emailTypeNav/picklistLabels/locale eq'en_US'&$ format = json

注意:我在邮递员中尝试了这些,但它们不起作用

付费偷看设置
发送
4条回答
微wx笑
1楼 · 2020-08-26 18:59.采纳回答

您是否正在使用OData V4? 如果没有,我认为在父级上的扩展调用触发时不支持子实体上的过滤器属性。

其次,放置一个外部断点,并调试CL_HTTP_EXT_BASE_HANDLER-> IF_HTTP_EXTENSION〜HANDLE_REQUEST传入什么值

或FM/IWBEP/FM_MGW_HANDLE_REQUEST

*另外,您的URL在不同的地方提到了ne和eq,请检查一下。

悻福寶寶
2楼-- · 2020-08-26 19:05

我不知道! 我正在使用odata v2。 也许这就是为什么过滤器不适用于子元素的原因。

关于输入错误的网址。 我尝试使用ne,eq,ne和eq进行所有操作。 没用

让我使用odata v4并查看结果。 很快会更新您。 谢谢你的反馈。

ZJXianG
3楼-- · 2020-08-26 19:04

你好Kriba,

我看不到查询的任何问题,并且您使用的是正确的OData版本,但是据我了解,过滤器仅在第一级使用字段,这就是获取所有记录的原因。

此致

Sriprasad Shivaram Bhat

bbpeas
4楼-- · 2020-08-26 18:49

你好Siva,

我们正面临类似的问题。

有没有办法解决这个问题? 请提出任何其他达到要求的方法。

此致

Manoj

一周热门 更多>