我正在开发逻辑应用程序,它从SQL Server Db中提取CDC数据。我使用的是Get行操作,但是当我尝试使用筛选器查询参数时,问题就出现了。
code eq '793' (作品)__$operation eq '2' (不工作)@{string('__$operation')} eq '2' (不工作)我认为问题可能在于"$“这个角色。
错误消息
{
"status": 400,
"message": "Syntax error at position 12 in '__$operation eq '2'' "
}有人能帮帮我吗!
发布于 2017-08-15 08:17:33
$是一个保留字符,根据OData规范,您应该在URI形成之前对它进行百分比编码。不幸的是,我尝试了百分比编码,但仍然得到语法错误,似乎它不允许在过滤器查询。

解决方案
下面是解决方案,在Logic中,您不能在筛选器查询中使用%,所以不能使用%24进行$,而应该使用_x0024_.I,现在可以成功地获得结果:

注意,在开头有三个_。如果字段/列名中有其他特殊字符,则可以使用此模式。例如,如果字段名为Display Name,其中有空格字符,则在筛选器查询中,需要将其转换为Display_0x0020_Name。
有关此编码的详细信息,请参阅编码和解码XML元素和属性名称及ID值。
https://stackoverflow.com/questions/45681844
复制相似问题