Service Now API SDK is used to facilitate integrations, automations and also code reuse
Project description
ServiceNow API SDK
Check out our GitHub Repository!
Check out ServiceNow REST API documentation.
Interact with ServiceNow functionalities for your python application, includes the ability to perform create, read, update, and delete (CRUD) operations on existing tables, insert data into, retrieve information from and submit tickets.
Installation
pip install service-now-api-sdk
Environment variables
To use service-now-api-sdk library, you need set four environment variables:
# ---DOTENV EXAMPLE---
SERVICENOW_URL=https://service-now.com # base url of you servicenow server
SERVICENOW_API_TOKEN= # servicenow auth token
SERVICENOW_API_USER= # servicenow user
SERVICENOW_API_PASSWORD= # servicenow user password
# you can choose beetwen user and password or api token to authentication
We recommended you to create a .env
file in your project root to set environment variables.
Coding in Windows OS
On coding in Windows OS, you need set the environment variables before import service-now-api-sdk library
import os
# set environment variables before import service-now-api-sdk library
os.environ["SERVICENOW_URL"] = "https://your-service-now-base-path.com"
os.environ["SERVICENOW_API_TOKEN"] = "Your api token"
os.environ["SERVICENOW_API_USER"] = "your.user.email@domain.com"
os.environ["SERVICENOW_API_PASSWORD"] = "your password"
from service_now_api_sdk.sdk import Records
Example Usage
Get data from servicenow table
To get data from servicenow table, we use Records
class.
from service_now_api_sdk.sdk import Records
# This code get all records in one servicenow table
table_name = "sys_user" # replace this with table name are you need
records = Records(table=table_name)
table_data = records.all() # all() method return all records
Querying
You can apply filters and select columns in the table using Records().query
method. For example:
from datetime import datetime, timedelta
from service_now_api_sdk.sdk import Records
table_name = "incident"
records = Records(table=table_name)
# define date interval to filter
start = datetime(1970, 1, 1)
end = datetime.now() - timedelta(days=20)
# query registers of incident with number started with 'INC0123', created between 1970-01-01 and 20 days old.
records.query.field('number').starts_with('INC0123')\
.AND().field('sys_created_on').between(start, end)\
.AND().field('sys_updated_on').order_descending()
data = records.all() # return all records of query
Update tables
to create, delete and update records in a servicenow table, you can use Manager
class.
from service_now_api_sdk.sdk import Manager
table_name = "name of table you need update"
manager = Manager(table=table_name)
# create new register in table example
register_to_create = {
"field1": "value1",
"field2": "value2",
}
manager.create(data=register_to_create)
# update register in table example
register_update_sys_id = "id of register you need update"
register_data_to_update = {
"field1": "value4"
}
manager.update(sys_id=register_update_sys_id, data=register_data_to_update)
# delete register in table example
register_delete_sys_id = "id of register you need delete"
manager.delete(sys_id=register_delete_sys_id)
Submit tickets
To submit tickets, you can use ProducerServiceCatalog
class.
from service_now_api_sdk.sdk import ProducerServiceCatalog
survey_catalog_id = "id of your ticket survey in servicenow catalog"
variables = {
"question1": "value1",
"question2": "value2"
}
producer_catalog = ProducerServiceCatalog()
result = producer_catalog.store(catalog_id=survey_catalog_id, variables=variables)
Get ticket plataform URL by query or ticket number
To get ticket plataform URL by query or ticket number, you can use aux_functions
function.
from service_now_api_sdk.sdk import aux_functions
query = QueryBuilder().field('number').starts_with("RIT")
url = aux_functions.make_platform_url_list_view(table_name="sc_req_item", query=query, interface="list_view")
print(url)
Output:
https://stone.service-now.com/sc_req_item_list.do?sysparm_query=numberSTARTSWITHRIT
Query params
field(field)
Define the field to operate
parameters: field – field (str) to operate
order_descending()
Define a order descending of field
order_ascending()
Define a order ascending of field
starts_with(starts_with)
adds new STARTSWITH condition
parameters: starts_with – field of correspondence starts with a value provided
ends_with(ends_with)
adds new ENDSWITH condition
parameters: ends_with – field of correspondence ends with a value provided
contains(contains)
adds new LIKE condition
parameters: contains – field of correspondence contains the value provided
not_contains(not_contains)
adds new NOTLIKE condition
parameters: not_contains – field of correspondence not contains the value provided
is_empty()
adds new ISEMPTY condition
is_not_empty()
adds new ISNOTEMPTY condition
equals(data)
adds new IN or EQUALS condition depending on whether a list or string had provided
parameters: data – string or list of values
raise: QueryTypeError: if the data provided are of an unexpected kind
not_equals(data)
adds a new NOT IN ou EQUALS condition depending on whether a list or string had provided
parameters: data – string or list of values
raise: QueryTypeError: if the data provided are of an unexpected kind
greater_than(greater_than)
adds a new GREATER THAN condition
parameters: greater_than – object compatible with string or datetime (naive UTC datetime or tz-aware datetime)
raise: QueryTypeError: if greater_than provided are of an unexpected kind
less_than(less_than)
adds new LESS THAN condition
parameters: less_than – object compatible with string or datetime (naive UTC datetime or tz-aware datetime)
raise: QueryTypeError: if less_than provided are of an unexpected kind
between(start, end)
adds a new BETWEEN condition
parameters: start – object compatible with integer or datetime (in the user's time zone SNOW) end – object compatible with integer or datetime (in the user's time zoneSNOW)
raise: QueryTypeError: if the initial or final arguments are of an invalid type
AND()
adds a new AND operator
OR()
adds a new OR operator
NQ()
adds a new NQ operator (new query)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file service_now_api_sdk-0.0.23.tar.gz
.
File metadata
- Download URL: service_now_api_sdk-0.0.23.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c5c834d362aa94c27c75fb9bba2b75272a4dbf66482bc569aea846c6b707a93 |
|
MD5 | e81a0ac0370d5c13c65783e7a56c4c23 |
|
BLAKE2b-256 | 1dde5ed36631eb6eb47adddcadd8662ec231c5930a0b7cf3cdb40f6c6ca57001 |
File details
Details for the file service_now_api_sdk-0.0.23-py3-none-any.whl
.
File metadata
- Download URL: service_now_api_sdk-0.0.23-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 955dab913eedeb911cb054048abdb85ac859c5ee3400d3213ac97baa67bfd447 |
|
MD5 | 8b5fcd8dea5e0fb002c7dad0f3a85060 |
|
BLAKE2b-256 | 6d200536d7dd188e55a0acf4ec0da6d76cee14702e5f60debfb144d6950feffc |