【发布时间】:2016-05-11 15:36:16
【问题描述】:
我需要自动从serviceNow 下载报告。
我已经能够通过以下方法使用 python 和 selenium 和 win32com 使其自动化。https://test.service-now.com/sys_report_template.do?CSV&jvar_report_id=92a....7aa
并使用selenium 访问serviceNow 以及修改firefox 默认下载选项以将文件转储到windows 机器上的文件夹中。
但是,由于所有这些都可以移植到linux 服务器,我们希望将其移植到SOAP 或CURL。
我遇到了serviceNowpythonhere 的库。
如果我使用ServiceNow.py 中的以下内容设置站点上列出的登录名、密码和实例名称,我已经尝试过了,以下代码可以正常工作
class Change(Base):
__table__ = 'change_request.do'
并遵循site 中列出的客户端脚本。
# Fetch changes updated on the last 5 minutes
changes = chg.last_updated(minutes=5)
#print changes client side script.
for eachline in changes:
print eachline
但是,当我将 URL 替换为 sys_report_template.do 时,出现错误
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\SOAPpy\Parser.py", line 1080, in _parseSOAP
parser.parse(inpsrc)
File "C:\Python27\Lib\xml\sax\expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "C:\Python27\Lib\xml\sax\xmlreader.py", line 125, in parse
self.close()
File "C:\Python27\Lib\xml\sax\expatreader.py", line 220, in close
self.feed("", isFinal = 1)
File "C:\Python27\Lib\xml\sax\expatreader.py", line 214, in feed
self._err_handler.fatalError(exc)
File "C:\Python27\Lib\xml\sax\handler.py", line 38, in fatalError
raise exception
SAXParseException: <unknown>:1:0: no element found
这里是相关代码
from servicenow import ServiceNow
from servicenow import Connection
from servicenow.drivers import SOAP
# For SOAP connection
conn = SOAP.Auth(username='abc', password='def', instance='test')
rpt = ServiceNow.Base(conn)
rpt.__table__ = "sys_report_template.do?CSV"
#jvar_report_id replaced with .... to protect confidentiality
report = rpt.fetch_one({'jvar_report_id': '92a6760a......aas'})
for eachline in report:
print eachline
所以,我的问题是,可以做些什么来完成这项工作? 我在网上寻找资源和帮助,但没有找到。
感谢任何帮助。
【问题讨论】:
标签: python soap servicenow