studio-web
latest
false
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.
UiPath logo, featuring letters U and I in white

Guide de l'utilisateur Studio Web

Dernière mise à jour 9 mars 2026

Récupérer les détails d'un ticket

Ce didacticiel montre comment utiliser les workflows d'API et récupérer les détails des tickets qui sont ensuite intégrés à Agents et Maestro.

Le workflow d'API vise à récupérer les détails de l'incident à partir de ServiceNow, puis à valider et à récupérer des informations supplémentaires sur le créateur du ticket et leur entreprise associée à partir de Salesforce, si disponibles.

docs image

docs image

  1. Ouvrez le gestionnaire de données et ajoutez l' incidentNumber en tant que propriété Input , avec les propriétés suivantes :

    • Type : chaîne de caractères
    • Description : référence du numéro de ticket entrant
    • Obligatoire : True
  2. Dans le Gestionnaire de données, ajoutez incidentObject et isValidCallerIdLink en tant que variables, avec les propriétés suivantes :

    • incidentObject : stocke les détails de l’incident enrichi.
      • Type : d'objet
      • Valeur par défaut : laisser vide
    • isValidCallerIdLink— vérifie si l' appelant_id_link récupéré à partir de ServiceNow est une URL valide.
      • Type : Booléen
      • Valeur par défaut : faux
  3. Ouvrez la fenêtre de configuration Débogage . Dans le champ obligatoire IncidentNumber , entrez UNC0026701.

  4. Ajoutez une activité Connector et configurez-la pour utiliser l'activité ServiceNow suivante : Rechercher des incidents par numéro d'incident. Cela récupère les détails de l'incident en fonction du numéro d'incident fourni en entrée.

    1. Sélectionnez votre connexion ServiceNow.
    2. Connectez l' ID d'incident à la variable suivante : workflow > input > incidentNumber.
    3. Renommez la sortie du contexte d'activité en $context.outputs.incident_1.
  5. Pour vérifier si un incident a été trouvé dans l’étape précédente, ajoutez une activité If avec la condition suivante :

    $context.outputs.incident_1.content && $context.outputs.incident_1.content.length > 0
    $context.outputs.incident_1.content && $context.outputs.incident_1.content.length > 0
    
  6. Dans la branche Puis , si un incident est trouvé, procédez à la validation de caller_id_link et récupérez plus de détails. Ajoutez une activité Essayer de détecter .

    1. Dans le bloc Try , ajoutez une activité Script avec le code suivant :

      const callerIdLink = $context.outputs.incident_1.content[0].caller_id_link;
      const urlRegex = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i;
      $context.variables.isValidCallerIdLink = (callerIdLink && urlRegex.test(callerIdLink));
      return $context.variables.isValidCallerIdLink;
      const callerIdLink = $context.outputs.incident_1.content[0].caller_id_link;
      const urlRegex = /^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/i;
      $context.variables.isValidCallerIdLink = (callerIdLink && urlRegex.test(callerIdLink));
      return $context.variables.isValidCallerIdLink;
      

      Renommez l'activité « Valider le lien Caller_id » et le nom de la sortie contextuelle en $context.outputs.Validate_Caller_ID_Link.

    2. Dans le même bloc Try , ajoutez une activité If avec la Condition suivante : $context.variables.isValidCallerIdLink. Renommez l'activité « Si l'appelant_id_lien est valide » et le nom de la sortie contextuelle par $context.outputs.If_Caller_ID_Valid.

    3. Dans la branche Puis (lien valide) de l'activité Si précédente, ajoutez une activité Connecteur , Demande HTTP Service Now, avec la configuration suivante :

      • Connexion ServiceNow—Compte Développeur ServiceNow
      • Méthode—GET
      • URL de la demande
        $context.outputs.incident_1.content[0].caller_id_link
        ```Rename the activity to "Get Ticket Creator". The context output name remains as `$context.outputs.ServiceNow_HTTP_Request_1`.
        $context.outputs.incident_1.content[0].caller_id_link
        ```Rename the activity to "Get Ticket Creator". The context output name remains as `$context.outputs.ServiceNow_HTTP_Request_1`.
        
    4. Dans la branche Sinon (lien invalide) de l'activité Si précédente, ajoutez une activité Script avec le code suivant :

      console.error("Invalid caller_id_link, skipping 'Get Ticket Creator' activity.");
      return null;
      console.error("Invalid caller_id_link, skipping 'Get Ticket Creator' activity.");
      return null;
      

      Renommez l'activité « Consigner un lien_ID_identifiant non valide » et le nom de la sortie contextuelle est $context.outputs.Log_Invalid_Caller_ID.

    5. En dehors de l'activité If , mais toujours à l'intérieur du bloc Try , ajoutez une activité Script avec le Code suivant. Cette activité combine les détails de l’incident initial avec les détails du créateur récupérés en un seul objet d’incident.

      const incident = $context.outputs.incident_1.content[0];
      let creatorDetails = null;
      const creatorOutput = $context.outputs.ServiceNow_HTTP_Request_1.content;
      if (creatorOutput && Array.isArray(creatorOutput) && creatorOutput.length > 0) {
        creatorDetails = creatorOutput[0];
      } else if (creatorOutput && typeof creatorOutput === 'object' && creatorOutput !== null) {
        creatorDetails = creatorOutput;
      }
      
      let companyDetails = null;
      const companyOutput = $context.outputs.ServiceNow_HTTP_Request_1.content;
      if (companyOutput && typeof companyOutput === 'object' && companyOutput !== null) {
        companyDetails = companyOutput;
      } else if (companyOutput && Array.isArray(companyOutput) && companyOutput.length > 0) {
        companyDetails = companyOutput[0];
      }
      
      return {
        ...incident,
        creator: creatorDetails,
        company: companyDetails
      };
      const incident = $context.outputs.incident_1.content[0];
      let creatorDetails = null;
      const creatorOutput = $context.outputs.ServiceNow_HTTP_Request_1.content;
      if (creatorOutput && Array.isArray(creatorOutput) && creatorOutput.length > 0) {
        creatorDetails = creatorOutput[0];
      } else if (creatorOutput && typeof creatorOutput === 'object' && creatorOutput !== null) {
        creatorDetails = creatorOutput;
      }
      
      let companyDetails = null;
      const companyOutput = $context.outputs.ServiceNow_HTTP_Request_1.content;
      if (companyOutput && typeof companyOutput === 'object' && companyOutput !== null) {
        companyDetails = companyOutput;
      } else if (companyOutput && Array.isArray(companyOutput) && companyOutput.length > 0) {
        companyDetails = companyOutput[0];
      }
      
      return {
        ...incident,
        creator: creatorDetails,
        company: companyDetails
      };
      

    Renommez l’activité « JS - Incident Object ». Le nom de la sortie du contexte restera sous la forme $context.outputs.Javascript_1. 6. Affectez l'objet d'incident à une variable : ajoutez l'activité Affecter avec la configuration suivante :

    • To variable : sélectionnez la variable incidentObject définie au début.

    • Set value : référencer le nom de contexte de l’activité de script précédente :

      $context.outputs.Javascript_1
      $context.outputs.Javascript_1
      

      Renommez l’activité en « Assign incidentObject ». Le nom de la sortie du contexte restera sous la forme $context.outputs.Assign_1.

    1. Dans le bloc d'interception de l'activité Try Catch actuelle, ajoutez une activité Script avec le code suivant :

      let errorMessage = `Error in Try_Catch_1: ${$error.title || 'Unknown Error'}`;
      if ($error.detail) {
        errorMessage += `\nDetails: ${$error.detail}`;
      }
      if ($error.data && $error.data.status) {
        const statusCode = $error.data.status;
        if (statusCode === 0 || statusCode === -1) {
          errorMessage += "\nNetwork error: Unable to connect to ServiceNow.";
        } else if (statusCode >= 500 && statusCode < 600) {
          errorMessage += "\nServiceNow server error.";
        }
      }
      console.error(errorMessage);
      console.error("Stack Trace:", $error);
      return null;
      let errorMessage = `Error in Try_Catch_1: ${$error.title || 'Unknown Error'}`;
      if ($error.detail) {
        errorMessage += `\nDetails: ${$error.detail}`;
      }
      if ($error.data && $error.data.status) {
        const statusCode = $error.data.status;
        if (statusCode === 0 || statusCode === -1) {
          errorMessage += "\nNetwork error: Unable to connect to ServiceNow.";
        } else if (statusCode >= 500 && statusCode < 600) {
          errorMessage += "\nServiceNow server error.";
        }
      }
      console.error(errorMessage);
      console.error("Stack Trace:", $error);
      return null;
      

      Renommez l'activité « Détails de l'erreur du journal » et le nom de la sortie contextuelle par $context.outputs.Log_Error_Catch.

    2. Si une erreur se produit, ajoutez une activité Assign pour utiliser l'objet d'incident simplifié avec les détails initiaux de ServiceNow :

      • To variable : sélectionnez la variable incidentObject définie au début.
      • Définir la valeur— ``` ($incidentDetails) => ({ id : $incidentDetails.sys_id, number : $incidentDetails.number, short_description : $incidentDetails. short_description, description : $incidentDetails.description, état : $incidentDetails.state, urgence : $incidentDetails.urgence, impact : $incidentDetails.impact, ouvert_à : $incidentDetails.opened_at, fermé_at: $incidentDetails.closed_at }()$$context.outputs.curated_search_incident_1.content[0])
       The activity name and the context output name remain as they are.
      
       The activity name and the context output name remain as they are.
      
      
  7. Quittez l'activité Try Catch et ajoutez une Réponse vide dans la branche Else . Renommez l'activité Réponse en « Aucun résultat trouvé ».

  8. Pour vérifier si un objet d'incident contient des informations suffisantes sur l'e-mail du créateur et l'ID du compte de l'entreprise, ajoutez une activité If avec la condition suivante :

    $context.variables.incidentObject && $context.variables.incidentObject.creator && $context.variables.incidentObject.creator.email && $context.variables.incidentObject.company && $context.variables.incidentObject.company.account_id
    $context.variables.incidentObject && $context.variables.incidentObject.creator && $context.variables.incidentObject.creator.email && $context.variables.incidentObject.company && $context.variables.incidentObject.company.account_id
    
    1. Dans la branche Puis , ajoutez une activité Connecteur et configurez-la pour utiliser l'activité Salesforce : Rechercher à l'aide de SOQL. Renommez l'activité « Obtenir un contact » et le nom de la sortie contextuelle par $context.outputs.soqlQuery_1.
    2. Dans le champ Requête , ouvrez l' éditeur d'expressions et écrivez :
    "SELECT Id, Name, Email, AccountId FROM Contact WHERE Email = '" + $context.variables.incidentObject.creator.email + "' LIMIT 1"
    "SELECT Id, Name, Email, AccountId FROM Contact WHERE Email = '" + $context.variables.incidentObject.creator.email + "' LIMIT 1"
    
    1. Dans la branche Then , ajoutez une activité If avec la condition suivante : $context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0
     Rename the activity to "If Contact Found" and the context output name to `$context.outputs.If_Contact_Found`. This conditional activity checks if a contact was found in Salesforce.
     Rename the activity to "If Contact Found" and the context output name to `$context.outputs.If_Contact_Found`. This conditional activity checks if a contact was found in Salesforce.
    
    1. Dans la branche Puis de l'activité "Si le contact trouvé", ajoutez une activité Connecteur et configurez-la pour utiliser l'activité Obtenir le compte Salesforce :

      • Connexion Salesforce— Compte Salesforce Developer
      • ID de compte
        $context.variables.incidentObject.company.account_id
        $context.variables.incidentObject.company.account_id
        

      Renommez la sortie contextuelle en $context.outputs.curated_account_1. Cette activité récupère les détails du compte Salesforce à l’aide de l’ identifiant_compte de l’ objet incident enrichi .

    2. Dans la branche Puis de l'activité « Si le contact est trouvé », ajoutez une activité Pour chaque et configurez-la $context.outputs.soqlQuery_1.content Cette boucle parcourt les résultats de la recherche de contact Salesforce (alors que la requête SOQL se limite à 1). À l’intérieur de la boucle, il tente de récupérer les détails de l'incident liés au contact trouvé.

    3. Dans le corps de la boucle For Each , ajoutez une activité Connector , Service Now HTTP Request, avec la configuration suivante :

      • Connexion ServiceNow—Compte Développeur Salesforce
      • Méthode—GET
      • URL de la demande
        "/services/data/v64.0/sobjects/Case/" + $currentItem.Id
        "/services/data/v64.0/sobjects/Case/" + $currentItem.Id
        

      Renommez l’activité « Détails du cas ». Le nom de la sortie du contexte restera tel quel.

    4. Quittez la boucle For Each et ajoutez une activité Response vide.

    5. Dans la branche Sinon de l’activité « Si le contact a été trouvé », ajoutez une activité Réponse avec la Réponse suivante :

      • Réponse
        No Salesforce Contact found for the incident creator email."
        No Salesforce Contact found for the incident creator email."
        

      Renommez l’activité « Renvoyer l’erreur Aucun contact trouvé ».

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour