2016-05-02 8 views
2

Есть ли способ поиска/объединения нескольких таблиц в один URI/вызов с помощью PowerShell?Запросить несколько таблиц с API Servicenow Rest и Powershell

Я пытаюсь запросить таблицу задач для любых открытых позиций TASK и «GET» вернуть определенные значения полей. Проблема в том, что в элементе TASK есть настраиваемые поля, которые связаны с другими таблицами, а не с таблицей TASK/TASK.

URI 
$task = "https://instance.service-now.com/api/now/table/sc_task" 

Adding filters to the URI 
$task = "https://instance.service-now.com/api/now/table/sc_task?sysparm_query=yadadada" 

..но Я ищу, чтобы иметь возможность объединить несколько таблиц, так что я могу «точка ходьбы» в других, отличных от sc_task таблиц.

У меня было много неприятностей, поэтому любая помощь будет высоко оценена!

Спасибо!

+0

В документах API ServiceNow Table нет упоминаний о таких функциях, поэтому я не думаю, что существует способ , no –

+0

Я ничего не видел и не видел ни Матиаса. Я надеюсь, что кто-то узнает, как это сделать за пределами моды в коробке. Возможно, что-то вроде вызова SQL из powershell. – user2086204

+1

«Выполнение SQL-вызова» не поможет вам - это REST API, а не непосредственно открытый SQL-сервер. Единственный вариант - сначала извлечь все записи из одной таблицы, а другую таблицу отдельно, а затем реализовать клиентскую сторону логики соединения. –

ответ

3

Зависит от того, в каком направлении вашего соединения является (целевой родитель, ссылка ребенка против целевого ребенка, ссылка родитель)

Если вы дот-прогуливаясь по ссылочных полей на целевой таблице, вы можете просто сделать это в запрос, как assigned_to.first_name=bob, и он автоматически присоединяется sc_task к sys_user на поле ссылки assigned_to.

Если вы на самом деле не точка-ходьбы, а глядя идти вниз в дочерние записи, как если бы вы запрашивая problem таблицу, но хотели бы присоединиться к списку Связанного как related incidents где таблица ребенок incident имеет поле ссылки с именем problem_id, указав обратно на вашу цель problem стол, вы можете создать Database view, соединяя problem с incident на incident.problem_id = problem.sys_id, и назовите его что-то вроде problem_incidents. Затем вы можете просто рассматривать этот вид базы данных как таблицу (применительно к API REST), например https://instance.service-now.com/api/now/table/problem_incidents

+0

Привет, Джо, я проверю это - отчитается позже. Благодаря! – user2086204

+0

@ user2086204, это всегда срабатывало для вас? – Ben