2016-08-17 64 views
-1

我正试图从服务立即提取服务详细信息。有没有办法提取没有ODBC的细节?我也尝试了[1]中提到的解决方案:https://community.servicenow.com/docs/DOC-3844,但我收到错误9 -subscript超出范围。从Excel立即提取服务中的事件详细信息

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

+0

提取数据的唯一其他选项是Service-Now的REST/SOAP接口。但我认为你不能在Excel中这样做。 – makim

回答

0

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

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

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

在这里看到一个例子 ServiceNow - How to use SOAP to download reports

2)如果数据在您需要更改列,日期或过滤等dynmaic参数,你仍然可以使用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) 
    )