2012-04-18 2 views
0

Я создаю приложение, которое работает с ServiceNow (пользовательских отчетов инструмента)ServiceNow XML Web Service - узел именования

Он настроен на использование demo12 и XML сервис, описанный here.

Когда я сделал этот запрос

https://demo12.service-now.com/incident_list.do?XML&sysparm_query=opened_at%3E2012-04-17%2000:00:00%5Eopened_at%3C2012-04-18%2000:00:00%5E&sysparm_view=

в ответ XML я увидеть не только <incident> узлы, но и <u_zprototype_incidents>

XPath, чтобы получить имена узлов является

distinct-values(/xml/*/name(.)) 

и результат (дружественный формат)

<XdmValue> 
    <XdmAtomicValue>u_zprototype_incidents</XdmAtomicValue> 
    <XdmAtomicValue>incident</XdmAtomicValue> 
</XdmValue> 

не уверен, если это так, как должно отображаться.

Есть ли другой способ (дополнительный параметр URI и т. Д.), Чтобы получить действительный XML (только <incident> узлов)?

Я знаю, что могу использовать /xml/*[contains(name(.),'incident')][sys_id='my GUID'] для получения необходимых узлов. но я думаю, что он потребляет больше времени процессора, чем только /xml/incident[sys_id='my GUID'].

Любые идеи?

ответ

3

Для чего это стоит, на этом сайте demo12 есть что-то нетипичное. По умолчанию не предполагается быть родительскими элементами с именем «u_zprototype_incidents». Создана пользовательская таблица, расширяющая таблицу инцидентов с именем «u_zprototype_incidents».

Если вы хотите ограничить себя только записью в таблице «инцидент» базы, я бы предложил вам добавить новый фильтр для «sys_class_name = инцидент». Давать вам этот URL:

https://demo12.service-now.com/incident_list.do?XML&sysparm_query=opened_at%3E2012-04-17%2000:00:00%5Eopened_at%3C2012-04-18%2000:00:00%5E^sys_class_name=incident&sysparm_view=

... При том, что вы можете использовать /xml/incident[sys_id='my GUID']