CMDBQBScopedScriptableAPI : inclus dans le périmètre

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 8 minutes de lecture
  • Fournit des méthodes pour exécuter Base de données de gestion des configurations (CMDB) les opérations du générateur de requêtes dans des scripts côté serveur.

    Cette API est l’équivalent dans le champ d’application de CMDBQueryBuilderAPI : global.

    Cette API nécessite le module d’extension Configuration Management for Scoped Apps (com.snc.cmdb.scoped) et est fournie dans l’espace de noms sn_cmdb .

    Pour en savoir plus sur le générateur de requêtes, reportez-vous CMDB à la section CMDB Query Builder.

    CMDBQBScopedScriptableAPI : 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.

    Tableau 1. Paramètres
    Nom Type Description
    savedQueryId Chaîne Sys_id de la requête à utiliser pour le rapport. Situé dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un nom de requête est fourni.

    savedQueryName Chaîne Nom de la requête à utiliser pour le rapport. Situé dans le champ Nom de l’enregistrement de requête dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un sys_id de requête est fourni.

    Tableau 2. Renvoie
    Type Description
    Objet Objet contenant des détails sur le rapport créé et les erreurs éventuelles.
    {
       "error": "String",
       "message": "String",
       "status": "String"
    }
    <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 :

    • USER_NOT_AUTHORIZED_EXCEPTION
    • INVALID_PARAM
    • QUERY_SYS_ID_INVALID

    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 :

    • <url-rapport>
    • L’utilisateur n’est pas autorisé à créer un rapport de requête CMDBQueryBuilder
    • Paramètres non valides. Veuillez fournir un sysId valide ou un nom valide d’une requête enregistrée
    • ID de requête non valide. Veuillez fournir un ID de requête enregistré valide

    Type de données : chaîne

    <Object>.statut Code d’état. Renvoyé lorsque la mise à jour est réussie.

    Valeur : réussite

    Type de données : chaîne

    Cet exemple montre comment créer un rapport en transmettant un nom de requête enregistré.

    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.createReport('','CMDBQueryTest1')));

    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 sys_id et le nom de la requête sont tous deux absents de l’appel de méthode.

    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.createReport('', '')));

    Sortie :

    {
       "error":"INVALID_PARAM",
       "message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
    }

    CMDBQBScopedScriptableAPI : 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.

    Tableau 3. Paramètres
    Nom Type Description
    savedQueryId Chaîne Sys_id de la requête à supprimer. Situé dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un nom de requête est fourni.

    savedQueryName Chaîne Nom de la requête à supprimer. Situé dans le champ Nom de l’enregistrement de requête dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un sys_id de requête est fourni.

    Tableau 4. Renvoie
    Type Description
    Objet Objet contenant des détails sur la requête supprimée et les erreurs éventuelles.
    {
       "error": "String",
       "message": "String",
       "status": "String"
    }
    <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 :

    • USER_NOT_AUTHORIZED_EXCEPTION
    • INVALID_PARAM
    • QUERY_DELETE_FAILED

    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 :

    • La requête enregistrée a été supprimée avec succès
    • L’utilisateur n’est pas autorisé à supprimer une requête CMDBQueryBuilder
    • Paramètres non valides. Veuillez fournir un sysId valide ou un nom valide d’une requête enregistrée
    • Échec de la suppression de la requête enregistrée donnée

    Type de données : chaîne

    <Object>.statut Code d’état. Renvoyé lorsque la mise à jour est réussie.

    Valeur : réussite

    Type de données : chaîne

    Cet exemple montre comment supprimer une requête enregistrée en transmettant le nom de la requête.

    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.deleteQuery('', 'CMDBQueryTest1')));

    Sortie :

    {
       "message":"Successfully deleted the saved query",
       "status":"success"
    }

    Cet exemple montre une erreur lorsque le sys_id et le nom de la requête sont tous deux absents de l’appel de méthode.

    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.deleteQuery('', '')));

    Sortie :

    {
       "error":"INVALID_PARAM",
       "message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
    }

    CMDBQBScopedScriptableAPI : getSavedQueryExecutionDetails(String savedQueryName, Boolean executeQuery, Number timeout)

    Renvoie les détails d’exécution d’une requête du générateur de Base de données de gestion des configurations (CMDB) 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 d’expiration 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.

    Tableau 5. Paramètres
    Nom Type Description
    savedQueryName Chaîne Nom de la requête pour récupérer les détails de l’exécution. Situé dans le champ Nom de l’enregistrement de requête dans la table Requêtes enregistrées [qb_saved_query].
    executeQuery Booléen Facultatif. Marqueur indiquant s’il faut exécuter la requête spécifiée.

    Valeurs valides :

    • vrai : exécuter la requête spécifiée et renvoyer ses détails d’exécution.
    • faux : n’exécutez pas la requête spécifiée. Renvoyer les détails d’exécution les plus récents de la requête.

    Valeur par défaut : false

    timeout Numéro Facultatif. Valeur entière qui remplace la limite de délai d’expiration d’exécution de requête par défaut de cinq minutes.

    Unité : Secondes

    Par défaut : cinq minutes

    Tableau 6. Renvoie
    Type Description
    Objet Objet contenant des détails sur l’exécution de la requête et les erreurs éventuelles.
    {
       "error": "String",
       "message": "String",
       "query_id": "String",
       "status": "String",
       "table_name": "String"
    }
    <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 :

    • QUERY_EXECUTION_NOT_FOUND
    • QUERY_NOT_FOUND
    • QUERY_EXECUTION_FAILED
    • USER_NOT_AUTHORIZED_EXCEPTION

    Type de données : chaîne

    <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 :

    • Détails d’exécution de la requête introuvables. Exécutez la requête.
    • Requête enregistrée donnée introuvable. Assurez-vous de transmettre le nom d’une requête enregistrée.
    • Échec de l’exécution de la requête. Veuillez utiliser une requête valide.
    • L’utilisateur n’est pas autorisé à exécuter une requête CMDBQueryBuilder.

    Type de données : chaîne

    <Object>.query_id Sys_id de l’exécution de la requête. Situé dans la table État de la requête [qb_query_status].

    Type de données : chaîne

    <Object>.statut État de l’exécution de la requête.
    • COMPLETE : l’exécution est terminée.
    • FAILED : une erreur s’est produite lors de l’exécution de la requête.
    • TIME_OUT : l’exécution de la requête a expiré.
    • MAX_LIMIT : nombre maximal de résultats de retour atteint.

    Type de données : chaîne

    <Object>.table_name Nom de la table qui contient les détails d’exécution de la requête.

    Type de données : chaîne

    Cet exemple montre comment exécuter une requête enregistrée et définir la valeur du délai d’exécution de la requête sur 10 minutes.

    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.getSavedQueryExecutionDetails('Test', true, 600)));

    Sortie :

    {
       "query_id":"024fd53a7773330033b5270bba106141",
       "table_name":"u_cmdb_qb_result_598918aacb4dbf3f1a8dcf03fce6a5d57151a4e2",
       "status":COMPLETE
    }

    CMDBQBScopedScriptableAPI : 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 la sys_id de la requête enregistrée.

    Tableau 7. Paramètres
    Nom Type Description
    savedQueryName Chaîne Nom sous lequel enregistrer la requête. Le nom est enregistré dans le champ Nom de l’enregistrement de requête dans la table Requêtes enregistrées [qb_saved_query].
    queryJson Chaîne JSON qui définit la requête. Le JSON est enregistré dans le champ Requête de l’enregistrement de requête de la table Requêtes enregistrées [qb_saved_query].
    Tableau 8. Renvoie
    Type Description
    Objet Objet contenant des détails sur la requête enregistrée et les erreurs éventuelles.
    {
       "error": "String",
       "message": "String",
       "status": "String"
    }
    <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 :

    • USER_NOT_AUTHORIZED_EXCEPTION
    • QUERY_NAME_INVALID
    • QUERY_INVALID
    • QUERY_EXISTS_ALREADY
    • QUERY_SAVE_FAILED

    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 sauvegarde.

    Messages possibles :

    • Enregistrement réussi de la requête avec sysId <sy_id>
    • L’utilisateur n’est pas autorisé à enregistrer une requête CMDBQueryBuilder
    • Le nom de la requête est vide. Veuillez fournir un nom
    • QueryJson n’est pas valide. Veuillez fournir un queryJson valide
    • Le nom de la requête est déjà utilisé, veuillez utiliser un nom différent
    • Exception inattendue lors de l’enregistrement de la requête

    Type de données : chaîne

    <Object>.statut Code d’état. Renvoyé lorsque l’opération d’enregistrement est réussie.

    Valeur : réussite

    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}}";
    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.saveQuery('CMDBQueryTest1', queryJson)));

    Sortie :

    {
       "message":"Successfully saved the query with sysId d93f96981b310210bccf42a3b24bcb41",
       "status":"success"
    }

    Cet exemple montre une erreur lorsqu’une requête JSON non valide est fournie.

    var queryJson = "Test";
    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.saveQuery('Test', queryJson)));

    Sortie :

    {
       "error":"QUERY_INVALID",
       "message":"QueryJson is invalid. Please provide a valid queryJson"
    }

    CMDBQBScopedScriptableAPI : updateQuery(String savedQueryId, String savedQueryName, String queryJson)

    Met à jour le JSON pour une requête du générateur de Base de données de gestion des configurations (CMDB) requêtes.

    Tableau 9. Paramètres
    Nom Type Description
    savedQueryId Chaîne Sys_id de la requête à mettre à jour. Situé dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un nom de requête est fourni.

    savedQueryName Chaîne Nom de la requête à mettre à jour. Situé dans le champ Nom de l’enregistrement de requête dans la table Requêtes enregistrées [qb_saved_query].

    Ce paramètre n’est pas requis si un sys_id de requête est fourni.

    queryJson Chaîne JSON avec lequel mettre à jour la requête. Le JSON est enregistré dans le champ Requête de l’enregistrement de requête de la table Requêtes enregistrées [qb_saved_query].
    Tableau 10. Renvoie
    Type Description
    Objet Objet contenant des détails sur la requête mise à jour et les erreurs éventuelles.
    {
       "error": "String",
       "message": "String",
       "status": "String"
    }
    <Object>.erreur Code d’erreur. Renvoyé lorsque la mise à jour échoue ou que des paramètres d’entrée non valides sont fournis.

    Erreurs possibles :

    • USER_NOT_AUTHORIZED_EXCEPTION
    • INVALID_PARAM
    • QUERY_INVALID
    • QUERY_UPDATE_FAILED
    • UNAUTHORIZED_REPORT_SOURCE_USER

    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 :

    • La requête enregistrée a été mise à jour avec succès
    • L’utilisateur n’est pas autorisé à mettre à jour une requête CMDBQueryBuilder
    • Paramètres non valides. Veuillez fournir un sysId valide ou un nom valide d’une requête enregistrée
    • QueryJson n’est pas valide. Veuillez fournir un queryJson valide
    • Échec de la mise à jour de la requête enregistrée donnée
    • L’utilisateur n’est pas autorisé à mettre à jour la source de rapport d’une requête enregistrée

    Type de données : chaîne

    <Object>.statut Code d’état. Renvoyé lorsque la mise à jour est réussie.

    Valeur : réussite

    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}}";
    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.updateQuery('', 'CMDBQueryTest1', queryJson)));

    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 absents de 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}}";
    gs.info(JSON.stringify(sn_cmdb.CMDBQBScopedScriptableAPI.updateQuery('', '', queryJson)));

    Sortie :

    {
       "error":"INVALID_PARAM",
       "message":"Invalid Parameters. Please provide either a valid sysId or a valid name of a saved query"
    }