【问题标题】:servicenow - __encoded_query - some fields not getting filteredservicenow - __encoded_query - 一些字段没有被过滤
【发布时间】:2015-10-14 12:55:28
【问题描述】:

assigned_to 字段未被过滤

代码:

__encoded_query = "assigned_toCONTAINSsteve"

实际上有 2 条记录包含带有 steve 的值,但上面的代码没有返回。 related_records 字段也不适用于 __encoded_query

【问题讨论】:

    标签: c# .net servicenow


    【解决方案1】:

    assigned_to 是一个引用字段,它存储引用的 sys_user 记录的 sys_id,但您查询的是我假设的显示值 (name)。如果您想查询 assigned_to 字段引用的用户名称包含“steve”的记录,请尝试像这样遍历引用:

    __encoded_query = "assigned_to.nameCONTAINSsteve"
    

    对于它的价值,这可能是一个性能不佳的查询,您最好执行STARTSWITH 查询,它更可优化(从数据库的角度来看):

    __encoded_query = "assigned_to.nameSTARTSWITHsteve"
    

    这是我刚刚在演示实例上运行的测试中完整的 SOAP 请求负载的样子(我没有任何 steves,但我有一个 Fred!):

    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <Body>
            <getRecords xmlns="http://www.service-now.com/incident">
                <__encoded_query xmlns="">assigned_to.nameSTARTSWITHfred</__encoded_query>
            </getRecords>
        </Body>
    </Envelope>
    

    【讨论】:

    • 请给出解决方案如何实现related_records
    • 我想在related_records 字段中获取包含值prj12345 的记录。我尝试了related_recordsCONTAINSprj12345,但没有成功。请提供解决方案。我也试过related_records.nameCONTAINSprj12345
    • 这取决于related_records 字段的类型。我假设它是一个 glide_list,在这种情况下,它可能会存储一个逗号分隔的 sys_id 列表,因此您首先需要获取目标记录的 sys_id,然后使用它进行包含搜索(例如“related_recordsCONTAINS ").
    • 是的,我已经完成了你提到的任务。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2017-10-30
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多