API du débogueur de script

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 8 minutes de lecture
  • L’API Script Debugger fournit des points de terminaison pour déboguer des lignes de code JavaScript côté serveur, telles que des règles métier et des script includes.

    Pour plus d’informations sur le débogueur de script, consultez Débogueur de script et journal de session.

    Cette API est disponible par défaut.

    Débogueur de script : GET /js/debugpoints/script/{tableName}/{sysId}/{fieldName}

    Récupérez une liste de points d’arrêt ou de points de connexion dans un script côté serveur, tel qu’une règle métier ou un script include.

    Format d'URL

    URL par défaut : /api/now/js/debugpoints/script/{tableName}/{sysId}/{fieldName}

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    tableName Nom de la table qui contient le script côté serveur, tel que sys_script ou sys_script_include.

    Type de données : chaîne

    sysId Sys_id pour le script côté serveur.

    Type de données : chaîne

    Fieldname Nom du champ qui contient le contenu du script côté serveur.

    Type de données : chaîne

    Tableau 2. Paramètres de requête
    Nom Description
    Néant
    Tableau 3. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    Néant

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 5. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 6. Codes d'état
    Code d'état Description
    200 Réussi. La demande a été correctement traitée.
    403 L'utilisateur n'est pas autorisé. L’utilisateur qui a exécuté la demande n’a pas l’autorisation d’accéder aux informations de point d’arrêt ou de point de journal pour l’enregistrement spécifié.

    Paramètres de corps de réponse (JSON ou XML)

    Nom Description
    canWrite Marqueur indiquant si l’utilisateur actuellement connecté peut définir ou modifier des points d’arrêt pour le script.
    Valeurs possibles :
    • true : vous pouvez définir ou modifier des points d’arrêt.
    • false : vous ne pouvez pas définir ou modifier des points d’arrêt.

    Type de données : booléennes

    Points de débogage Liste de tous les points d’arrêt et points de connexion dans le script.
    "debugpoints": {
      "breakpoint": {Object}
      "logpoint": {Object}
    }

    Type de données : objet

    points de débogage.point d’arrêt Liste de tous les points d’arrêt du script, présentés sous forme de paires clé-valeur. La clé est le numéro de ligne du point d’arrêt. La valeur est un objet contenant le sys_id et le texte du point d’arrêt.
    "breakpoint": {
      <line_number>: {Object}
    }

    Type de données : objet

    points de débogage.point d’arrêt.&lt;line_number> Numéro de ligne du point d’arrêt.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    Type de données : objet

    points de débogage.point d’arrêt.&lt;line_number>.evaluationString Texte du point d’arrêt. Si le point d’arrêt est conditionnel, evaluationString contient le texte de la condition. Si le point d’arrêt n’est pas conditionnel, evaluationString est une chaîne vide.

    Type de données : chaîne

    points de débogage.point d’arrêt.&lt;line_number>.sysId Sys_id du point d’arrêt.

    Type de données : chaîne

    points de débogage.point de connexion Liste de tous les points de connexion du script, présentés sous forme de paires clé-valeur. La clé est le numéro de ligne du point de connexion. La valeur est un objet contenant l’sys_id et le texte du point de connexion.
    "logpoint": {
      <line_number>: {Object}
    }

    Type de données : objet

    points de débogage.point de connexion.&lt;line_number> Numéro de ligne du point de connexion.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    Type de données : objet

    points de débogage.point-log.&lt;line_number>.evaluationString Texte du point de connexion. Contient le message en cours de journalisation.

    Type de données : chaîne

    points de débogage.point-log.&lt;line_number>.sysId Sys_id du point de connexion.

    Type de données : chaîne

    key Objet fournissant des détails sur le script en cours de débogage.
    "key": {
      "scriptField": "String"
      "scriptId": "String"
      "scriptType": "String"
      "value": "String"
    }

    Type de données : objet

    key.scriptField Nom du champ qui contient le script.

    Type de données : chaîne

    ID clé.script Sys_id du script.

    Type de données : chaîne

    key.scriptType Nom de la table qui contient le script.

    Type de données : chaîne

    clé.valeur Paramètres de chemin d’accès utilisés pour effectuer la demande. Répertoriés dans l’ordre suivant.
    • tableName
    • sysId
    • Fieldname

    Type de données : chaîne

    nom Nom du script.

    Type de données : chaîne

    script Texte affichant le code du script.

    Type de données : chaîne

    Exemple de demande cURL

    Demande cURL

    Récupère une liste de points de connexion et de points d’arrêt pour un script côté serveur. Ce script comporte un point de connexion sur la ligne 2, un point d’arrêt sur la ligne 11 et un point d’arrêt conditionnel sur la ligne 18.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/script/sys_script_include/d65f78c40a0a0b6900196656f35913d3/script" \
    --request GET \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --user 'username':'password'
    {
      "result": {
        "canWrite": true,
        "debugpoints": {
          "LOGPOINT": {
            "2": {
              "evaluationString": "A log message",
              "sysId": "ba28b0fa739310101c233096fbf6a75e"
            }
          },
          "BREAKPOINT": {
            "11": {
              "evaluationString": "",
              "sysId": "dc5f5bf341256010f877587fbdf5ec1d"
            },
            "18": {
              "evaluationString": "a == true",
              "sysId": "3d4f5bf341256010f877587bdf5ecf6"
            }
          }
        },
        "script": "// script code",
        "name": "AbstractAjaxProcessor",
        "key": {
          "scriptType": "sys_script_include",
          "scriptId": "d65f78c40a0a0b6900196656f35913d3",
          "scriptField": "script",
          "value": "sys_script_include.d65f78c40a0a0b6900196656f35913d3.script"
        }
      }
    }

    Débogueur de script : POST js/debugpoints/process

    Ajoutez, mettez à jour ou supprimez des points d’arrêt ou des points de connexion dans un script côté serveur, tel qu’une règle métier ou un script include. Traitez plusieurs points d’arrêt ou points de connexion à la fois.

    Format d'URL

    URL par défaut : /api/now/js/debugpoints/process

    Paramètres de demande pris en charge

    Tableau 7. Paramètres de chemin d'accès
    Nom Description
    Aucun
    Tableau 8. Paramètres de requête
    Nom Description
    fetchAll (en anglais) Si la valeur est vrai, renvoie une liste de tous les points d’arrêt ou points de connexion ajoutés ou mis à jour par l’utilisateur.

    Type de données : booléennes

    Valeur par défaut : false

    fetchAllFilter (en anglais seulement)

    Renvoie une liste filtrée de tous les points d’arrêt ou points de connexion ajoutés ou mis à jour par l’utilisateur.

    Valeurs valides :
    • debugpointType. Défini sur le point d’arrêt ou le point de connexion.
    • script Id. Défini sur la sys_id du script dans laquelle rechercher des points de débogage.
    • Portée. Défini sur le nom du périmètre dans lequel rechercher des points de débogage.

    Utilisez le signe circonflexe (^) comme séparateur pour plusieurs propriétés. Par exemple, fetchAllFilter=debugpointType=logpoint^scope=MyApp

    Type de données : chaîne

    Tableau 9. Paramètres de corps de demande (XML ou JSON)
    Nom Description
    type de point de débogage

    Requis. Type de point de débogage à ajouter, supprimer ou mettre à jour.

    Valeurs valides :
    • Breakpoint
    • Point de connexion

    Type de données : chaîne

    evaluationString

    Texte d’un point de connexion ou d’un point d’arrêt conditionnel.

    Pour un point de connexion, il s’agit evaluationString du message du journal.

    Pour un point d’arrêt conditionnel, la evaluationString condition est la suivante. Par exemple, si vous parcourez une liste d’ID utilisateur et que vous souhaitez que le débogueur s’interrompe uniquement lorsque l’ID utilisateur est 38493, vous pouvez ajouter un point d’arrêt conditionnel à l’intérieur de la boucle avec userID == 38493 comme condition. Le débogueur ne s’interrompt qu’à ce point d’arrêt lorsque la condition est vraie.

    Si le point d’arrêt n’est pas un point d’arrêt conditionnel, il s’agit evaluationString d’une chaîne vide.

    Type de données : chaîne

    Fieldname Requis. Nom du champ qui contient le contenu du script côté serveur.

    Type de données : chaîne

    numéro de ligne Numéro de ligne dans le script côté serveur spécifiant où ajouter, supprimer ou mettre à jour le point d’arrêt ou le point de connexion.

    Type de données : nombre

    operation Requis. Opération à effectuer pour le point d’arrêt ou le point de connexion.
    Valeurs valides :
    • ajouter
    • supprimer
    • mettre à jour

    Type de données : chaîne

    ID de script Requis. Sys_id pour le script côté serveur.

    Type de données : chaîne

    tableName Requis. Nom de la table qui contient le script côté serveur, tel que sys_script ou sys_script_include.

    Type de données : chaîne

    En-têtes

    Les en-têtes de demande et de réponse suivants s'appliquent à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte. Pour obtenir une liste des en-têtes généraux utilisés dans l’API REST, consultez En-têtes d’API REST pris en charge.

    Tableau 10. En-têtes de demandes
    En-tête Description
    Accepter Format de données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Type de contenu Format de données du corps de la demande. Types pris en charge : application/json ou application/xml.

    Valeur par défaut : application/json

    Tableau 11. En-têtes de réponses
    En-tête Description
    Aucun

    Codes d'état

    Les codes d'état suivants s'appliquent à cette action HTTP. Pour obtenir une liste des codes d’état possibles utilisés dans l’API REST, consultez Codes de réponse HTTP de l’API REST.

    Tableau 12. Codes d'état
    Code d'état Description
    200 Réussi. La demande a été correctement traitée.

    Paramètres de corps de réponse (JSON ou XML)

    Nom Description
    requestedDebugpoints Liste des points d’arrêt et des points de connexion demandés. Présenté sous la forme d’un tableau d’objets.
    "requestedDebugpoints": [
      {
        "scriptId": "String",
        "evaluationString": "String",
        "operation": "String",
        "tableName": "String",
        "fieldName": "String",
        "status": "String",
        "lineNumber": Number,
        "debugpointType": "String"
      }
    ]

    Type de données : tableau

    requestedDebugpoints.ScriptId Sys_id pour le script côté serveur.

    Type de données : chaîne

    requestedDebugpoints.evaluationString Texte ajouté pour un point de connexion ou un point d’arrêt conditionnel. Pour un point de connexion, il s’agit evaluationString du message du journal. Pour un point d’arrêt conditionnel, la evaluationString condition est la suivante.

    Type de données : chaîne

    requestedDebugpoints.operation

    Opération effectuée pour le point d’arrêt ou le point de connexion.

    Valeurs possibles :
    • ajouter
    • supprimer
    • mettre à jour

    Type de données : chaîne

    requestedDebugpoints.tableName Nom de la table qui contient le script côté serveur, tel que sys_script ou sys_script_include.

    Type de données : chaîne

    requestedDebugpoints.fieldName Nom du champ qui contient le contenu du script côté serveur.

    Type de données : chaîne

    requestedDebugpoints.status

    Résultat de l’instruction d’ajout, de suppression ou de mise à jour d’un point d’arrêt ou d’un point de connexion spécifique.

    Valeurs possibles :
    • échec
    • ignoré
    • succès
    Une demande d’ajout, de suppression ou de mise à jour d’un point de débogage est ignorée dans les situations suivantes :
    • Il demande la suppression d’un point d’arrêt ou d’un point de connexion qui n’existe pas.
    • Il demande d’ajouter un point d’arrêt ou un point de connexion identique à un point qui existe déjà.

    Type de données : chaîne

    requestedDebugpoints.lineNumber Numéro de ligne dans le script côté serveur indiquant où le point d’arrêt ou le point de connexion a été ajouté, supprimé ou mis à jour.

    Type de données : nombre

    requestedDebugpoints.debugpointType

    Type de point de débogage ajouté, supprimé ou mis à jour.

    Valeurs possibles :
    • Breakpoint
    • Point de connexion

    Type de données : chaîne

    statut Résultat de l’action globale. Code d’état de l’appel HTTP.

    Type de données : nombre

    Demande cURL

    Cet exemple ajoute un point d’arrêt conditionnel à la ligne 12 du script.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/process" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data “[
    {
    \"tableName\": \"sys_script_include\",
    \"scriptId\": \"d65f78c40a0a0b6900196656f35913d3\",
    \"fieldname\": \"script\",
    \"lineNumber\": 12,
    \"evaluationString\": \"a == false\",
    \"debugpointType\": \"breakpoint\",
    \"operation\": \"add\"
    }
    ]” \
    --user 'username':'password'
    {
      "result": {
        "requestedDebugpoints": [
          {
            "scriptId": "d65f78c40a0a0b6900196656f35913d3",
            "evaluationString": "a == false",
            "operation": "add",
            "tableName": "sys_script_include",
            "fieldName": "script",
            "status": "success",
            "lineNumber": 12,
            "debugpointType": "breakpoint"
          }
        ],
        "status": 200
      }
    }