本教程演示如何使用 API 工作流并检索工单详细信息,以便稍后与智能体和 Maestro 集成。
$context.outputs.incident_1
$context.outputs.incident_1.content && $context.outputs.incident_1.content.length > 0$context.outputs.incident_1.content && $context.outputs.incident_1.content.length > 0
$context.outputs.incident_1.content && $context.outputs.incident_1.content.length > 0
caller_id_link
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;
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;
$context.outputs.Validate_Caller_ID_Link
$context.variables.isValidCallerIdLink
$context.outputs.If_Caller_ID_Valid
请求 URL —
$context.outputs.incident_1.content[0].caller_id_link$context.outputs.incident_1.content[0].caller_id_link
$context.outputs.incident_1.content[0].caller_id_link
$context.outputs.ServiceNow_HTTP_Request_1
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;
console.error("Invalid caller_id_link, skipping 'Get Ticket Creator' activity."); return null;
$context.outputs.Log_Invalid_Caller_ID
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 };
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 };
$context.outputs.Javascript_1
设置值— 引用上一个脚本活动的上下文名称:
$context.outputs.Javascript_1$context.outputs.Javascript_1
$context.outputs.Assign_1
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;
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;
$context.outputs.Log_Error_Catch
设置值—
(($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])
(($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])
$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
$context.variables.incidentObject && $context.variables.incidentObject.creator && $context.variables.incidentObject.creator.email && $context.variables.incidentObject.company && $context.variables.incidentObject.company.account_id
$context.outputs.soqlQuery_1
"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"
"SELECT Id, Name, Email, AccountId FROM Contact WHERE Email = '" + $context.variables.incidentObject.creator.email + "' LIMIT 1"
$context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0$context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0
$context.outputs.soqlQuery_1.content && $context.outputs.soqlQuery_1.content.length > 0
$context.outputs.If_Contact_Found
帐户 ID —
$context.variables.incidentObject.company.account_id$context.variables.incidentObject.company.account_id
$context.variables.incidentObject.company.account_id
$context.outputs.curated_account_1
$context.outputs.soqlQuery_1.content
"/services/data/v64.0/sobjects/Case/" + $currentItem.Id"/services/data/v64.0/sobjects/Case/" + $currentItem.Id
"/services/data/v64.0/sobjects/Case/" + $currentItem.Id
"No Salesforce Contact found for the incident creator email.""No Salesforce Contact found for the incident creator email."
"No Salesforce Contact found for the incident creator email."