Pysnow 模块(Python for Servicenow)-如何创建请求的项目?

问题描述 投票:0回答:1

我最近开始使用 pysnow-module 来自动化我在 Servicedesk 的工作。我的问题是我不知道如何创建请求的项目。

我已成功创建新事件和新请求,并更新它们。我也成功修改了请求的项目,但我不知道如何将请求变成请求的项目。

我尝试过以下代码片段,全部从这里开始

s = pysnow.Client(instance='Secret domain', user='Secret-user', password='Secret')

然后继续以下尝试:

def new_ritm():
   result = s.insert(table='sc_req_item', payload={'field1': 'value1', 
   'field2': 'value2'})
print(result['number'])
luo_uusi_ritm()

File "XXXXXXXXXXXXXXXXXX", line 51, in <module>luo_uusi_ritm()
File"XXXXXXXXXXXXXXXXXX", line 47, in new_ritmresult = s.insert(table='sc_req_item', payload={'field1': 'value1', 'field2': 'value2'})
File "XXXXXXXXXXXXXXXXXX", line 90, in insert return r.insert(payload)
 File "XXXXXXXXXXXXXXXXXX", line 108, in insert return self._get_content(response)
File "XXXXXXXXXXXXXXXXXX", line 290, in _get_contentreturn content_json['result']
KeyError: 'result'

还尝试修改 REQ,插入新值:

result = s.insert(table='sc_req_item', payload={'sc_req_item.request': 
'REQ0994143'})

但是出现错误:

"File "xxxxxxxxxxxxx, line 290, in _get_content
return content_json['result']
KeyError: 'result'

编辑: 建议一: 我无法添加

“request_params={'sysparm_display_value':'true'})” ,因为它给了我一个“意外的参数”错误

我输入了以下代码:

 s = pysnow.Client(instance=XXXX,user=XXXXX,password=XXXXXX)


 try:
     result = s.insert(table='sc_req_item', payload={'field1': 'value1', 
     'field2': 'value2'})
 except pysnow.UnexpectedResponse as e:
    print("%s, details: %s" % (e.error_summary, e.error_details))

这给了我一个错误:

回溯(最近一次调用最后一次):

文件“XXXXXXXXXXXX”,第 63 行,在 stack_experiment() 中

文件“XXXXXXXXX”,第 59 行,在 stack_experiment result = s.insert(table='sc_req_item', payload={'field1': 'value1','field2': 'value2'})

文件“XXXXXXXXXXXXX”,第 90 行,在插入中返回 r.insert(payload)

文件“XXXXXXXXXXXXX”,第108行,在插入中返回self._get_content(响应)

文件“XXXXXXXXXXX”,第290行,在_get_content中返回content_json['result']

KeyError:“结果”


建议2:

也许您对使用 Client.insert 而不是 Request.insert 感到困惑

我对此感到困惑。我应该更改起始代码“s = pysnow.Client(etc.”吗?

我又去读了一遍文档,我已经理解了新的请求,我应该使用 pysnow.Request,所以我再次尝试了:

 r = pysnow.Request(instance='Secret domain', user='Secret-user', 
 password='Secret', method='POST', table='sc_req_item')

try:

    result = r.insert(payload={'field1': 'value1', 'field2': 'value2'})  

except pysnow.UnexpectedResponse as e:

    print("%s, details: %s" % (e.error_summary, e.error_details))

我收到一个错误:

Traceback (most recent call last):
 File "xxxx", line 
 7, in <module>
  r = pysnow.Request(instance='xxxx', user='xxxx', 
 password='xxxxx', method='POST', table='sc_req_item')
  File "xxxxx", line 29, in __init__
   self.default_payload = kwargs.pop('default_payload')
KeyError: 'default_payload'
python servicenow
1个回答
0
投票

评论:我的问题是请求的项目。

  1. 尝试以下操作,然后[编辑]您的问题以添加

    print(...
    或任何
    Traceback
    的输出:

    try:
        result = s.insert(table='sc_req_item', 
                          payload={'field1': 'value1', 'field2': 'value2'})
    except pysnow.UnexpectedResponse as e:
        print("%s, details: %s" % (e.error_summary, e.error_details))
    
  2. 也许您对使用

    Client.insert
    而不是
    Request.insert
    感到困惑?

    pysnow.Request — 创建一个新的请求对象
    插入(有效负载)

    插入一条新记录,并将有效负载作为参数传递
    参数:payload – 要创建的记录(dict)
    返回:已创建记录

  3. 设置请求参数
    request_params 字典参数可用于设置请求参数。此示例从具有链接表的字段返回名称,而不是 ServiceNow 点遍历的标准 URL。

    import pysnow
    # Create new client with SN request parameters
    sn = pysnow.Client(instance=instance,
                       user=username,
                       password=password,
                       request_params={'sysparm_display_value': 'true'})
    

尝试文档中的这个示例:

pysnow:获取单个记录

有关更多详细信息,请参阅 pysnow.Request.get_one() 文档。

import pysnow
# Create client object
s = pysnow.Client(instance='myinstance', user='myusername', password='mypassword')
# Query for 'INC01234' on table 'incident'
r = s.query(table='incident', query={'number': 'INC01234'})
# Fetch one record and filter out everything but 'number' and 'sys_id'
res = r.get_one(fields=['number', 'sys_id'])
# Print out the result
print(res)
© www.soinside.com 2019 - 2024. All rights reserved.