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

2024-06-16 12:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始使用pysnow模块来实现服务台工作的自动化。我的问题是我不知道如何创建请求的项目。在

我设法创造了新的事件和新的请求,也更新了他们。我也成功地修改了请求项,但我一直不知道如何将请求转换为请求项。在

我试过以下几段代码,都是从这个开始的

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

然后继续进行以下尝试:

^{pr2}$

还尝试修改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'

编辑: 建议1: 我不能加上

"request_params={'sysparm_display_value': 'true'})" , because it gives me an "Unexpected argument" error

我输入了以下代码:

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

这给了我一个错误:

Traceback (most recent call last):

File "XXXXXXXXXXXX", line 63, in stack_experiment()

File "XXXXXXXXX", line 59, in stack_experiment result = s.insert(table='sc_req_item', payload={'field1': 'value1','field2': 'value2'})

File "XXXXXXXXXXXXX", line 90, in insert return r.insert(payload)

File "XXXXXXXXXXXXX", line 108, in insert return self._get_content(response)

File "XXXXXXXXXXX", line 290, in _get_content return content_json['result']

KeyError: 'result'


建议2:

Maybe you are confused using Client.insert instead of Request.insert

我对此感到困惑。我应该更改起始代码“s=皮斯诺。客户(等等“?在

我又看了一遍文件,我明白了对于新的请求,我应该使用皮斯诺。请求,所以我再次尝试:

 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'

Tags: insecretlinetableerrorresultcontentitem
1条回答
网友
1楼 · 发布于 2024-06-16 12:49:57

Comment: My problem is with Requested Items.

  1. 尝试以下操作,并[编辑]您的问题以添加print(...或任何{}的输出:

    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 — Creates a new request object
    insert(payload)

    Inserts a new record with the payload passed as an argument
    Parameters: payload – The record to create (dict)
    Returns: Created record

  3. 设置请求参数
    request_params dict参数可用于设置请求参数。此示例从具有链接表的字段中返回名称,而不是ServiceNow dot walking的标准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: Getting a single record

See the pysnow.Request.get_one() documentation for more details.

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)

相关问题 更多 >