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 20 nov. 2025

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. Créez un workflow d’API.
  2. 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
  3. 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
  4. Ouvrez la fenêtre de configuration Débogage . Dans le champ obligatoire IncidentNumber , entrez UNC0026701.
  5. 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.
  6. 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
  7. Dans la branche Puis , si un incident est trouvé, procédez à la validation du 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$context.outputs.incident_1.content[0].caller_id_link
      Renommez l’activité « Obtenir un ticket Créateur ». Le nom de la sortie du contexte restera sous la forme $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.
    7. 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.
    8. 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, state: $incidentDetails.state, urgency: $incidentDetails.urgency, impact: $incidentDetails.impact, opened_at: $incidentDetails.opened_at, closed_at: $incidentDetails.closed_at }))($context.outputs.curated_search_incident_1.content[0])(($incidentDetails) => ({ id: $incidentDetails.sys_id, number: $incidentDetails.number, short_description: $incidentDetails.short_description, description: $incidentDetails.description, state: $incidentDetails.state, urgency: $incidentDetails.urgency, impact: $incidentDetails.impact, opened_at: $incidentDetails.opened_at, closed_at: $incidentDetails.closed_at }))($context.outputs.curated_search_incident_1.content[0]) 
      Le nom de l'activité et le nom de la sortie du contexte restent tels quels.
  8. 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é ».
  9. 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 le 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"
    3. Dans la branche Then , ajoutez une activité If avec la condition suivante :
      $context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0$context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0
      Renommez l'activité « Si le contact est trouvé » et le nom de la sortie contextuelle sur $context.outputs.If_Contact_Found. Cette activité conditionnelle vérifie si un contact a été trouvé dans Salesforce.
    4. 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 .
    5. Dans la branche Puis de l'activité « Si le contact est trouvé », ajoutez une activité Pour chaque et configurez- $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é.
    6. 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.
    7. Quittez la boucle For Each et ajoutez une activité Response vide.
    8. 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 ?

Obtenez l'aide dont vous avez besoin
Formation RPA - Cours d'automatisation
Forum de la communauté UiPath
Uipath Logo
Confiance et sécurité
© 2005-2025 UiPath Tous droits réservés.