使用从Bex查询创建的ODATA获取数据时遇到问题

2020-08-15 13:13发布

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

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


我已经从BexQuery创建了ODATA,能够生成ODATA而没有任何问题。 但是在运行ODATA时通过传递参数。 它给了我以下400错误请求,并显示为语法错误的详细信息。 无法了解语法问题。 请帮我解决什么问题。

发生异常/IWCOR/CX_DS_URI_SYNTAX_ERROR。

URI:

/sap/opu/odata/sap/ZAGL_M001_Q021_SRV/ZAGL_M001_Q021(ZAVAR_C_I_015 = '03/01/2017',ZAVAR_C_I_015To = '03/30/2017',ZAVAR_C_M_003 ='YA',ZAVAR_C_P_161 ='280500 'COMPANY_PC')/结果

即使我尝试通过将%2F替换为Date的"/"来将日期斜线作为ASCI格式传递。 但这给出了相同的错误。

我在Bex Query中还有其他ODATA,它们在传递多个参数时不会出现问题,工作正常。

这是服务的元数据

谢谢

metadata-1.jpg (733.8 kB)

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

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


我已经从BexQuery创建了ODATA,能够生成ODATA而没有任何问题。 但是在运行ODATA时通过传递参数。 它给了我以下400错误请求,并显示为语法错误的详细信息。 无法了解语法问题。 请帮我解决什么问题。

发生异常/IWCOR/CX_DS_URI_SYNTAX_ERROR。

URI:

/sap/opu/odata/sap/ZAGL_M001_Q021_SRV/ZAGL_M001_Q021(ZAVAR_C_I_015 = '03/01/2017',ZAVAR_C_I_015To = '03/30/2017',ZAVAR_C_M_003 ='YA',ZAVAR_C_P_161 ='280500 'COMPANY_PC')/结果

即使我尝试通过将%2F替换为Date的"/"来将日期斜线作为ASCI格式传递。 但这给出了相同的错误。

我在Bex Query中还有其他ODATA,它们在传递多个参数时不会出现问题,工作正常。

这是服务的元数据

谢谢

metadata-1.jpg (733.8 kB)
付费偷看设置
发送
2条回答
nice_wp
1楼-- · 2020-08-15 14:06

对于网址中Edm.DateTime类型的值,例如 ZAVAR_C_I_015 = '03/01/2017',使用XML模式dateTime格式,例如 ZAVAR_C_I_015 ='2017-03-01T00%3A00%3A00'

(请注意,时间部分之间的冒号应按百分比编码)

My梦
2楼-- · 2020-08-15 13:40

感谢答复。 正如您提到的那样,我尝试了以下两种选择,但出现以下错误。 请帮忙。

/sap/opu/odata/sap/ZAGL_M001_Q021_SRV/ZAGL_M001_Q021

(ZAVAR_C_I_015 ='2017-03-01T00%3A00%3A00',ZAVAR_C_I_015To ='2017-03-30T00%3A00%3A00',ZAVAR_C_M_003 ='YA',ZAVAR_C_S_025 ='280500',ZAVAR_C_P_161 ='COMPANY_PC /结果

/sap/opu/odata/sap/ZAGL_M001_Q021_SRV/ZAGL_M001_Q021(ZAVAR_C_I_015 ='2017%2D03%2D01T00%3A00%3A00',ZAVAR_C_I_015To ='2017%2D03%2A30%2D30%00 ='YA',ZAVAR_C_S_025 ='280500',ZAVAR_C_P_161 ='COMPANY_PC')/结果

错误:请求URI包含无效的键谓词。

谢谢


一周热门 更多>