从Excel中的“立即服务”中提取事件详细信息

时间:2016-08-17 08:01:26

标签: excel vba excel-vba rest servicenow

我正在尝试从Service Now中提取故障单详细信息。有没有办法在没有ODBC的情况下提取细节?我也尝试过[1]中提到的解决方案:https://community.servicenow.com/docs/DOC-3844,但是我收到错误9 -subscript超出范围。

有没有更好的方法有效地提取细节?我试着在现在的服务论坛上问这个,但我想我可能会从这里得到其他意见。

1 个答案:

答案 0 :(得分:0)

问这个问题已经有一段时间了。希望以下仍然有用。

我正在提取更改数据(不是事件),但过程仍应相同。您需要收集事件表和列信息。然后有几种方法可以解决这个问题。

1)如果要提取的数据具有固定参数,例如固定期间或固定列或组等,则可以在servicenow中创建报告,然后使用REST / SOAP API获取text / csv中的数据格式。您可以根据需要使用不同的python模块将csv转换为xls或xlsx。我使用了openpyXLcsvxlsreaderxlswriter等。

点击此处查看示例 ServiceNow - How to use SOAP to download reports

2)如果数据具有需要更改列,日期或过滤器等的动态参数,您仍然可以使用soap / REST API,但在python脚本中形成查询而不是静态报告。这样您就可以根据您的需求随时更改它。

以下是DB的示例查询。你可以用上面的例子。只需使用以下内容切换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)
     )