Automation Center API

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 12 minutes de lecture
  • L’API Automation Center fournit des points de terminaison pour créer et mettre à jour des données relatives aux robots, aux processus et aux tâches d’exécution. En tirant parti de cette API, vous pouvez intégrer et refléter les détails de vos workflows d’automatisation dans le tableau de Centre d'automatisation bord.

    Concepts clés de l’API :
    • Robots : agents logiciels qui exécutent des processus de bot. Les robots RPA peuvent fonctionner en mode assisté ou non assisté.
    • Processus : instances de workflows RPA exécutés sur un robot spécifique. Pour identifier de manière unique un processus, l’ID du processus et l’ID du robot doivent être spécifiés.
    • Exécutions : tâches individuelles effectuées au sein d’un processus, telles que le transfert d’informations d’une ressource à une autre (comme la copie de données d’e-mails dans une feuille de calcul).

    Comment utiliser l’API :

    Vous pouvez utiliser l’API pour envoyer des données à partir d’outils RPA tiers, y compris des robots, des processus et des exécutions.Centre d'automatisation

    Workflow recommandé :
    1. Envoyez les données du robot.
    2. Envoyer les données de processus liées au robot envoyé.
    3. Envoyez des données d’exécution qui référencent le robot et le processus correspondants.
      Remarque :
      Les données d’exécution sans son robot et son processus associés déjà capturés Centre d'automatisation n’apparaîtront pas sur le tableau de bord.
    Informations supplémentaires :
    • Conservation des événements : les événements créés à l’aide de cette API sont automatiquement supprimés de votre instance après 14 jours (paramètre par défaut).
    • Limites d’enregistrement : chaque appel d’API peut gérer un maximum de 2 000 enregistrements. Cette limite ne peut pas être modifiée.
    • Suppression d’événement : cette API ne prend pas en charge la suppression d’événement.

    Cette API nécessite que le module d’extension Centre d'automatisation soit actif et que l’utilisateur ait le rôle sn_as.automation_technical_user ou sn_ac.automation_admin.

    Automation Center : POST /sn_ac/automation/rpa

    Crée des événements de robot, de processus et d’exécution.

    Ces événements permettent d’automatiser les processus. Elles apparaissent dans les tableaux de bord Vue d’ensemble et Exécution de Centre d’automatisation pour mesurer et surveiller la sortie de plusieurs fournisseurs RPA.

    Format d'URL

    URL versionnée : /api/sn_ac/{api_version}/automation/rpa

    URL par défaut : /api/sn_ac/v1/automation/rpa

    Remarque :
    Les versions disponibles sont spécifiées dans l’explorateur d’API REST. Pour les API REST basées sur un script, des informations de version supplémentaires sont disponibles sur le formulaire Service REST scripté.

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d'accès
    Nom Description
    api_version Facultatif. Version du point de terminaison auquel accéder. Par exemple, v1 ou v2. Spécifiez uniquement cette valeur pour utiliser une version de point de terminaison différente de la dernière.

    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
    nom du département Types d’événements de processus et de robot uniquement. Nom du département auquel l’événement appartient.
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • processus : champ département dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ département dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    domainId Sys_id du domaine auquel l’événement appartient.
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • exécution : champ sys_domain dans la table Exécution de l’automatisation [sn_ac_automation_execution].
    • processus : champ sys_domain dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ sys_domain dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    endtime Type d’événement d’exécution uniquement. Heure de fin de l’exécution. Cette valeur est stockée dans le champ end_time de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Format : JJ-MM-AAAA HH :MM :SS

    Type de données : chaîne

    environnement Type d’événement d’exécution uniquement. Environnement de l’exécution, tel qu’une URL. Cette valeur est stockée dans le champ Environnement de la table Exécution de l’automatisation [sn_ac_automation_execution].
    Remarque :
    Cette valeur n’est pas utilisée par l’instance et peut contenir n’importe ServiceNow quelle valeur requise par votre implémentation.

    Type de données : chaîne

    errorMessage Type d’événement d’exécution uniquement. Nom du journal des messages d’erreur. Cette valeur est stockée dans le champ de message de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Type de données : chaîne

    eventName Requis. Nom du type d’événement. Cette valeur détermine le type d’événement à traiter.
    Valeurs valides (sensibles à la casse) :
    • exécution
    • Processus
    • robot

    Type de données : chaîne

    id Requis. Identificateur numérique unique de l’événement associé.
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • exécution : champ automation_execution_id dans la table Exécution de l’automatisation [sn_ac_automation_execution].
    • processus : champ correlation_id dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ correlation_id dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : nombre (entier)

    nom Types d’événements de processus et de robot uniquement. Obligatoire. Nom de l’événement.
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • processus : champ Nom dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ de nom dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    Priorité Type d’événement d’exécution uniquement. Priorité de l’exécution.
    Valeurs valides (sensibles à la casse) :
    • Critique
    • Élevé
    • Moyenne
    • Faible
    Cette valeur est stockée dans le champ de priorité de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Type de données : chaîne

    Par défaut : Aucun : non affiché dans le tableau de bord.

    processId Type d’événement d’exécution uniquement. Obligatoire. Identificateur unique du processus sur lequel exécuter l’exécution. Cette valeur se trouve dans le champ correlation_id de l’enregistrement de processus correspondant dans la table Processus de bot de base [cmdb_ci_base_rpa_process].

    Cette valeur est stockée dans le champ d’automatisation de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Type de données : chaîne

    ID robot Type d’événement d’exécution uniquement. Obligatoire. Identificateur unique du robot sur lequel exécuter l’exécution. Cette valeur se trouve dans le champ correlation_id de l’enregistrement de robot correspondant dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Cette valeur est stockée dans le champ robot de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Type de données : chaîne

    source Requis. Source à laquelle l’événement appartient, telle que « servicenow_rpa ». Cette valeur se trouve dans le champ internal_name de la table Source d’automatisation [sn_ac_automation_source].
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • exécution : champ source dans la table Exécution de l’automatisation [sn_ac_automation_execution].
    • process : champ source dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ source dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    starttime Type d’événement d’exécution uniquement. Heure de début de l’exécution. Cette valeur est stockée dans le champ start_time de la table Exécution de l’automatisation [sn_ac_automation_execution].

    Type de données : chaîne

    Format : JJ-MM-AAAA HH :MM :SS

    État Types d’événements de robot et d’exécution uniquement. État de l’événement associé.
    Valeurs valides pour le robot (sensibles à la casse) :
    • Annulé
    • Terminé
    • Erreur
    • Mis en file d'attente
    • En cours d'exécution
    Par défaut : Mis en file d’attente
    Valeurs possibles pour l’exécution (sensibles à la casse) :
    • Disponible
    • Occupé
    • Déconnecté
    • Nouvelle
    • Réactif
    Par défaut : nouveau
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • exécution : champ d’état dans la table Exécution de l’automatisation [sn_ac_automation_execution].
    • robot : champ robot_state dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    statut Type d’événement de processus uniquement. Obligatoire. État du processus.
    Valeurs possibles (sensibles à la casse) :
    • Construit
    • En cours de maintenance
    • En cours d'utilisation
    • Mis hors service
    Cette valeur est stockée dans le champ life_cycle_stage_status de la table Processus de bot de base [cmdb_ci_base_rpa_process].

    Type de données : chaîne

    triggeredBy Type d’événement d’exécution uniquement. Source du déclencheur de l’exécution. Cette valeur est stockée dans le champ trigger_by de la table Exécution de l’automatisation [sn_ac_automation_execution].
    Remarque :
    Cette valeur n’est pas utilisée par l’instance et peut contenir n’importe ServiceNow quelle valeur requise par votre implémentation.

    Type de données : chaîne

    type Types d’événements de processus et de robot uniquement. Requis pour le processus, facultatif pour le robot. Type de traitement à effectuer.
    Valeurs valides (sensibles à la casse) :
    • Assisté
    • Non assisté
    Cette valeur est stockée dans les tables suivantes en fonction du type d’événement :
    • processus : champ process_type dans la table Processus de bot de base [cmdb_ci_base_rpa_process].
    • robot : champ robot_type dans la table Robot de base [cmdb_ci_base_rpa_robot].

    Type de données : chaîne

    Valeur par défaut : non assisté pour le robot

    version Type d’événement de robot uniquement. Version du robot.

    Cette valeur est stockée dans le champ Version de la table Robot de base [cmdb_ci_base_rpa_robot].

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

    Content-Type 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 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 la 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.
    400 Échec. La demande a été rejetée en raison de champs obligatoires manquants ou la demande contient des valeurs non valides. Le message d’erreur associé décrit la raison de l’échec.

    Paramètres du corps de réponse

    Nom Description
    résultat Vide si la demande aboutit. En cas d’échec, des informations supplémentaires sont fournies.

    Type de données : objet

    "result": {
      "fields": {
        "<record_number>": [Array]
      }
      "reason": "String"
    }
    Par exemple, si un champ obligatoire est manquant dans les enregistrements 1, 2 et 3, un message similaire au suivant est renvoyé :
    {
      "result": {
        "fields": {
          "1": [
            "id"
          ],
          "2": [
            "status"
          ],
          "3": [
            "name"
          ]
        },
        "reason": "We are not able to process the data as following records have insufficient data"
      }
    }

    Demande cURL

    L’exemple de code suivant montre comment publier trois enregistrements de type événement de robot.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      records: [{
        id: 8001,
        name: "Quotes system Automation Robot",
        state: "Available",
        status: "In Use",
        version: 5.6,
        departmentName: "Customer Support",
        type: "Unattended",
        source: "servicenow_rpa",
        eventName: "robot"
      },
      {
        id: 8002,
        name: "Invoice Matching Robot",
        state: "Responsive",
        status: "In Maintenance",
        version: 3,
        departmentName: "HR",
        type: "Unattended",
        source: "servicenow_rpa",
        eventName: "robot"
      },
      {
        id: 8003,
        name: "Data Reconciliation Robot",
        state: "Busy",
        status: "Retired",
        version: 2,
        departmentName: "Finance",
        type: "Unattended",
        source: "servicenow_rpa",
        eventName: "robot"
      }]
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment publier trois enregistrements de type événement de processus.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      records: [{
        id: 9001,
        name: "RPA Execution Process",
        status: "In Maintenance",
        type: "Attended",
        departmentName: "Customer Support",
        source: "servicenow_rpa",
        eventName: "process"
      },
      {
        id: 9002,
        name: "Customer Onboarding",
        status: "In Use",
        type: "Attended",
        departmentName: "Finance",
        source: "servicenow_rpa",
        eventName: "process"
      },
      {
        id: 9003,
        name: "Data Reconciliation",
        status: "Retired",
        type: "Unattended",
        departmentName: "HR",
        source: "servicenow_rpa",
        eventName: "process"
      }]
    }" \
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment publier trois enregistrements de type événement d’exécution.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
      records: [{
        id: 7001,
        name: "Customer Onboarding",
        starttime: "2022-03-18 00:49:13",
        endtime: "2022-03-20 00:58:03",
        state: "Running",
        priority: "Critical",
        environment: "system",
        triggeredBy: "Schedule",
        processId: 9001,
        robotId: 8001,
        source: "servicenow_rpa",
        eventName: "execution"
      },
      {
        id: 7002,
        name: "Data Reconciliation",
        starttime: "2022-04-30 00:19:11",
        endtime: "2022-05-02 00:41:35",
        state: "Error",
        priority: "Low",
        environment: "system",
        triggeredBy: "API",
        processId: 9002,
        robotId: 8002,
        source: "servicenow_rpa",
        eventName: "execution"
      },
      {
        id: 7003,
        name: "Customer Onboarding",
        starttime: "2022-01-22 02:38:53",
        endtime: "2022-01-23 02:50:44",
        state: "Queued",
        priority: "Moderate",
        environment: "system",
        triggeredBy: "Schedule",
        processId: 9003,
        robotId: 8003,
        source: "servicenow_rpa",
        eventName: "execution"
      }]
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment créer ou mettre à jour un processus. Vous créez un processus en transmettant tous les paramètres obligatoires pour qu’un processus s’exécute avec l’ensemble eventName « processus ». Les paramètres obligatoires nécessaires pour créer un processus sont les suivants : id, type, namestatus, , et source.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
    records: [{
    id: 9001,
    name: "RPA Execution Process",
    status: "In Maintenance",
    type: "Attended",
    departmentName: "Customer Support",
    source: "servicenow_rpa",
    eventName: "process"
    }]
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment publier un processus. Vous pouvez publier un processus en transmettant le status paramètre défini sur « Publié ».

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
    records: [{
    id: 9002,
    name: "RPA Execution Process",
    status: "Published",
    type: "Attended",
    departmentName: "Customer Support",
    source: "servicenow_rpa",
    eventName: "process"
    }]
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment créer ou mettre à jour un robot. Vous créez un robot en transmettant tous les paramètres obligatoires pour un robot ainsi que l’ensemble eventName sur « robot ». Les paramètres obligatoires nécessaires pour créer un robot sont : id, status, nameet source.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
    records: [{
    id: 8001,
    name: "Quotes system Automation Robot",
    state: "Available",
    status: "In Use",
    version: 5.6,
    departmentName: "Customer Support",
    type: "Unattended",
    source: "servicenow_rpa",
    eventName: "robot"
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None

    Demande cURL

    L’exemple de code suivant montre comment créer ou mettre à jour une exécution. Vous créez une exécution en transmettant tous les paramètres obligatoires d’une exécution ainsi que l’ensemble eventName sur « exécution ». Les paramètres obligatoires nécessaires pour créer une exécution sont les suivants : id, processId, robotIdet source.

    curl "https://instance.servicenow.com/api/sn_ac/automation/rpa" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data "{
    records: [{
    id: 7001,
    name: "Customer Onboarding",
    starttime: "2022-03-18 00:49:13",
    endtime: "2022-03-20 00:58:03",
    state: "Running",
    priority: "Critical",
    environment: "http://acqa.servicenow.com",
    triggeredBy: "Schedule",
    processId: 9001,
    robotId: 8001,
    source: "servicenow_rpa",
    eventName: "execution",
    errorMessage:"Error due to Inactivity"
    }]
    } "\
    --user "username":"password"

    Ce point de terminaison renvoie uniquement un code d’état HTTP en cas de réussite et un code d’état HTTP et un message d’erreur en cas d’échec.

    None