- Erste Schritte
- Für Administrators
- RPA-Workflow-Projekte
- Erstellen eines RPA-Workflows aus einer Idee
- Erstellen eines Projekts
- So starten Sie einen RPA-Workflow
- Verwalten von Projektdateien und -ordnern
- Verbinden von RPA-Workflows mit Ihren Konten
- Konfigurieren von Aktivitäten
- Verwalten der Aktivitäten in einem Projekt
- Übergeben von Werten zwischen Aktivitäten
- Iterieren durch Elemente
- Verwalten der Daten in einem Projekt
- Konfigurieren eines Projekts zur Verwendung Ihrer Daten
- Verwenden von Datei- und Ordnerressourcen
- App-Projekte
- Apps in Studio Web
- Entwerfen von App-Projekten
- Debuggen von App-Projekten
- Veröffentlichen, Bereitstellen und Aktualisieren von App-Projekten
- Importieren und Exportieren von App-Projekten
- Arbeiten mit Entitäten in einem App-Projekt
- Erstellen zugänglicher Apps
- Hinzufügen zugänglicher Deskriptoren
- Die Beschriftung „Zugänglich“.
- Verwenden des Registerkartensteuerelements für Barrierefreiheit
- Entwerfen barrierefreier Listen und Überschriften
- reaktionsfähiges App-Design
- Farbkontrastverhältnis
- Legen Sie Stile und Zuordnungen auf Aria-Ebene für das Header-Steuerelement vor
- Bekannte Einschränkungen
- Legen Sie einen externen Kontext mithilfe von Abfrageparametern fest
- Legen Sie einen externen Kontext mithilfe externer Ereignisse fest
- Verwenden Sie Arrays, um Dropdown-Menüs, Dropdown-Menüs mit Mehrfachauswahl und Optionsfeld-Steuerelemente auszufüllen
- Verwenden Sie tabellarische Steuerelemente mit Data Service-Entitäten in App-Projekten
- Integrieren Sie Konversations-Agents
- App-Aktivitäten
- Agent-Prozesse
- Agents
- Solutions (Lösungen)
- API-Workflows
- Tests

Studio Web-Benutzerhandbuch
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.


-
Ö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
-
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
- IncidentObject– speichert die angereicherten Vorfallsdetails.
-
Öffnen Sie das Fenster Konfiguration debuggen . Geben Sie im obligatorischen Feld IncidentNumber Inc0026701 ein.
-
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.
- Wählen Sie Ihre ServiceNow-Verbindung aus.
- Verbinden Sie die Vorfalls-ID mit der folgenden Variablen: workflow > input > IncidentNumber.
- Benennen Sie die Aktivitätskontextausgabe in
$context.outputs.incident_1um.
-
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 -
Wenn in der Verzweigung Dann ein Vorfall gefunden wird, fahren Sie mit der Validierung der
caller_id_linkfort und rufen Sie weitere Details ab. Fügen Sie eine Try Catch- Aktivität hinzu.-
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_Linkum. -
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 caller_id_link valid“ um und den Namen der Kontextausgabe in$context.outputs.If_Caller_ID_Valid. -
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 ```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`.
-
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_IDum. -
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. Weisen Sie das Vorfallobjekt einer Variablen zu: 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_1Benennen Sie die Aktivität in „Assign Incident Object“ um. Der Name der Kontextausgabe bleibt als
$context.outputs.Assign_1.
-
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_Catchum. -
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, kurze_Beschreibung: $incidentDetails.Short_Description, description: $incidentDetails.description, state: $incidentDetails.state, Dringlichkeit: $incidentDetails. ändernung, Impact: $incidentDetails.impact, Geöffnet_at: $incidentDetails.opened_at, closed_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.
-
-
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.
-
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- 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_1um. - Ö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"- 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
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.-
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. Diese Aktivität ruft Kontodetails von Salesforce mithilfe der account_id aus dem angereicherten IncidentObject ab. -
Fügen Sie im Then -Zweig der Aktivität „If Contact gefunden“ eine For Each- Aktivität hinzu und konfigurieren Sie deren 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. -
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.
-
Verlassen Sie die For Each- Schleife und fügen Sie eine leere Antwortaktivität hinzu.
-
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.
- Antwort–
- 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