Find the right URL(EndPoint) for creating a ServiceNow Change Request type = Emergency

1.2k views Asked by At

I do not know the difference between these two end points: a) /api/sn_chg_rest/v1/change/emergency b) /api/now/table/change_request?sys_id=-1&sysparm_query=type=emergency

b) once submitted changes to "normal" response type

Issue: Unable to submit a request of type Emergency, Standard, OR Expedited.

Things I have Tried: url = 'https://xxxx.service-now.com/api/now/table/change_request?sys_id=-1&sysparm_query=type=expedited <<changes to normal, the site only allows edits into emergency or normal once submitted with this link>>

url = 'https://xxxx.service-now.com/api/sn_chg_rest/v1/change/emergency <<This one seems to be working only for emergency & normal, also the user is locked into emergency and normal even when logged in to edit type manually once submitted via script >>

Outcome of the current code below in conjuction with the "Things I have Tried" There is a CHG#XXX created but no matter what the Key:xxxxxx "sys-pram_query=type=xxxxxx" changes to (i.e. "Normal", "Expedited", "Emergency", "Standard") looks like this ---> ("sys-pram_query=type= Emergency","sys-pram_query=type= Expedited","sys-pram_query=type= Standard") the type on the ServiceNow-site defaults to "Normal" once the code below runs creating the request using the POST Method.

#Need to install requests package for python
#easy_install requests
import requests

# Set the request parameters
url = 'https://xxxx.service-now.com/api/now/table/change_request?sysparm_fields=type'

# Eg. User name="admin", Password="admin" for this code sample.
user = 'admin'
pwd = 'admin'

# Set proper headers
headers = {"Content-Type":"application/json","Accept":"application/json"}

# Do the HTTP request
response = requests.post(url, auth=(user, pwd), headers=headers ,data="{\"type\":\"Emergency\"}")

# Check for HTTP codes other than 200
if response.status_code != 200: 
    print('Status:', response.status_code, 'Headers:', response.headers, 'Error Response:',response.json())
    exit()

# Decode the JSON response into a dictionary and use the data
data = response.json()
print(data)

Alternative Options for url THAT MAY NOT WORK = 'https://xxxx.service-now.com/api/now/table/"optionsA" OR "B" OR "C" is as follows:

A) POST /sn_chg_rest/change/standard/{standard_change_template_id}

B) POST api/sn_chg_rest/change/normal

C) POST Versioned URL /api/sn_chg_rest/{version}/change/emergency

link for A, B , C above : https://developer.servicenow.com/dev.do#!/reference/api/orlando/rest/change-management-api#changemgmt-POST-emerg-create-chng-req

Resources:

Screen Shot of what the Documentation says to do but Does not work

1

There are 1 answers

0
Abdullah Baig On

API_URL="/api/sn_chg_rest/v1/change/emergency" this Might have worked, going to confirm.

Yup this works ! unable to submit Standard OR Expedited. But that might be a setting that needs to be enabled (Not sure). Looking into it further. Some progress.