CMDBQueryBuilderAPI : global
Fournit des méthodes pour exécuter Base de données de gestion des configurations (CMDB) des opérations du générateur de requêtes dans des scripts côté serveur.
Cette API nécessite l’application Base de données de gestion des configurations (CMDB) (com.snc.cmdb).
Cette API n’est disponible que dans le périmètre global. Pour utiliser ces méthodes dans une application incluse dans le périmètre, reportez-vous à la section CMDBQBScopedScriptableAPI : dans le champ d’application.
Pour plus d’informations sur le CMDB générateur de requêtes, reportez-vous à la section CMDB Query Builder.
CMDBQueryBuilderAPI : createReport(String savedQueryId, String savedQueryName)
Crée un rapport qui affiche les résultats d’une Base de données de gestion des configurations (CMDB) requête du générateur de requêtes et renvoie l’URL du rapport.
Pour les applications incluses dans le périmètre, utilisez CMDBQBScopedScriptableAPI : createReport(String savedQueryId, String savedQueryName).
| Nom | Type | Description |
|---|---|---|
| savedQueryId | Chaîne | Sys_id de la requête à utiliser pour le rapport. Ce paramètre n’est pas requis si un nom de requête est fourni. Table : requêtes enregistrées [qb_saved_query] |
| nom_requête sauvegardé | Chaîne | Nom de la requête à utiliser pour le rapport. Ce paramètre n’est pas requis si une sys_id de requête est fournie. Table : enregistrée dans le champ Nom de la table Requêtes enregistrées [qb_saved_query]. |
| Type | Description |
|---|---|
| Objet | Détails sur le rapport créé et les éventuelles erreurs. |
| <Object>.erreur | Code d’erreur. Renvoyé lorsque la création du rapport échoue ou que des paramètres d’entrée non valides sont fournis. Erreurs possibles :
Type de données : chaîne |
| <Object>.Message | Message contenant des détails sur la réussite ou l’échec de la création du rapport. Messages possibles :
Type de données : chaîne |
| <Object>.statut | Code d’état. Renvoyé lorsque la mise à jour réussit. Valeur : Type de données : chaîne |
Cet exemple montre comment créer un rapport en transmettant un nom de requête enregistré.
var queryReport = SNC.CMDBQueryBuilderAPI.createReport('', 'CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(queryReport), null, 2));
Sortie :
{
"message":"\/sys_report_template.do?sysparm_report_source_id=6d299cf81bbd4210bccf42a3b24bcb7a&sysparm_type=list&sysparm_title=CMDBQueryTest1&sysparm_source_type=source&sysparm_from_list=true&sysparm_chart_size=large&sysparm_manual_labor=true",
"status":"success"
}
Cet exemple montre une erreur lorsque le nom de requête fourni n’est pas valide.
var queryReport = SNC.CMDBQueryBuilderAPI.createReport('', 'Test');
gs.info(JSON.stringify(JSON.parse(queryReport), null, 2));
Sortie :
{
"error":"INVALID_PARAM",
"message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
}
CMDBQueryBuilderAPI : deleteQuery(String savedQueryId, String savedQueryName)
Supprime une Base de données de gestion des configurations (CMDB) requête du générateur de requêtes.
Pour les applications incluses dans le périmètre, utilisez CMDBQBScopedScriptableAPI : deleteQuery(String savedQueryId, String savedQueryName).
| Nom | Type | Description |
|---|---|---|
| savedQueryId | Chaîne | Sys_id de la requête à supprimer. Ce paramètre peut être fourni en tant que chaîne vide si un nom de requête est fourni. Table : requêtes enregistrées [qb_saved_query] |
| nom_requête sauvegardé | Chaîne | Nom de la requête à supprimer. Ce paramètre n’est pas requis si une sys_id de requête est fournie. Table : enregistrée dans le champ Nom de la table Requêtes enregistrées [qb_saved_query]. |
| Type | Description |
|---|---|
| Objet | Détails sur la requête supprimée et les éventuelles erreurs. |
| <Object>.erreur | Code d’erreur. Renvoyé lorsque l’opération de suppression échoue ou que des paramètres d’entrée non valides sont fournis. Erreurs possibles :
Type de données : chaîne |
| <Object>.Message | Message contenant des détails sur la réussite ou l’échec de l’opération de suppression. Messages possibles :
Type de données : chaîne |
| <Object>.statut | Code d’état. Renvoyé lorsque la mise à jour réussit. Valeur : Type de données : chaîne |
Cet exemple montre comment supprimer une requête enregistrée en transmettant le nom de la requête.
var delQuery = SNC.CMDBQueryBuilderAPI.deleteQuery('', 'CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(delQuery), null, 2));
Sortie :
{
"message":"Successfully deleted the saved query",
"status":"success"
}
CMDBQueryBuilderAPI : getSavedQueryExecutionDetails(String savedQueryName, booléen executeQuery, délai d’expiration du numéro)
Renvoie les détails d’exécution d’une Base de données de gestion des configurations (CMDB) requête du générateur de requêtes.
Vous pouvez éventuellement exécuter la requête afin de renvoyer les détails de l’exécution actuelle.
Si un problème de délai ou de mémoire se produit lors de l’exécution de la requête, vous pouvez affiner la taille du lot de requête pour aider à atténuer ces problèmes. Pour plus d’informations, consultez Taille du lot pour les requêtes enregistrées dans le générateur de requêtes.
Pour les applications incluses dans le périmètre, utilisez CMDBQBScopedScriptableAPI : getSavedQueryExecutionDetails(String savedQueryName, booléen executeQuery, délai d’expiration du numéro).
| Nom | Type | Description |
|---|---|---|
| nom_requête sauvegardé | Chaîne | Nom de la requête pour laquelle récupérer les détails de l’exécution. Table : champ Nom de la table Requêtes enregistrées [qb_saved_query]. |
| exécuter la requête | Booléen | Facultatif. Marqueur indiquant s’il faut exécuter ou non la requête spécifiée. Valeurs valides :
Valeur par défaut : false |
| timeout | Numéro | Facultatif. Valeur entière qui remplace le délai d’expiration d’exécution de requête par défaut de cinq minutes. Unité : Secondes Par défaut : cinq minutes |
| Type | Description |
|---|---|
| Objet | Détails sur l’exécution de la requête et les éventuelles erreurs. |
| <Object>.erreur | Code d’erreur. Renvoyé lorsque l’exécution de la requête échoue ou que la requête spécifiée est introuvable. Erreurs possibles :
Type de données : chaîne |
| <Object>.execution_batch_size | Taille de lot de 100 allouée pour l’exécution de la requête. Cette valeur est uniquement renvoyée si le executeQuery paramètre est vrai. Voir aussi Batch size for CMDB Query Builder queries. Type de données : nombre |
| <Object>.Message | Message contenant des détails sur le code d’erreur. Renvoyé lorsque l’exécution de la requête échoue ou que la requête spécifiée est introuvable. Messages possibles :
Type de données : chaîne |
| <Object>.query_id | Sys_id de l’exécution de la requête. Type de données : chaîne Table : état de la requête [qb_query_status] |
| <Object>.statut | État de l’exécution de la requête.
Type de données : chaîne |
| <Object>.table_name | Nom de la table qui contient les détails de l’exécution de la requête. Type de données : chaîne |
Cet exemple montre comment obtenir l’état d’exécution d’une requête enregistrée.
var savedQuery = SNC.CMDBQueryBuilderAPI.getSavedQueryExecutionDetails('CMDBQueryTest1');
gs.info(JSON.stringify(JSON.parse(savedQuery), null, 2));
Sortie :
{
"query_id":"024fd53a7773330033b5270bba106141",
"table_name":"u_cmdb_qb_result_598918aacb4dbf3f1a8dcf03fce6a5d57151a4e2",
"status":COMPLETE
}
Cet exemple montre comment exécuter une requête enregistrée et définir la valeur du délai d’expiration d’exécution de la requête sur 10 minutes.
var savedQuery = SNC.CMDBQueryBuilderAPI.getSavedQueryExecutionDetails('CMDBQueryTest2', true, 600);
gs.info(JSON.stringify(JSON.parse(savedQuery), null, 2));
Sortie :
{
"execution_batch_size": 100,
"query_id": "e73428b4939baa50779bfdfb5cba1047",
"table_name": "u_cmdb_qb_result_f0eed95be923bf3d439c87c028ae3c3af53aa739",
"status": "COMPLETE"
}
L’exemple suivant montre comment accéder aux informations dans la table des résultats pour la requête enregistrée CMDBQueryTest2 dans l’exemple précédent. Vous pouvez également utiliser le nom de la table des résultats suivi de .list dans le filtre de résultats.
var resultTableName = 'u_cmdb_qb_result_f7593958e298869427726be96f88155cce269806';
var queryId = '76bd283c931bee502285f4cc5cba10da'; // insert the query ID here
var gr = new GlideRecord(resultTableName);
gr.addQuery('query', queryId);
gr.query();
if (gr.next()) {
gs.info(gr.getDisplayValue('u_server_1')); // field name in the result table
}
Sortie :
PS LoadBal01
CMDBQueryBuilderAPI : saveQuery(String savedQueryName, String queryJson)
Enregistre une Base de données de gestion des configurations (CMDB) requête du générateur de requêtes et renvoie le sys_id de la requête enregistrée.
Pour les applications incluses dans le périmètre, utilisez CMDBQBScopedScriptableAPI : saveQuery(String savedQueryName, String queryJson).
| Nom | Type | Description |
|---|---|---|
| nom_requête sauvegardé | Chaîne | Nom sous lequel enregistrer la requête. Table : enregistrée dans le champ Nom de la table Requêtes enregistrées [qb_saved_query]. |
| queryJson | Chaîne | JSON qui définit la requête. Table : enregistrée dans le champ Requête de la table Requêtes enregistrées [qb_saved_query]. |
| Type | Description |
|---|---|
| Objet | Objet contenant des détails sur la requête enregistrée et les éventuelles erreurs. |
| <Object>.erreur | Code d’erreur. Renvoyé lorsque l’opération d’enregistrement échoue ou que des paramètres d’entrée non valides sont fournis. Erreurs possibles :
Type de données : chaîne |
| <Object>.Message | Message contenant des détails sur la réussite ou l’échec de l’opération d’enregistrement. Messages possibles :
Type de données : chaîne |
| <Object>.statut | Code d’état. Renvoyé en cas de réussite de l’opération d’enregistrement. Valeur : Type de données : chaîne |
Cet exemple montre comment ajouter une requête à la table Requêtes enregistrées [qb_saved_query].
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":337,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Database\",\"unique_id\":\"b640269c1b310210bccf42a3b24bcb36\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/database.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_database\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_database\",\"ci_type_label\":\"Database\",\"sys_id\":\"b640269c1b310210bccf42a3b24bcb36\",\"x\":510,\"y\":340,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"name\":\"Database 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"className\":\"cmdb_ci_database\"}],\"edges\":[{\"id\":\"Server 1_Database 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"b640269c1b310210bccf42a3b24bcb36_4_23_2024_5_50_57\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\",\"1a9cb166f1571100a92eb60da2bce5c5\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1}}";
var newQuery = SNC.CMDBQueryBuilderAPI.saveQuery('CMDBQueryTest1', queryJson);
gs.info(JSON.stringify(JSON.parse(newQuery), null, 2));
Sortie :
{
"message":"Successfully saved the query with sysId d93f96981b310210bccf42a3b24bcb41",
"status":"success"
}
CMDBQueryBuilderAPI : updateQuery(String savedQueryId, String savedQueryName, String queryJson)
Met à jour le JSON d’une Base de données de gestion des configurations (CMDB) requête du générateur de requêtes.
Pour les applications incluses dans le périmètre, utilisez CMDBQBScopedScriptableAPI : updateQuery(String savedQueryId, String savedQueryName, String queryJson).
| Nom | Type | Description |
|---|---|---|
| savedQueryId | Chaîne | Sys_id de la requête à mettre à jour. Ce paramètre n’est pas requis si un nom de requête est fourni. Table : requêtes enregistrées [qb_saved_query] |
| nom_requête sauvegardé | Chaîne | Nom de la requête à mettre à jour. Ce paramètre n’est pas requis si une sys_id de requête est fournie. Table : enregistrée dans le champ Nom de la table Requêtes enregistrées [qb_saved_query]. |
| queryJson | Chaîne | JSON avec lequel mettre à jour la requête. Table : enregistrée dans le champ Requête de la table Requêtes enregistrées [qb_saved_query]. |
| Type | Description |
|---|---|
| Objet | Détails sur la requête mise à jour et les éventuelles erreurs. |
| <Object>.erreur | Code d’erreur. Renvoyé en cas d’échec de la mise à jour ou lorsque des paramètres d’entrée non valides sont fournis. Erreurs possibles :
Type de données : chaîne |
| <Object>.Message | Message contenant des détails sur la réussite ou l’échec de la mise à jour. Messages possibles :
Type de données : chaîne |
| <Object>.statut | Code d’état. Renvoyé lorsque la mise à jour réussit. Valeur : Type de données : chaîne |
Cet exemple montre comment mettre à jour une requête enregistrée en transmettant le nom de la requête.
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":336,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Web Server\",\"unique_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/web_server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_web_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_web_server\",\"ci_type_label\":\"Web Server\",\"sys_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"x\":446,\"y\":330,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"name\":\"Web Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"className\":\"cmdb_ci_web_server\"}],\"edges\":[{\"id\":\"Server 1_Web Server 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1,\"cmdb_ci_web_server\":1}}";
var queryUpdate = SNC.CMDBQueryBuilderAPI.updateQuery('', 'CMDBQueryTest1', queryJson);
gs.info(JSON.stringify(JSON.parse(queryUpdate), null, 2));
Sortie :
{
"message":"Successfully updated the saved query",
"status":"success"
}
Cet exemple montre une erreur lorsque le sys_id et le nom de la requête sont tous deux manquants dans l’appel de méthode.
var queryJson = "{\"type\":\"cmdb\",\"nodes\":[{\"label\":\"Server\",\"unique_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_server\",\"ci_type_label\":\"Server\",\"sys_id\":\"d93f96981b310210bccf42a3b24bcb41\",\"x\":72,\"y\":336,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":true,\"nodeId\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"name\":\"Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"className\":\"cmdb_ci_server\"},{\"label\":\"Web Server\",\"unique_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"nodeType\":\"class\",\"image\":\"images/app.ngbsm/web_server.svg\",\"properties\":\"\",\"allowed_connections\":[],\"filters\":{\"platform\":\"cmdb_ci_web_server\",\"custom\":\"\"},\"ci_type\":\"cmdb_ci_web_server\",\"ci_type_label\":\"Web Server\",\"sys_id\":\"984f5a981b310210bccf42a3b24bcb03\",\"x\":446,\"y\":330,\"returnValues\":[],\"filters_attrib\":\"\",\"applied_filters\":\"\",\"isStartNode\":false,\"nodeId\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"name\":\"Web Server 1\",\"type\":\"class\",\"refFilterApplied\":false,\"focused\":false,\"id\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"className\":\"cmdb_ci_web_server\"}],\"edges\":[{\"id\":\"Server 1_Web Server 1\",\"from\":\"d93f96981b310210bccf42a3b24bcb41_4_23_2024_5_50_54\",\"to\":\"984f5a981b310210bccf42a3b24bcb03_4_23_2024_6_32_19\",\"isDotted\":false,\"type\":\"relation\",\"isReverse\":false,\"direction\":\"outbound\",\"hiddenLevel\":0,\"relations\":[\"607ad1b2c0a8010e01941856b365af90\"]}],\"usedNames\":{\"cmdb_ci_server\":1,\"cmdb_ci_database\":1,\"cmdb_ci_web_server\":1}}";
var queryUpdate = SNC.CMDBQueryBuilderAPI.updateQuery('', '', queryJson);
gs.info(JSON.stringify(JSON.parse(queryUpdate), null, 2));
Sortie :
{
"error":"INVALID_PARAM",
"message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
}