Guia do desenvolvedor de API aberta de ordem de serviço

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Use a API de abertura de ordem de serviço para criar, atualizar e recuperar informações de ordem de serviço.

    Este guia do desenvolvedor fornece informações sobre como estender o API de abertura de ordem de serviço para fazer várias personalizações.

    Estendendo a API de abertura de ordem de serviço

    A API de abertura de ordem de serviço pode ser estendida editando as inclusões de script.

    Esses script includes só devem ser editados com uma compreensão das consequências das mudanças.
    • TMFServiceOrderAPIUtil: contém funções para lidar com solicitações POST.
    • TMFServiceOrderGetAPIUtil: contém funções para lidar com solicitações GET.
    • ServiceOrderExtensionOOB: contém funções de ajuda que oferecem suporte a funções em TMFServiceOrderAPIUtil e TMFServiceOrderGetAPIUtil.
    • ServiceOrderProcessor: um arquivo de inclusão de script vazio. Use este arquivo para definir as funções que você deseja substituir de ServiceOrderExtensionOOB.

    Estenda a API de abertura de ordem de serviço 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 para criar uma ordem de serviço, substitua a função getServiceOrderSchema() contida na inclusão de script ServiceOrderExtensionOOB.

    A função getServiceOrderSchema() lê o esquema da inclusão de script TMFOrderAPIConstants. TMFOrderAPIConstants está protegido e não pode ser editado, portanto, você não pode simplesmente atualizar o esquema. Em vez disso, um novo esquema deve ser lido de um arquivo diferente. Você pode substituir getServiceOrderSchema() para ler um novo esquema. Para substituir getServiceOrderSchema(), grave uma função com o mesmo nome na inclusão de script ServiceOrderProcessor. A nova função em ServiceOrderProcessor será chamada por TMFServiceOrderAPIUtil para substituir a função getServiceOrderSchema() padrão em ServiceOrderExtensionOOB.

    Neste exemplo, getServiceOrderSchema() retorna um esquema personalizado que é definido em um novo arquivo de constante.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
       // Define overriding functions here
       // Function name and parameters must be identical to the function it overrides
    
       getServiceOrderSchema: function() {
          //Define your own custom schema in a new constant file
          return JSON.parse(Constants.SCHEMA.CREATE_SERVICE_ORDER);
       },
    
       type: 'ServiceOrderProcessor'
    });

    Validação do corpo da solicitação

    Para executar uma validação adicional no corpo da solicitação, substitua as funções ServiceOrderExtensionOOB. ServiceOrderExtensionOOB contém as quatro funções de ajuda a seguir que retornam verdadeiro por padrão.
    • validaçãoPostRequest() — Chamado por processPostOrder() em TMFServiceOrderAPIUtil.
    • validServiceObj() — Chamado por processPostOrder() em TMFServiceOrderAPIUtil.
    • executionRelatedPartyObj() : chamado por processPostOrder() em TMFServiceOrderAPIUtil.
    • validGetRequest() — Chamado por processGetOrder() em TMFServiceOrderGetAPIUtil.
    Se uma função auxiliar retornar falso, ela interromperá a operação da API. Para aplicar a validação personalizada, substitua as funções de ajuda ServiceOrderExtensionOOB criando funções com nomes e parâmetros idênticos em ServiceOrderProcessor. Essas novas funções ServiceOrderProcessor serão chamadas por TMFServiceOrderAPIUtil e TMFServiceOrderGetAPIUtil para substituir as funções de ajuda ServiceOrderExtensionOOB padrão.
    Neste exemplo, uma função em ServiceOrderProcessor substitui uma função padrão em ServiceOrderExtensionOOB para executar a validação no atributo serviceOrderItem.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        validatePostRequest: function(orderObject, details) {
            // Returning false terminates the POST request
            // Make sure to push error message in details array in case of error
            if (gs.nil(orderObject.serviceOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },
    
        type: 'ServiceOrderProcessor'
    });

    Operações REST adicionais

    Para criar operações adicionais além das operações GET e POST existentes, crie recursos REST de script adicionais para a API aberta da ordem de serviço. A lógica dos novos recursos REST de script deve ser consistente com as operações existentes. Defina funções para as novas operações em uma nova inclusão de script.

    Mapeamento de campo

    Ao criar registros, a API mapeia os parâmetros do corpo da solicitação para os campos de registro. Ao recuperar registros, a API mapeia campos de registro para atributos de objeto de resposta.

    ServiceOrderExtensionOOB contém as seguintes funções para mapear um corpo de solicitação POST para um GlideRecord.
    • transformOrderGr()
    • transformOrdLineItemGr()
    • transformCustLineItmContact()
    • transformOrderItemChar()
    ServiceOrderExtensionOOB contém as seguintes funções para mapear um GlideRecord para um objeto de resposta para solicitações GET ou POST.
    • transformPostOrderResponse()
    • transformGetOrderResponse()
    • transformServiceObj()
    • transformRelatedPartyCustomerLineItem()
    • transformOrderItemRelationship()
    • transformGetOrdLineItmResponse()
    • transformServiceCharacteristics()
    • transformServiceSpecification()

    Personalize os mapeamentos de campo para adicionar e recuperar dados de campos adicionais ou para alterar os mapeamentos padrão dos campos. Para personalizar os mapeamentos de campo, substitua as funções de mapeamento ServiceOrderExtensionOOB criando funções com nomes e parâmetros idênticos em ServiceOrderProcessor. Essas novas funções ServiceOrderProcessor serão usadas por TMFServiceOrderAPIUtil e TMFServiceOrderGetAPIUtil para substituir as funções de mapeamento ServiceOrderExtensionOOB padrão.

    Neste exemplo, duas funções em ServiceOrderProcessor substituem as funções padrão em ServiceOrderExtensionOOB para criar mapeamentos para os campos external_id e sys_id.
    // ServiceOrderProcessor
    
    var ServiceOrderProcessor = Class.create();
    ServiceOrderProcessor.prototype = Object.extendsObject(ServiceOrderExtensionOOB, {
        // Define overriding functions here
        // Function name and parameters must be identical to the function it overrides
    
        transformOrderGr: function(requestObject, orderGr) {
            orderGr.external_id = requestObject.externalId;
            return orderGr;
        },
    
        transformPostOrderResponse: function(orderObject, orderGr) {
            orderObject.id = orderGr.getValue('sys_id');
            return orderObject;
        },
    
        type: 'ServiceOrderProcessor'
    });