Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome físico:

ccp/v1/purchaseOrder.p

Objetivo

Realiza a validação e geração de pedidos em lotes e consulta informações de pedido.


Funcionamento

A API fornece uma série de métodos que podem ser executados individualmente para geração e consulta de pedido.


A sintaxe para a chamada da API, que deve ser de forma persistente:

run ccp/rules/purchaseOrderRules.p persistent set h-handle.

A variável denominada h-handle irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.


Métodos Negócio

Quando a API estiver executada em modo persistente, os seguintes métodos estarão disponíveis para execução:

pi-get-v1

Requisito

Nenhum.

Descrição

Repassa o número do pedido para a busca de um registro.

  • ccp/api/v1/purchaseOrder: API de comunicação para processamento dos dados.

Retorna um registro de pedido de compra.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetro para a busca do pedido de compra: 

  • número do pedido
Exemplo
{
  "pathParams": [
      "123543"
  ]
}

oOutput

JsonObject

OUTPUT

Retorno contendo informações do pedido de compra.

Exemplo
{
  "natureTxt": "Compra",
  "siteCode": "1",
  "nature": 1,
  "documentNumber": "53113791000122",
  "purchaseOrder": 994033,
  "shortName": "COTROLEDb",
  "supplyContract": false,
  "orderDate": "2023-02-01",
  "situation": 2,
  "vendorCode": 1
}

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processamento de busca dos dados.

Retorno

Retorna um registro de pedido de compra ou erros gerados durante o processamento.



pi-query-v1

Requisito

Nenhum.

Descrição

Retorna informações de mais de um pedido de compra.

  • ccp/api/v1/purchaseOrder: API de comunicação para processamento dos dados.

Retorna uma lista de pedidos de compra.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT


aOutput

JsonArray

OUTPUT

Retorno contendo a lista dos pedidos de compra encontrados.

Exemplo
{
    "total": 20,
    "hasNext": true,
    "items": [
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "07977026000214",
            "purchaseOrder": 1,
            "shortName": "3",
            "supplyContract": false,
            "orderDate": "2023-09-20",
            "situation": 1,
            "vendorCode": 3
        },
        {
            "natureTxt": "Serviço",
            "siteCode": "1",
            "nature": 2,
            "documentNumber": "53113791000122",
            "purchaseOrder": 2,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-09-26",
            "situation": 1,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 3,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-09-28",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 4,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-12-28",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 5,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-12-28",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 6,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2023-12-28",
            "situation": 1,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 7,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2023-12-28",
            "situation": 1,
            "vendorCode": 14
        },
        {
            "natureTxt": "Serviço",
            "siteCode": "1",
            "nature": 2,
            "documentNumber": "53113791000122",
            "purchaseOrder": 8,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2024-01-08",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Serviço",
            "siteCode": "1",
            "nature": 2,
            "documentNumber": "53113791000122",
            "purchaseOrder": 9,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2024-01-08",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 50,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-10-27",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 88,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2014-01-06",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 90,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2023-10-27",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 174,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 1,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "53113791000122",
            "purchaseOrder": 175,
            "shortName": "COTROLEDb",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 1
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 176,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 177,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 178,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 179,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 180,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        },
        {
            "natureTxt": "Compra",
            "siteCode": "1",
            "nature": 1,
            "documentNumber": "99999999998",
            "purchaseOrder": 181,
            "shortName": "ESTRANGEIRO",
            "supplyContract": false,
            "orderDate": "2017-12-08",
            "situation": 2,
            "vendorCode": 14
        }
    ]
}

lHasNext

Logical

OUTPUT

Retorna se haverá mais registros a serem apresentados.

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processamento de busca dos dados.

Retorno

Retorna uma lista de pedidos de compra ou erros gerados durante o processamento dos dados.

pi-create-purch-requisition

Requisito

Nenhum.

Descrição

Cria a temp-table com as ordens de compra vinculadas a sugestão do pedido para a geração do pedido de compra.

Retorna a temp-table com as ordens de compra.

Parâmetros

Tipo

Input/Output

Descrição

oPayload

JsonObject

INPUT

Parâmetro com o objeto do payload para abstração dos dados.

Exemplo

{

  "responsible": "dmansupimpa3",
  "deliveryEntity": 1,
  "messageCode": 1,
  "messageText": "Atenção as Condições Obrigatórias Para Fornecimento anexo a este pedido de compra. O prazo de pagamento deve ser contado a partir do dia seguinte a data de emissão da NF. P/ a entrega de item(ns) com validade inferior a 120dd, informar o comprador responsável antes do faturamento/entrega. Obrigatório informar o nº Pedido na NF.",
  "comments": null,
  "collectionSite": "1",
  "orderDate": "2023-10-09",
  "freightPaymentType": 1,
  "vendorId": 1,
  "siteCode": "1",
  "paymentTermId": 0,
  "carrierCode": 7,
  "orderType": 1,
  "userCode": "dmansupimpa3",
  "package": 0,
  "processSequence": 1,
  "suggestionSequence": 2,
  "purchaseOrderLinesDiscarded": [],
  "specificPaymentTerms": [
      {
          "sequence": 1,
          "date": "2023-11-08T03:00:00.000Z",
          "percentage": 8.333,
          "comments": ""
      },
      {
          "sequence": 2,
          "date": "2023-12-09T03:00:00.000Z",
          "percentage": 8.333,
          "comments": ""
      },
      {
          "sequence": 3,
          "date": "2024-01-08T03:00:00.000Z",
          "percentage": 8.333,
          "comments": ""
      }
    ]
}

ttSummaryPurchRequisition

Temp-table

OUTPUT

Retorna a temp-table carregada com as ordens de compra vinculadas a sugestão de pedido (sugest-ped-comp-ordem).

Retorno

Retorna uma temp-table com as ordens de compra ou erros gerados durante o processamento.

pi-create-purchase-order

Requisito

Nenhum.

Descrição

Retorna a temp-table com os valores necessários para geração do pedido de compra.

Parâmetros

Tipo

Input/Output

Descrição

oPayload

JsonObject

INPUT

Parâmetro com o objeto do payload para abstração dos dados.

Exemplo
{
"responsible": "dmansupimpa3",
"deliveryEntity": 1,
"messageCode": 1,
  "messageText": "Atenção as Condições Obrigatórias Para Fornecimento anexo a este pedido de compra. O prazo de pagamento deve ser contado a partir do dia seguinte a data de emissão da NF. P/ a entrega de item(ns) com validade inferior a 120dd, informar o comprador responsável antes do faturamento/entrega. Obrigatório informar o nº Pedido na NF.",
"comments": null,
"collectionSite": "1",
"orderDate": "2023-10-09",
"freightPaymentType": 1,
"vendorId": 1,
"siteCode": "1",
"paymentTermId": 0,
"carrierCode": 7,
"orderType": 1,
"userCode": "dmansupimpa3",
"package": 0,
"processSequence": 1,
"suggestionSequence": 2,
"purchaseOrderLinesDiscarded": [],
"specificPaymentTerms": [
    {
        "sequence": 1,
        "date": "2023-11-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 2,
        "date": "2023-12-09T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 3,
        "date": "2024-01-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
      }
  ]
}

ttSummaryPurchRequisition

Temp-table

INPUT

Temp-table com as ordens de compra do pedido de compra.

ttSummaryPurchaseOrder

Temp-table

OUTPUT

Retorna a temp-table carregada com as informações necessárias para a geração do pedido de compra.

Retorno

Retorna uma temp-table com as informações do pedido de compra ou erros gerados durante o processamento.

pi-create-payment-terms

Requisito

Condição de pagamento do pedido precisa ser específica ( 0 ).

Descrição

Cria a temp-table ttPaymentTerms se o cálculo percentual das parcelas geradas for igual a 100.

Retorna a temp-table com as informações das parcelas geradas.

Parâmetros

Tipo

Input/Output

Descrição

oPayload

JsonObject

INPUT

Parâmetro com o objeto do payload para abstração dos dados.

Exemplo
{
"responsible": "dmansupimpa3",
"deliveryEntity": 1,
"messageCode": 1,
  "messageText": "Atenção as Condições Obrigatórias Para Fornecimento anexo a este pedido de compra. O prazo de pagamento deve ser contado a partir do dia seguinte a data de emissão da NF. P/ a entrega de item(ns) com validade inferior a 120dd, informar o comprador responsável antes do faturamento/entrega. Obrigatório informar o nº Pedido na NF.",
"comments": null,
"collectionSite": "1",
"orderDate": "2023-10-09",
"freightPaymentType": 1,
"vendorId": 1,
"siteCode": "1",
"paymentTermId": 0,
"carrierCode": 7,
"orderType": 1,
"userCode": "dmansupimpa3",
"package": 0,
"processSequence": 1,
"suggestionSequence": 2,
"purchaseOrderLinesDiscarded": [],
"specificPaymentTerms": [
    {
        "sequence": 1,
        "date": "2023-11-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 2,
        "date": "2023-12-09T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 3,
        "date": "2024-01-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
      }
  ]
}

ttSummaryPurchaseOrder

Temp-table

INPUT

Temp-table com as informações do pedido de compra.

ttPaymentTerms

Temp-table

OUTPUT

Retorna a temp-table carregada com as parcelas de condição específica.

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna uma temp-table com as parcelas de condição específica ou erros gerados durante o processamento.

pi-validate-order-requisition

Requisito

Nenhum.

Descrição

Valida as informações das ordens de compra vinculadas a sugestão em questão.

Parâmetros

Tipo

Input/Output

Descrição

ttSummaryPurchRequisition

Temp-table

INPUT

Temp-table com as ordens de compra do pedido de compra.


ttSummaryPurchaseOrder

Temp-table

INPUT

Temp-table com as informações do pedido de compra.


RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna erros gerados durante o processamento das validações.

pi-generate-order-v1

Requisito

Nenhum.

Descrição

Recebe o payload vindo da API de comunicação (ccp/api/v1/purchaseOrder) chamado pelo método pi-generate-order, 
com as informações necessárias para geração do pedido.

Após carregar as temp-tables (ttSummaryPurchRequisition, ttSummaryPurchaseOrder, ttPaymentTerms), as mesmas serão enviadas
por parâmetro para a api (fch/fchmat/fchmatcreatepurchaseorder.p) realizar a validação e geração do pedido.

  • ccp/api/v1/purchaseOrder: API de comunicação para processamento dos dados.

Retorna as informações do pedido de compra gerado.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetro com o objeto do payload para abstração dos dados e geração do pedido.

Exemplo
{
"responsible": "dmansupimpa3",
"deliveryEntity": 1,
"messageCode": 1,
  "messageText": "Atenção as Condições Obrigatórias Para Fornecimento anexo a este pedido de compra. O prazo de pagamento deve ser contado a partir do dia seguinte a data de emissão da NF. P/ a entrega de item(ns) com validade inferior a 120dd, informar o comprador responsável antes do faturamento/entrega. Obrigatório informar o nº Pedido na NF.",
"comments": null,
"collectionSite": "1",
"orderDate": "2023-10-09",
"freightPaymentType": 1,
"vendorId": 1,
"siteCode": "1",
"paymentTermId": 0,
"carrierCode": 7,
"orderType": 1,
"userCode": "dmansupimpa3",
"package": 0,
"processSequence": 1,
"suggestionSequence": 2,
"purchaseOrderLinesDiscarded": [],
"specificPaymentTerms": [
    {
        "sequence": 1,
        "date": "2023-11-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 2,
        "date": "2023-12-09T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
    },
      {
        "sequence": 3,
        "date": "2024-01-08T03:00:00.000Z",
        "percentage": 8.333,
        "comments": ""
      }
  ]
}

oOutput

JsonObject

OUTPUT

Retorna o número do pedido de compra gerado e se está pendente de aprovação.

Exemplo
{
  "purchaseOrderNumber": 123345
  "isPendingApproval": false
}

RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna as informações do pedido de compra gerado ou erros gerados durante o processamento.

pi-get-approvers-v1

Requisito

Nenhum.

Descrição

Retorna os aprovadores do pedido se o mesmo estiver pendente de aprovação..

  • ccp/api/v1/purchaseOrder: API de comunicação para processamento dos dados.

Retorna uma lista com os aprovadores do pedido de compra gerado.

Parâmetros

Tipo

Input/Output

Descrição

oInput

JsonObject

INPUT

Parâmetro com o número do pedido para busca dos aprovadores.

Exemplo
{
    "pathParams": [
        "approvers",
        "123456"
    ]
}

aOutput

JsonArray

OUTPUT

Retorna uma lista com os aprovadores encontrados.

Exemplo
{
    "total": 1,
    "hasNext": false,
    "items": [
        {
            "code": "faborges",
            "name": "Felipe Augusto Borges",
            "email": ".@totvs.com.br"
        }
    ]
}

lHasNext

Logical

OUTPUT

Retorna se haverá mais registros a serem apresentados.


RowErrors

Temp-table

OUTPUT

Informações sobre os erros ocorridos durante o processo de busca dos dados.

Retorno

Retorna as informações dos aprovadores do pedido de compra gerado ou erros gerados durante o processamento.