studio-web
latest
false
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Studio Web-Benutzerhandbuch

Letzte Aktualisierung 20. Nov. 2025

Abrufen von Ticketdetails

Dieses Tutorial zeigt, wie API-Workflows verwendet und Ticketdetails abgerufen werden, die später in Agents und Maestro integriert werden.

Der API-Workflow zielt darauf ab, Vorfalldetails aus ServiceNow abzurufen, dann zu validieren und zusätzliche Informationen über den Ticketersteller und das zugehörige Unternehmen aus Salesforce abzurufen, falls verfügbar.
docs image
docs image
  1. Erstellen Sie einen API-Workflow.
  2. Öffnen Sie den Data Manager und fügen Sie die IncidentNumber als Eingabeeigenschaft mit den folgenden Eigenschaften hinzu:
    • Typ: Zeichenfolge
    • Beschreibung:  Referenz für die Nummer des eingehenden Tickets
    • Erforderlich: True
  3. Fügen Sie in Data Manager IncidentObject und isValidCallerIdLink als Variablen mit den folgenden Eigenschaften hinzu:
    • IncidentObject– speichert die angereicherten Vorfallsdetails.
      • Typ: Objekt
      • Standardwert:  leer lassen
    • isValidCallerIdLink– Überprüft, ob der von ServiceNow abgerufene Caller_id_link eine gültige URL ist.
      • Typ: Boolescher Wert
      • Standardwert:  false
  4. Öffnen Sie das Fenster Konfiguration debuggen . Geben Sie im obligatorischen Feld IncidentNumber Inc0026701 ein.
  5. Fügen Sie eine Connector -Aktivität hinzu und konfigurieren Sie sie für die Verwendung der folgenden ServiceNow- Aktivität: Search Incidents by Incident Number. Damit werden die Vorfallsdetails basierend auf der als Eingabe angegebenen Vorfallsnummer abgerufen.
    1. Wählen Sie Ihre ServiceNow-Verbindung aus.
    2. Verbinden Sie die Vorfalls-ID mit der folgenden Variablen: workflow > input > IncidentNumber.
    3. Benennen Sie die Aktivitätskontextausgabe in $context.outputs.incident_1um.
  6. Um zu überprüfen, ob im vorherigen Schritt ein Vorfall gefunden wurde, fügen Sie eine If- Aktivität mit der folgenden Bedingung hinzu:
    $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. Wenn in der Verzweigung Dann ein Vorfall gefunden wird, fahren Sie mit der Validierung der caller_id_link fort und rufen Sie weitere Details ab. Fügen Sie eine Try Catch- Aktivität hinzu.
    1. Fügen Sie innerhalb des Try -Blocks eine Script- Aktivität mit dem folgenden Code hinzu:
      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;
      Benennen Sie die Aktivität in "Validate Anrufer_ID Link" und der Kontextausgabename in $context.outputs.Validate_Caller_ID_Link um.
    2. Fügen Sie im selben Try- Block eine If -Aktivität mit der folgenden Bedingung hinzu: $context.variables.isValidCallerIdLink. Benennen Sie die Aktivität in „If rufen_ID_link gültig“ und der Name der Kontextausgabe in $context.outputs.If_Caller_ID_Valid um.
    3. Fügen Sie im Then (Link gültig)-Zweig der vorherigen If -Aktivität eine Connector -Aktivität, Service Now HTTP Request, mit der folgenden Konfiguration hinzu:
      • ServiceNow-Verbindung– ServiceNow-Entwicklerkonto
      • Methode– GET
      • Anforderungs-URL

        $context.outputs.incident_1.content[0].caller_id_link$context.outputs.incident_1.content[0].caller_id_link
      Benennen Sie die Aktivität in „Get Ticket Creator“ um. Der Name der Kontextausgabe bleibt als $context.outputs.ServiceNow_HTTP_Request_1.
    4. Fügen Sie in der Verzweigung Sonst (Link ungültig) der vorherigen Wenn -Aktivität eine Skriptaktivität mit dem folgenden Code hinzu:
      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;
      Benennen Sie die Aktivität in „Ungültige Anrufer_ID_Link protokollieren“ und den Namen der Kontextausgabe in $context.outputs.Log_Invalid_Caller_ID um.
    5. Fügen Sie außerhalb der If -Aktivität, aber immer noch innerhalb des Try -Blocks, die Script- Aktivität mit dem folgenden Code hinzu. Diese Aktivität kombiniert die anfänglichen Vorfallsdetails mit den abgerufenen Erstellerdetails in einem einzigen Vorfallobjekt.
      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
      };
      
      Benennen Sie die Aktivität in „JS – Incident Object“ um. Der Name der Kontextausgabe bleibt als $context.outputs.Javascript_1.
    6. Zuweisen des Vorfallsobjekts zu einer Variablen: Fügen Sie die Aktivität Zuweisen mit der folgenden Konfiguration hinzu:
      • An-Variable– Wählen Sie die am Anfang definierte IncidentObject- Variable aus.
      • Wert festlegen– Verweisen Sie auf den Kontextnamen der vorherigen Skriptaktivität:

        $context.outputs.Javascript_1$context.outputs.Javascript_1
      Benennen Sie die Aktivität in „Assign Incident Object“ um. Der Name der Kontextausgabe bleibt als $context.outputs.Assign_1.
    7. Fügen Sie im Catch- Block der aktuellen Try Catch- Aktivität eine Script- Aktivität mit dem folgenden Code hinzu:
      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;
      
      Benennen Sie die Aktivität in „Fehlerdetails protokollieren“ und den Namen der Kontextausgabe in $context.outputs.Log_Error_Catch um.
    8. Wenn ein Fehler auftritt, fügen Sie eine Assign- Aktivität hinzu, um das vereinfachte Vorfallobjekt mit den ersten Details aus ServiceNow zu verwenden:
      • An-Variable– Wählen Sie die am Anfang definierte IncidentObject- Variable aus.
      • Wert festlegen

        (($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]) 
      Der Aktivitätsname und der Name der Kontextausgabe bleiben so, wie sie sind.
  8. Beenden Sie die Try Catch- Aktivität und fügen Sie eine leere Antwort in der Else -Verzweigung hinzu. Benennen Sie die Aktivität Response in „Keine Ergebnisse gefunden“ um.
  9. Um zu überprüfen, ob ein Vorfallobjekt ausreichende Informationen über die E-Mail-Adresse des Erstellers und die Unternehmenskonto-ID enthält, fügen Sie eine If- Aktivität mit der folgenden Bedingung hinzu:
    $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. Fügen Sie in der Verzweigung Dann eine Connector -Aktivität hinzu und konfigurieren Sie sie für die Verwendung der Salesforce -Aktivität: Search using SOQL. Benennen Sie die Aktivität in „Get Contact“ und den Namen der Kontextausgabe in $context.outputs.soqlQuery_1 um.
    2. Öffnen Sie im Feld Abfrage den Ausdrucks-Editor und schreiben Sie:
      "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. Fügen Sie in der Then -Verzweigung eine If -Aktivität mit der folgenden Bedingung hinzu:
      $context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0$context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0
      Benennen Sie die Aktivität in „If Contact gefunden“ und den Namen der Kontextausgabe in $context.outputs.If_Contact_Found um. Diese bedingte Aktivität überprüft, ob ein Kontakt in Salesforce gefunden wurde.
    4. Fügen Sie im Dann- Zweig der Aktivität „If haben Kontakt gefunden“ eine Connector -Aktivität hinzu und konfigurieren Sie sie für die Verwendung der Salesforce-Aktivität Get Account :
      • Salesforce-Verbindung– Salesforce Developer-Konto
      • Konto-ID

        $context.variables.incidentObject.company.account_id$context.variables.incidentObject.company.account_id
      Benennen Sie die Kontextausgabe in $context.outputs.curated_account_1 um. Diese Aktivität ruft Kontodetails von Salesforce mithilfe der account_id aus dem angereicherten IncidentObject ab.
    5. Fügen Sie im Then- Zweig der Aktivität „If Contact gefunden“ eine For Each -Aktivität hinzu und konfigurieren Sie diese Suche in: $context.outputs.soqlQuery_1.content. Diese Schleife durchläuft die Ergebnisse der Salesforce-Kontaktsuche (die SOQL-Abfrage ist jedoch auf 1 beschränkt). Innerhalb der Schleife wird versucht, Falldetails im Zusammenhang mit dem gefundenen Kontakt abzurufen.
    6. Fügen Sie im Textkörper der For Each -Schleife die Connector- Aktivität Service Now HTTP Request mit der folgenden Konfiguration hinzu:
      • ServiceNow-Verbindung– Salesforce Developer-Konto
      • Methode– GET
      • Anforderungs-URL

        "/services/data/v64.0/sobjects/Case/" + $currentItem.Id"/services/data/v64.0/sobjects/Case/" + $currentItem.Id
      Benennen Sie die Aktivität in „Case Details“ um. Der Name der Kontextausgabe bleibt unverändert.
    7. Verlassen Sie die For Each -Schleife und fügen Sie eine leere Antwortaktivität hinzu.
    8. Fügen Sie im Sonst -Zweig der Aktivität „Wenn Kontakt gefunden“ eine Antwort- Aktivität mit der folgenden Antwort hinzu:
      • Antwort
        "No Salesforce Contact found for the incident creator email.""No Salesforce Contact found for the incident creator email."
      Benennen Sie die Aktivität in „Keinen Kontakt gefunden-Fehler zurückgeben“ um.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo
Vertrauen und Sicherheit
© 2005–2025 UiPath. Alle Rechte vorbehalten