Abrir tíquete de problema API Guia do desenvolvedor
Use Abrir API de tíquete de problemas para gerenciar informações de tíquete entre sistemas de tíquete externos e o. ServiceNow AI Platform. Esta API cria, atualiza e recupera dados das tabelas Caso [sn_customerservice_case] e Incidente [incident].
Este guia do desenvolvedor fornece informações sobre como estender o. Abrir API de tíquete de problemas para fazer várias personalizações.
Estendendo a API de abertura de tíquete de problemas
. Abrir API de tíquete de problemas pode ser estendido editando inclusões de script.
TMFTroubleticketAPIConstantes: Contém constantes e informações de parâmetro necessárias.TMFTroubleticketAPIUtil: Contém funções para lidar com solicitações POST, GET e PATCH.ProcessadoticketOOB de TroubleTicket: Contém funções auxiliares que suportam funções no TMFTroubleTicketAPIUtil.TroubleticketProcessor: Um arquivo de inclusão de script vazio. Use este arquivo para definir todas as funções que você deseja substituir de TroubleTicketProcessorOOB.
Estenda o. Abrir API de tíquete de problemas para fazer as personalizações a seguir.
Parâmetros obrigatórios
TMFTROUBLETICKETAPICONSTANTS.TROUBLE_TICKET_CREATION_SCHEMA: Define os parâmetros do corpo da solicitação necessários para criar um tíquete.TMFTROUBLETICKETAPICONSTANTS.TROUBLE_TICKET_UPDATE_SCHEMA: Define os parâmetros do corpo da solicitação necessários para atualizar um tíquete.
// TMFTroubleTicketAPIConstants
TMFTroubleTicketAPIConstants.TROUBLE_TICKET_CREATION_SCHEMA = {
"title": "CreateTroubleTicket",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"severity": {
"type": "string"
},
"status": {
"type": "string"
},
"ticketType": {
"type": "string"
}
},
"required": [
"description",
"severity",
"status",
"ticketType"
]
};Validação do corpo da solicitação
verdadeiro por padrão. Essas funções são chamadas em TMFTroubleTicketAPIUtil. VerifyGetRequestForCase()- Chamado porProcessGetRequestForCase().VerifyPatchRequestForCase()- Chamado porProcessPatchRequestForCase().VerifyPostRequestForCase()- Chamado porProcessPostRequestForCase().VerifyGetRequestForIncident()- Chamado porProcessGetRequestForIncident().VerifyPatchRequestForIncident()- Chamado porProcessPatchRequestForIncident().VerifyPostRequestForIncident()- Chamado porProcessPostRequestForIncident().
falso , Interrompe a operação da API. Para aplicar a validação personalizada, substitua as funções auxiliares TroubleTicketProcessorOOB criando funções com nomes e parâmetros idênticos em TroubleTicketProcessor. Essas novas funções TroubleTicketProcessor serão chamadas pelo TMFTroubleTicketAPIUtil para substituir as funções auxiliares padrão TroubleTicketProcessorOOB.// TroubleTicketProcessor
var TroubleTicketProcessor = Class.create();
TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
verifyPostRequestForCase: function(caseObject, apiResponseProcessor){
// Returning false terminates the POST request
// Make sure to assign error message and reason
if (caseObject.name != "Hello world") {
apiResponseProcessor.setMessage(TMFTroubleTicketAPIConstants.MESSAGES.CASE_CREATION_FAILURE);
apiResponseProcessor.setReason("No reason needed");
return false;
}
},
type: 'TroubleTicketProcessor'
});
Operações REST adicionais
Para criar operações adicionais além das operações GET, PATCH e POST existentes, Crie recursos REST com script adicionais Para a API de Tíquete de problemas em aberto. A lógica dos novos recursos REST com script deve ser consistente com as operações existentes. Defina funções para as novas operações no TMFTroubleTicketAPIUtil.
Mapeamento de campo
Ao criar ou atualizar registros, a API mapeia os parâmetros do corpo da solicitação para os campos de registro de caso e incidente. Ao recuperar registros, a API mapeia campos de registro para atributos de objeto de resposta.
MapPatchRequestToCase()MapPostRequestToCase()MapPatchRequestToIncident()MapPostRequestToIncident()
CriateGetResponseForCase()CriatePatchResponseForCase()PostResponseForCase()CriateGetResponseForIncident()CriatePatchResponseForIncident()CriatePostResponseForIncident()
Personalize mapeamentos de campo para adicionar e recuperar dados para campos adicionais de caso e incidente ou para alterar os mapeamentos padrão para campos. Para personalizar os mapeamentos de campo, substitua as funções de mapeamento do TroubleTicketProcessorOOB criando funções com nomes e parâmetros idênticos em TroubleTicketProcessor. Essas novas funções TroubleTicketProcessor serão usadas pelo TMFTroubleTicketAPIUtil para substituir as funções de mapeamento padrão TroubleTicketProcessorOOB.
// TroubleTicketProcessor
var TroubleTicketProcessor = Class.create();
TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
mapPostRequestToCase: function(caseGr, caseObject){
// Override default mapping for the Description field
caseGr.description = "All cases will be created with this description";
// Add new mapping to the Contract field
caseGr.contract = caseObject.contract;
},
createPostResponseForCase: function(caseGr, caseObject){
// Override default mapping for the description attribute
caseObject.description = "This will always be the retrieved description";
// Add new contract attribute to the response object
caseObject.contract = caseGr.contract;
},
type: 'TroubleTicketProcessor'
});
Lógica de mapeamento para campos de escolha
. Estado , Prioridade e. contact_type os campos são campos de escolha, em que cada opção é composta por um rótulo e um valor correspondente. Por exemplo, se Estado o campo está definido como Novo , o rótulo é Novo e o valor é 1 . O mapeamento entre rótulos de escolha e valores pode ser alterado substituindo as funções de mapeamento do campo de escolha.
TransformSeveridade do CasoCaso()TransformCaseChannel()TransformCaseStatus()GravidadeToUrgência()SeverdadeToImpact()TransformIncidentChannel()TransformIncidentStatus()
// TroubleTicketProcessor
var TroubleTicketProcessor = Class.create();
TroubleTicketProcessor.prototype = Object.extendsObject(TroubleTicketProcessorOOB, {
// Define overriding functions here
// Function name and parameters must be identical to the function it overrides
transformCaseStatus: function(status){
if (status == "Draft")
return 1;
else return 10;
},
type: 'TroubleTicketProcessor'
});