Sumário


Objetivo


      Esse documento tem o objetivo de exemplificar o uso da API de Aprovação de Lotes alterando o seu status de maneira que fique disponível a ser integrado ao lote oficial. Mais detalhes em Fluxo de aprovação | Processos | 05. Aprovação

Importante

Recurso disponível a partir da release 12.1.2406.

1 - Campos e Parâmetros


      Descrição detalhada dos campos da API de Solicitação de Aprovação de Lotes.

As tabelas abaixo são divididas da seguinte maneira:

  • Campo: Identificação do campo no Json.
  • Identificador: Identificação do campo no banco de dados RM correspondente ao campo Json.
  • Tipo: Tipo de valor aceito no campo, podendo ser numérico (Int, Decimal), condicionais (Boolean), texto (String, Datetime), além do tipo List, para esse último, é esperado uma nova sequência de dados (Bloco interno).
  • Descrição: Fornece uma descrição do campo.
  • Obrigatório: Especifica se a informação é obrigatória durante operações de envio (POST, PUT, PATCH). Caso a informação seja obrigatória condicionalmente essa informação será descrita no campo Observação.
  • Observação: Informações condicionais ou importantes para o funcionamento da API serão apresentadas nesse campo.

Tipo: POST

Lote
CampoTipoDescriçãoObrigatórioObservação
Lote
CampoTipoDescriçãoObservação

CompanyId

IntCódigo da Coligada-
BatchIdIntCódigo do Lote-
ListaLista com os lotes que serão processados

Sim

-
MessageStringObservação, complemento, mensagem a ser enviada junto ao e-mailNãoNo caso de aprovação este campo não é utilizado

2 - Métodos


      Métodos disponíveis na API de Solicitação de Aprovação de Lotes:

POST: Aprovação dos Lotes enviados

Post

Máscara de Url: http://{domínio}:{porta}/api/ctb/v1/batchLancApproval/approve

Exemplo de Configuração

Domínio: localhost

Porta: 8052

Url Utilizada: http://localhost:8052/api/ctb/v1/batchLancApproval/approve

Exemplo de Entrada

O JSON abaixo contém uma lista com os lotes que serão submetidos ao processo de aprovar. A lista é composta dos identificadores de cada lote (chave primária) composto do código da coligada e o código do lote.

Entrada/Envio/Request (JSON)
{
    "BatchList": 
	[
        {
            "CompanyId": 1,
            "BatchId": 999
        },
        {
            "CompanyId": 1,
            "BatchId": 5011
        },
        {
            "CompanyId": 12,
            "BatchId": 5
        },
        {
            "CompanyId": 12,
            "BatchId": 30
        },
        {
            "CompanyId": 12,
            "BatchId": 7
        },
        {
            "CompanyId": 33,
            "BatchId": 1201
        },
        {
            "CompanyId": 34,
            "BatchId": 737
        },
        {
            "CompanyId": 35,
            "BatchId": 556
        }
    ],
    "Message": "Comentários a ser enviado no corpo do e-mail nos processos de solicitação de aprovação, retornar para edição"
}

Exemplo de Resultado

A saída, ou retorno da API, é uma estrutura com a lista lotes processados, sua respectiva descrição e o status de seu processamento. Caso tenha ocorrido um erro no processamento então teremos um campo mensagem com o log/descrição da situação.

Resultado (JSON)
{
    "hasNext": true,
    "items": [
        {
            "codColigada": 1,
            "codLote": 999,
            "descricao": "Lançamentos do RM Saldus",
            "status": "Error",
            "mensagem": "Status do Lote 999 da Coligada 1 incorreto. É necessário que esteja com o status 'Aguardando aprovação'."
        },
        {
            "codColigada": 1,
            "codLote": 5011,
            "descricao": "teste conceito",
            "status": "Error",
            "mensagem": "O usuário 'mestre' não pode efetuar a Aprovação do Lote 5011 da Coligada 1 pois incluiu ou alterou 2 Lançamentos neste lote."
        },
        {
            "codColigada": 12,
            "codLote": 5,
            "descricao": "INTEGRAÇÃO SELECIONANDO O LOTE - USANDO FILTROS 2",
            "status": "Error",
            "mensagem": "Status do Lote 5 da Coligada 12 incorreto. É necessário que esteja com o status 'Aguardando aprovação'."
        },
        {
            "codColigada": 12,
            "codLote": 30,
            "descricao": "Lote 1.2.01/1.2.02 do RMNucleus",
            "status": "Error",
            "mensagem": "O Lote 30 da Coligada 1 não pertence ao TOTVS Gestão Contábil."
        }
        {
            "codColigada": 12,
            "codLote": 7,
            "descricao": "INTEGRAÇÃO DE LOTE UTILIZANDO FILTRO - APENAS PARA UM LOTE",
            "status": "Success"
        },
        {
            "codColigada": 33,
            "codLote": 1201,
            "descricao": "NF -  Nota Fiscal de Entrada Material - ADM (1.2.01)",
            "status": "Error",
            "mensagem": "A Coligada 33 do Lote 1201 não possui o Parâmetro 'Utilizar Fluxo de Aprovação' marcado. Portanto, o lote não pode ser utilizado no 'Fluxo de Aprovação'"
        },
        {
            "codColigada": 34,
            "codLote": 737,
            "descricao": "Reembolsos de viagem a participante",
            "status": "Error",
            "mensagem": "O usuário 'mestre' não possui permissão para execução deste processo na Coligada 34 do Lote 737."
        },
        {
            "codColigada": 35,
            "codLote": 556,
            "descricao": "NF -  Nota Fiscal Hospitalar",
            "status": "Error",
            "mensagem": "O fluxo de aprovação não é aplicável para o lote oficial."
        }
    ],
    "total": 8
}

Exemplo de Resultado Negativo

500 Internal Server Error - Resultado (JSON)
{
    "code": null,
    "message": "Referência de objeto não definida para uma instância de um objeto.",
    "detailedMessage": null,
    "helpUrl": null,
    "details": null
}
  • Sem rótulos