Guia do desenvolvedor de API aberta de pedido de produto

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • Use API de pedido de produto em aberto para criar, atualizar e recuperar informações de pedido de produto.

    Este guia do desenvolvedor fornece informações sobre como estender o. API de pedido de produto em aberto para fazer várias personalizações.

    Estender a API de pedido de produto em aberto

    . API de pedido de produto em aberto 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.
    • TMFProductOrderAPIUtil : Contém funções para lidar com solicitações POST.
    • TMFProductOrderGetAPIUtil : Contém funções para lidar com solicitações GET.
    • ProductOrderExtensionOOB : Contém funções de ajuda que oferecem suporte a funções no TMFProductOrderAPIUtil e. TMFProductOrderGetAPIUtil .
    • ProductOrderProcessor : Um arquivo de inclusão de script vazio. Use este arquivo para definir todas as funções que você deseja substituir ProductOrderExtensionOOB .

    Estenda API de pedido de produto em aberto 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 um pedido de produto, substitua a função GetProductOrderSchema() contido em ProductOrderExtensionOOB inclusão de script.

    A função GetProductOrderSchema() lê o esquema do TMFOrderAPIConstantes inclusão de script. TMFOrderAPIConstantes 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 GetProductOrderSchema() para ler um novo esquema. Para substituir GetProductOrderSchema() escreva uma função com o mesmo nome em ProductOrderProcessor inclusão de script. A nova função em ProductOrderProcessor será chamado por TMFProductOrderAPIUtil para substituir o padrão GetProductOrderSchema() função em ProductOrderExtensionOOB .

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

    Validação do corpo da solicitação

    Para executar validação adicional no corpo da solicitação, substitua ProductOrderExtensionOOB funções. ProductOrderExtensionOOB contém as quatro funções auxiliares a seguir que retornam verdadeiro por padrão.
    • ValidatePostRequest() - Chamado por ProcessCreateOrder() em TMFProductOrderAPIUtil .
    • ValidateProductObj() - Chamado por ProcessCreateOrder() em TMFProductOrderAPIUtil .
    • ValidateRelatedPartyObj() - Chamado por ProcessCreateOrder() em TMFProductOrderAPIUtil .
    • ValidateGetRequest() - Chamado por ProcessGetOrder() em TMFProductOrderGetAPIUtil .
    Se uma função auxiliar retornar falso , Interrompe a operação da API. Para aplicar validação personalizada, substitua ProductOrderExtensionOOB funções de ajuda criando funções com nomes e parâmetros idênticos em ProductOrderProcessor . Novos ProductOrderProcessor as funções serão chamadas por TMFProductOrderAPIUtil e. TMFProductOrderGetAPIUtil para substituir o padrão ProductOrderExtensionOOB funções auxiliares.
    Neste exemplo, uma função em ProductOrderProcessor substitui uma função padrão em ProductOrderExtensionOOB para executar a validação no productOrderItematributo.
    // ProductOrderProcessor
    
    var ProductOrderProcessor = Class.create();
    ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
        // 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.productOrderItem)) {
                details.push(new TMFCommonOrderAPIUtil().getErrorDetailsObj(TMFOrderAPIConstants.MESSAGES.MISSING_ORDER_ITEM, '/'));
                return false;
            }
            return true;
        },
    
        type: 'ProductOrderProcessor'
    });

    Operações REST adicionais

    Para criar operações adicionais além das operações GET e POST existentes, Criar recursos REST com script adicionais para API de pedido de produto 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 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 campos de registro. Ao recuperar registros, a API mapeia campos de registro para atributos de objeto de resposta.

    ProductOrderExtensionOOB Contém as seguintes funções para mapear um corpo de solicitação POST para um GlideRecord.
    • TransformOrderGr()
    • TransformOrdLineItemGr()
    • GetLineItemPrice()
    • TransformPriceOrderTypeAndState()
    • TransformCustLineItmContact()
    • TransformOrderItemChar()
    ProductOrderExtensionOOB Contém as seguintes funções para mapear um GlideRecord para um objeto de resposta para solicitações GET ou POST.
    • TransformPostOrderResponse()
    • TransformGetOrderResponse()
    • TransformProductObj()
    • TransformRelatedPartyCustomerLineItem()
    • TransformOrderItemRelationship()
    • TransformGetOrdLineItmResponse()
    • TransformProductCharacteristics()
    • TransformProductSpecification()
    Personalize mapeamentos de campo para adicionar e recuperar dados de campos adicionais ou para mudar os mapeamentos padrão de campos. Para personalizar os mapeamentos de campo, substitua ProductOrderExtensionOOB mapeamento de funções criando funções com nomes e parâmetros idênticos em ProductOrderProcessor . Novos ProductOrderProcessor as funções serão usadas por TMFProductOrderAPIUtil e. TMFProductOrderGetAPIUtil para substituir o padrão ProductOrderExtensionOOB funções de mapeamento.
    Neste exemplo, duas funções em ProductOrderProcessor substitua as funções padrão em ProductOrderExtensionOOB para criar mapeamentos para external_ide. sys_idcampos.
    // ProductOrderProcessor
    
    var ProductOrderProcessor = Class.create();
    ProductOrderProcessor.prototype = Object.extendsObject(ProductOrderExtensionOOB, {
        // 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: 'ProductOrderProcessor'
    });