0

我需要通过其 REST API 查询 ServiceNow 中的表,同时使用以下分组的多个条件:

( (Condition1 AND Condition2) OR (Condition3 and Condition4) ) AND Condition5 AND Condition6

有谁知道这是否可能,如果可以,怎么做?我查看了文档,但我无法理解它是否解释了如何解决我的问题。

编辑 1:我忘了提到我确实尝试在我的 REST 调用中使用括号,但它没有奏效。

谢谢,

4

1 回答 1

1

我想出如何做到这一点的唯一方法是使用 ^NQ(新查询)运算符。

在 SQL 中,查询将如下所示:

WHERE [state] IN (16,17) AND ([assigned_to] = 'value1' OR [assignment_group] IN ('x','y','z'))

所以我的查询看起来像这样:

sysparm_query=stateIN16,17^assigned_to=value1^NQstateIN16,17^assignment_groupINx,y,z

因此,您实际上是在复制通用过滤器(状态)并在 ^NQ 的每一侧使用不同的过滤器。

我猜你可以说它相当于 SQL 中的 UNION。

SELECT * FROM [wm_task] WHERE [state] IN (16,17) AND [assigned_to] = 'value1'
UNION
SELECT * FROM [wm_task] WHERE [state] IN (16,17) AND [assignment_group] IN ('x','y','z')
于 2020-03-19T23:15:04.593 回答