https://github.com/buildit/elc-snow-util
A utilty to pull data from ServiceNow with Employee Center application for Business Intelligence
https://github.com/buildit/elc-snow-util
Last synced: about 1 month ago
JSON representation
A utilty to pull data from ServiceNow with Employee Center application for Business Intelligence
- Host: GitHub
- URL: https://github.com/buildit/elc-snow-util
- Owner: buildit
- Created: 2022-11-18T18:10:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-23T21:48:04.000Z (over 2 years ago)
- Last Synced: 2025-02-04T23:31:43.447Z (3 months ago)
- Language: Python
- Size: 28.3 KB
- Stars: 1
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Summary
Python CLI that includes a couple of reports and a utility commands that run against ServiceNow
with the Employee Center application.# How to Install
* Install Python 3.10
* Download a tarball of a release of this command
* Run the following to install```
pip install elc-snow-util-1.0.0.tar.gz
```## Virtual Environments
It really is better to install a command like this in a Python virtual environment, but explaining how to use them is beyond the scope of this docuemntation.
# Configuration File
The command-line needs a configuration file in `%APPDATA%\snowutil.ini`. On Linux/MacOS, it will look for this file in `$HOME/.config/snowutil.conf`.
The format of the file as as follows:
```
endpoint: https://host-name-of-service-now/api
username: admin_username
password: admin_password
taxonomy: name-of-the-employee-center-taxonomy
```No credentials are stored with the software itself.
# Commands
The software supports the following sub-commands:
| Command Name | Description |
|----------------|-------------|
| `catalog-report` | Creates a report on all Catalog Items (`sc_cat_item`) connected to a topic in the Taxonomy |
| `sort-content` | Modify the `order` of all content (`m2m_connected_content`) connected to a topic in the taxonomy |
| `topics-report` | Creates a report on all Topics (`topic`) in the taxonomy |
| `topic-icons` | Download the icons for each topic in the taxonomy |## Uage and Common Options
You can always find out the usage of a command by using the `-h` option with that command. As an example, the command-line below finds the usage for the catalog-report:
```
elc-snow-util catalog-report -h
```All of these commands support the following common options:
| Long Option | Short Option | Description |
|-------------|--------------|-------------|
| `--config path` | `-c path` | You can have a different file for each service now instance |
| `--quiet` | `-q` | By default, the command tells you how many API calls it has made and shows some progress |## Catalog Report
The catalog report requires an `OUTPUT` path which can be a CSV or XLSX. It supports the following options:
| Long Option | Short Option | Description |
|-------------|--------------|-------------|
| `--drop-missing` | None | Drops catalog items that are not connected to the taxonomy |
| `--active-items` | None | Query only on active items |
| `--active-topics` | None | Report only menu items for active topics in the taxonomy |An example of calling this command is as follows:
```
elc-snow-util catalog-report --drop-missing --active-topics Items-Connected-to-Active-Topics.xlsx
```## Topics Report
The topics report uses the REST Table Api of the `topics` and `m2m_connnected_content` tables to report on the number of catalog items connected to each topic, or menu item. It requires an `OUTPUT` path which can be a CSV or XLSX.
It supports the following options:
| Long Option | Short Option | Description |
|-------------|--------------|-------------|
| `--active` | `-a` | Report only on active topics |An example of calling this command is as follows:
```
elc-snow-util -a Active-Topic-with-Content-Count.xlsx
```## Topics Icons
The topic icons command uses the REST Table API against the `topics` table to get the id of each Icon, which it then downloads. It uses a python package linked with [libmagic](https://man7.org/linux/man-pages/man3/libmagic.3.html) that determines from the file's contents whether it is a PNG, JPEG, or SVG, and then renames the file based on the menu path and the appropriate extension.
The topic icons command requires an `OUTPUT` which should be the path to a directory, which will be created if it does not exist.
The command supports the following options:
| Long Option | Short Option | Description |
|-------------|--------------|-------------|
| `--active` | `-a` | Report only on active topics |An example of calling it is as follows
```
elc-snow-util topic-icons --active Menu-Icons
dir/w Menu-Icons
```## Sort Content Utility
This command is the only utility which modifies service now. It takes an `TOPIC_PATH` argument which tells it which connected content to reorder. An example of calling this command is as follows:
```
elc-snow-util sort-content "Software /"
```This would sort all of the content items connected to the Software topic. This command only
queries on content connected to active topics.