点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我正在编写一个动态查询,以从成功因素中获取角色ID和角色名称。 但是我在消息处理选项卡中收到以下错误-
您能帮我理解我的食品代码问题吗?
如果两个字段都发送为空,我想获取所有roleid和rolename,否则我想根据Roleid或Role Name提取Roleid和Rolename。
<?xml版本=" 1.0"编码=" utf-8"?>ServerErrorException
服务器无法理解您的OData API请求的URI,其中包含无效的字符文本序列:[[roleId],[],[eq]]。 请检查查询语法的正确性,尤其是对于意外的空格或标点符号。 有关API语法要求,请访问https://help.sap.com/viewer/d599f15995d348a1b45ba5603e2aba9b/PRODUCTION/zh-CN
请在下面找到groovy代码段-
导入com.sap.gateway.ip.core.customdev.util.Message; 导入java.util.HashMap; def消息processData(消息消息){ def属性= message.getProperties(); 字符串RoleId = properties.get(" ROLEID"); 字符串RoleName = properties.get(" ROLENAME"); 字符串query =""; if((RoleId == null || RoleId.length()== 0)&&(RoleName == null || RoleName.length()== 0)) { query =" RBPRole?\ $ select = roleId,roleName"; } if((RoleId == null || RoleId.length()== 0)&&(RoleName!= null || RoleName.length()> 0)) { query =" RBPRole?\ $ select = roleId,roleName&\ $ filter = roleName eq" + RoleName; } if((RoleId!= null || RoleId.length()> 0)&&(RoleName == null || RoleName.length()== 0)) { query =" RBPRole?\ $ select = roleId,roleName&\ $ filter = roleId eq" + RoleId; } message.setProperty(" QUERY_DYNAMIC",query); 返回消息; }
嗨,Akash
您频道中的"查询选项"字段应仅包含查询,即$ select = ....部分。
有关动态OData查询的更多信息 ,请通过 Subhojit Saha 查看此博客文章:在CPI Odata接收器适配器中创建动态查询
问候,
Morten
Hello Akash,
您可以外部化整个查询部分,包括过滤器,但需要确保从脚本中选择了一条选择语句
还登录到SuccessFactors并在odata api审核日志中可以看到确切的错误。首先需要启用有效负载日志记录,然后再次发送请求以查看实际响应。
致谢
>Sriprasad Shivaram Bhat
一周热门 更多>