Guia do desenvolvedor de API de abertura de tíquete de problemas

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • 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.

    Estender a API de Tíquete de problemas em aberto

    . Abrir API de tíquete de problemas pode ser estendido editando inclusões de script.

    Essas inclusões de script só devem ser editadas com uma compreensão das consequências das mudanças.
    • TMFTroubleTicketAPIConstants : 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.
    • TroubleTicketProcessorOOB : Contém funções de ajuda que oferecem suporte a 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 Abrir API de tíquete de problemas para fazer as personalizações a seguir.

    Parâmetros obrigatórios

    Para mudar quais parâmetros do corpo da solicitação são necessários ou não, atualize a inclusão de script TMFTroubleTicketAPIConstants. Por padrão, o corpo da solicitação para criar um tíquete (POST) requer os parâmetros description, severitye ticketType. Por padrão, o corpo da solicitação para atualizar um tíquete (PATCH) não tem 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.
    • TMFTROUBLE TICKETAPICONSTANTS.TROUBLE_TICKET_UPDATE_SCHEMA : Define os parâmetros do corpo da solicitação necessários para atualizar um tíquete.
    Neste exemplo, description, severity, statuse ticketTypeos parâmetros são necessários para criar 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

    Para executar validação adicional no corpo da solicitação, substitua as funções TroubleTicketProcessorOOB. TroubleTicketProcessorOOB contém as seis funções auxiliares a seguir que retornam verdadeiro por padrão. Essas funções são chamadas em TMFTroubleTicketAPIUtil.
    • VerifyGetRequestForCase() - Chamado por ProcessGetRequestForCase() .
    • VerifyPatchRequestForCase() - Chamado por ProcessPatchRequestForCase() .
    • VerifyPostRequestForCase() - Chamado por ProcessPostRequestForCase() .
    • VerifyGetRequestForIncident() - Chamado por ProcessGetRequestForIncident() .
    • VerifyPatchRequestForIncident() - Chamado por ProcessPatchRequestForIncident() .
    • VerifyPostRequestForIncident() - Chamado por ProcessPostRequestForIncident() .
    Se uma função auxiliar retornar falso , Interrompe a operação da API. Para aplicar validação personalizada, substitua as funções auxiliares do TroubleTicketProcessorOOB criando funções com nomes e parâmetros idênticos em TroubleTicketProcessor. Essas novas funções do TroubleTicketProcessor serão chamadas pelo TMFTroubleTicketAPIUtil para substituir as funções auxiliares padrão do TroubleTicketProcessorOOB.
    Neste exemplo, uma função em TroubleTicketProcessor substitui uma função padrão em TroubleTicketProcessorOOB para executar a validação no atributo name.
    // 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, Criar 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.

    TroubleTicketProcessorOOB contém as seguintes funções para mapear um corpo de PATCH ou solicitação POST para um GlideRecord de caso ou incidente.
    • MapPatchRequestToCase()
    • MapPostRequestToCase()
    • MapPatchRequestToIncident()
    • MapPostRequestToIncident()
    TroubleTicketProcessorOOB contém as seguintes funções para mapear um caso ou incidente GlideRecord para um objeto de resposta JSON para solicitações GET, PATCH ou POST.
    • CreateGetResponseForCase()
    • CreatePatchResponseForCase()
    • CriarPostResponseForCase()
    • CreateGetResponseForIncident()
    • CreatePatchResponseForIncident()
    • CreatePostResponseForIncident()

    Personalize mapeamentos de campo para adicionar e recuperar dados para campos adicionais de caso e incidente ou para mudar os mapeamentos padrão para campos. Para personalizar os mapeamentos de campo, substitua as funções de mapeamento TroubleTicketProcessorOOB criando funções com nomes e parâmetros idênticos em TroubleTicketProcessor. Essas novas funções do TroubleTicketProcessor serão usadas pelo TMFTroubleTicketAPIUtil para substituir as funções de mapeamento padrão do TroubleTicketProcessorOOB.

    Neste exemplo, duas funções em TroubleTicketProcessor substituem as funções padrão em TroubleTicketProcessorOOB para mudar o mapeamento do campo Descrição e adicionar um mapeamento para o campo Contrato.
    // 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 opção

    . Estado , Prioridade e contact_type campos são campos de seleção, em que cada opção é composta por um rótulo e um valor correspondente. Por exemplo, se o Estado o campo está definido como Novo , o rótulo é Novo e o valor é 1 . O mapeamento entre rótulos de opção e valores pode ser alterado substituindo as funções de mapeamento do campo de escolha.

    TroubleTicketProcessorOOB contém as seguintes funções de mapeamento de campo de escolha.
    • TransformSeveridade do CasoCaso()
    • TransformCaseChannel()
    • TransformCaseStatus()
    • SeverdadeToUrgency()
    • SeverdadeToImpact()
    • TransformIncidentChannel()
    • TransformIncidentStatus()
    Substitua as funções de mapeamento de campo de escolha do TroubleTicketProcessorOOB criando funções com nomes e parâmetros idênticos em TroubleTicketProcessor. Essas novas funções do TroubleTicketProcessor serão usadas pelo TMFTroubleTicketAPIUtil para substituir as funções de mapeamento de campo de seleção padrão do TroubleTicketProcessorOOB.
    Neste exemplo, uma função em TroubleTicketProcessor substitui uma função padrão em TroubleTicketProcessorOOB para mudar o mapeamento de escolha do Status campo.
    // 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'
    });