2016-08-17 8 views
-1

Я пытаюсь извлечь информацию о билете из Сервиса сейчас. Есть ли способ извлечь данные без ODBC? Я также попробовал решение, упомянутое в [1]: https://community.servicenow.com/docs/DOC-3844, но я получаю ошибку 9-подписью вне диапазона.Извлечь данные об инциденте из Сервиса Теперь в Excel

Есть ли лучший способ эффективно извлечь данные? Я пробовал просить об этом на форуме теперь, но я думал, что я могу получить другие мнения отсюда.

+0

Единственный другой способ для извлечения данных - это REST/SOAP-интерфейсы Service-Now. Но я думаю, что вы не можете сделать это в Excel. – makim

ответ

0

Прошло некоторое время, так как этот вопрос задан. Надеюсь, что все еще полезно.

Я извлекаю данные об изменениях (не инцидент), но процесс все равно должен быть таким же. Вам нужно будет собрать информацию об инцидентах и ​​столбцах. Тогда есть несколько способов подойти к проблеме.

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) 
    )