Прошло некоторое время, так как этот вопрос задан. Надеюсь, что все еще полезно.
Я извлекаю данные об изменениях (не инцидент), но процесс все равно должен быть таким же. Вам нужно будет собрать информацию об инцидентах и столбцах. Тогда есть несколько способов подойти к проблеме.
1) Если данные, которые вы извлекаете, имеют фиксированные параметры, такие как фиксированный период или фиксированный столбец или группа и т. Д., Тогда вы можете создать отчет в servicenow, а затем использовать REST/SOAP API для получения данных в текстовом/csv формат. Вы можете использовать различные модули python для преобразования из csv в xls или xlsx в зависимости от ваших потребностей. Я использовал openpyXL
, csv
, xlsreader
, xlswriter
и т.д.
для примера ServiceNow - How to use SOAP to download reports
2) Смотрите здесь, если данные параметры dynmaic, где нужно изменить столбцы, дату или фильтр и т.д., вы можете использовать мыльный/REST API, но формируем запрос в сценариях python вместо статического отчета. Таким образом вы можете изменить его на основе вашего требования «на лету».
Вот пример запроса для БД. вы можете использовать пример выше. Просто переключитесь на url
со следующим.
table_name = 'u_change_table_name' #SN DB holding change/INCIDENT info
table_limit = 800
table_query = 'active=true&sysparm_display_value=true&planned_start_date=today'
date_query = 'chg_start_date>=javascript:gs.daysAgoStart(1)^active=true^chg_type=normal'
table_fields = 'chg_number,chg_start_date,chg_duration,chg_end_date' #Actual column names from DB and not from SN report.
url= (
'https://yourcompany.service-now.com/api/now/table/' +table_name +\
'?sysparm_query=' + date_query + '&sysparm_fields=' \
+ table_fields + '&sysparm_limit=' + str(table_limit)
)
Единственный другой способ для извлечения данных - это REST/SOAP-интерфейсы Service-Now. Но я думаю, что вы не можете сделать это в Excel. – makim