Les sandboxes ServiceNow sont parfaites pour tester et configurer des fonctionnalités sans affecter un environnement de production. Toutefois, si vous souhaitez simuler des workflows avec des incidents personnalisés, un script d’injection peut vous aider à charger plusieurs incidents de test depuis un fichier CSV. Dans cet article, nous allons vous guider pas à pas pour injecter des incidents de test dans votre sandbox ServiceNow en utilisant un script Python.
Si vous ne savez pas comment obtenir votre sandbox : https://developer.servicenow.com/dev.do#!/home?wu=true
Étape 1 : Préparer le Fichier CSV avec les Données d’Incidents
Avant de commencer, créez un fichier CSV qui contiendra les incidents de test que vous souhaitez injecter dans ServiceNow. Assurez-vous que le fichier contient les colonnes suivantes :
- Number : Identifiant unique de l’incident.
- Opened : Date et heure d’ouverture de l’incident.
- Short description : Description succincte du problème.
- Description : Description détaillée du problème.
- Assignment group : Groupe auquel l’incident est assigné.
- Resolution notes : Notes de résolution de l’incident (si applicable).
Voici un exemple de structure du fichier CSV :
Number | Opened | Short description | Description | Assignment group | Resolution notes |
---|---|---|---|---|---|
INC001 | 2024-10-01 08:00 | Problème de connexion | L’utilisateur ne peut pas se connecter au réseau. | Support IT | Réinitialisé le mot de passe de l’utilisateur. |
INC002 | 2024-10-01 09:30 | Application lente | L’application prend trop de temps pour charger. | Support IT | Optimisé la base de données. |
Enregistrez ce fichier sous le nom ServiceNow_Incidents_Dataset.csv
dans le même répertoire que votre script Python.
ou utiliser mon fichier
Étape 2 : Créer le Script Python pour l’Injection d’Incidents
Ce script Python lit chaque ligne du fichier CSV et envoie les données d’incidents à votre instance ServiceNow via l’API REST.
Script Python
- Variables de configuration : Définissez l’URL de votre instance sandbox ServiceNow et votre token d’autorisation.
- Injection d’incidents : Le script lit chaque ligne du CSV et crée un incident en fonction des données fournies.
import pandas as pd
import requests
import random
import json
# Configuration variables
instance_url = "https://your_instance.service-now.com/api/now/table/incident" # Replace with your instance URL
auth_token = "YourAuthorizationToken" # Replace with your authorization token
# Load incidents from the CSV file
file_path = 'ServiceNow_Incidents_Dataset.csv' # Adjust path as necessary
data = pd.read_csv(file_path)
# Function to create an incident in ServiceNow
def create_incident(number, opened, short_description, description, assignment_group, impact, urgency, status, resolution_notes):
headers = {
'Authorization': f'Basic {auth_token}',
'Content-Type': 'application/json'
}
payload = {
"number": number,
"opened": opened,
"short_description": short_description,
"description": description,
"assignment_group": assignment_group,
"impact": impact,
"urgency": urgency,
"state": status
}
if status == '7': # 7: Solved
payload["resolution_notes"] = resolution_notes
payload["close_notes"] = resolution_notes
payload["resolution_code"] = "solved"
response = requests.post(instance_url, headers=headers, data=json.dumps(payload))
return response.status_code, response.json()
# Define possible statuses
statuses = ['1', '2', '3', '7'] # 1: New, 2: In Progress, 3: On Hold, 7: Solved
# Process each incident
for index, row in data.iterrows():
number = row['Number']
opened = row['Opened']
short_description = row['Short description']
description = row['Description']
assignment_group = row['Assignment group']
impact = random.randint(1, 3)
urgency = random.randint(1, 3)
status = random.choice(statuses)
resolution_notes = row['Resolution notes'] if status == '7' else None
status_code, response_json = create_incident(number, opened, short_description, description, assignment_group, impact, urgency, status, resolution_notes)
incident_number = response_json.get('result', {}).get('number', 'Unknown')
print(f"Ticket {number} - Status Code: {status_code}, Incident Number: {incident_number}, Response: {response_json}")
Étape 3 : Exécuter le Script
- Vérifiez les configurations : Assurez-vous d’avoir bien remplacé
instance_url
etauth_token
par les valeurs correspondant à votre sandbox. - Exécutez le script : Lancez le script depuis votre terminal ou votre IDE préféré. Chaque incident sera ajouté à votre sandbox ServiceNow.
python inject_incidents.py
Étape 4 : Vérifier les Incidents dans ServiceNow
Après l’exécution du script, connectez-vous à votre instance ServiceNow pour vérifier les incidents injectés :
- Accédez à Incidents > Tous les Incidents.
- Vous verrez les incidents de test créés par le script avec les données fournies dans le CSV.