API Spendint - POST /sn_spend_intg/spendint/orderack

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 4 min. de leitura
  • Atualiza as informações de pedido para quando um usuário compra um produto de um catálogo de terceiros. Quando o usuário faz check-out, uma linha de compra é criada para que as aprovações ou outras tarefas da compra possam ser concluídas.

    Quando uma ordem de compra é gerada no banco de dados ServiceNow, a ordem é inserida nas seguintes tabelas:
    • Pedido de saída: contém o cabeçalho do pedido.
    • Linha do pedido de saída: contém as linhas do pedido.

    Os fornecedores precisam consultar essas tabelas e buscar os pedidos pendentes em relação a elas. Os fornecedores devem criar um app com escopo para ações Workflow Studio para integração com o banco de dados ServiceNow.

    Consulte as tabelas com os seguintes parâmetros:
    • sysparm_query=supplier_id=<supplier_id> ^purchase_order.status=20 para cabeçalho
    • sysparm_query=purchase_order.supplier_id=<supplier_id> ^purchase_order.status=20 para cabeçalho
    Quando uma linha de compra é convertida em uma linha de ordem de compra, os seguintes processos são executados:
    1. A ordem de compra e a linha da ordem de compra são enviadas para o Planejamento de recursos empresariais (ERP), se aplicável.
    2. A ordem de compra e a linha da ordem de compra são transferidas por meio da integração para o terceiro com o ID do cliente, ID do fornecedor, número da ordem de compra, data do pedido, valor da ordem de compra, moeda do valor da ordem de compra e linhas da ordem de compra.
    3. A ordem de compra e a linha da ordem de compra permanecem no estado Envio pendente até que as mensagens de confirmação sejam recebidas pela integração de catálogo de terceiros e pelo ERP. Depois que a confirmação for recebida, o estado será atualizado para Solicitado. Se não houver integração de ERP envolvida, uma mensagem de confirmação será necessária somente da integração de terceiros.

    Tabelas de status

    Para saber o status da solicitação de confirmação do pedido, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de confirmação do pedido falhou. Para obter uma resposta de confirmação de pedido, consulte a tabela Erro de confirmação de pedido com o seguinte parâmetro:

    sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20

    Os detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.

    Formato da URL

    /api/sn_spend_intg/spendint/orderack

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    modo Suporte para modos assíncronos e síncronos para integração de terceiros.

    Tipo de dados: cadeia de caracteres

    Valores válidos:
    • async: modo assíncrono.
    • sincronizar: modo síncrono.

    Padrão: assíncrono

    Tabela 3. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    customer_id Obrigatório. Identificador do cliente.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    order_number Obrigatório. Número da ordem de compra fornecido pelo cliente para este pedido.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    linhas_pedido_de_vendas Lista de objetos que definem as linhas da ordem de vendas com atualizações exclusivas para as compras nesta ordem.

    Tipo de dados: matriz

    "sales_order_lines":[
      {
        "estimated_arrival_date": "String",
        "line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    vendas_ordem_linhas.estimated_arrival_date Data de chegada estimada do pedido.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    Formato: AAAA-MM-DD

    vendas_ordem_linhas.line_number Obrigatório. Número da linha da ordem de compra que foi gerado pelo cliente para uma compra específica.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    vendas_ordem_linhas.sales_order_line_number Número da linha da ordem de vendas que foi gerado pelo fornecedor. Este número é necessário somente para revisões desta compra.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    número_pedido_de_vendas Número ou valor gerado pelo fornecedor para este pedido.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    status_code Obrigatório. Status do pedido enviado que confirma se o pedido foi feito com sucesso.

    Tipo de dados: cadeia de caracteres

    Valores válidos:
    • confirmado: pedido feito com sucesso.
    • rejeitado: pedido não feito.
    status_message Mensagem anexada a um código de status. Por exemplo, a mensagem pode ser que o pedido foi feito com sucesso e está em espera.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 1000

    ID_do_fornecedor Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    id_de_importação_de_terceiros Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Nota:
    Somente o formato de dados application/json é compatível com a Estrutura de integração de compras.
    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP.

    Tabela 6. Códigos de status
    Código do status Descrição
    êxito Bem-sucedido. A solicitação foi processada com sucesso.
    falha Mal-sucedido. A solicitação foi processada com erros.

    Parâmetros do corpo da resposta (JSON)

    Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.
    Nome Descrição
    erro_resposta_corpo Descrição dos erros, listados pelo número da ordem de vendas, número da linha da ordem de vendas e mensagem de erro.

    Tipo de dados: matriz

    error_response_body.error_message Mensagem de erro detalhada.

    Tipo de dados: cadeia de caracteres

    status_code Status da resposta, como "sucesso" ou "falha".

    Tipo de dados: cadeia de caracteres

    Solicitação de cURL

    curl "https://instance.service-now.com/api/sn_spend_intg/spendint/orderack" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "order_number": "PO08903323",
      "sales_order_number": "SO03323212",
      "status_code": "CONFIRMED",
      "status_message": "BACKORDERED",
      "sales_order_lines":[
        {
          "line_number": "POL6789876",
          "sales_order_line_number": "SOL5678909",
          "estimated_arrival_date": "YYYY-MM-DD"
        }
      ]
    }
    ]}
    

    Possíveis respostas:

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "ACME CORP",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_number": "SO03323212",
                            "sales_order_line_number": "SOL5678909",
                            "error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
                        }
                    ]
                }
            ]
        }
    }