Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
  1. Visão Geral
  2. Configurações
  3. Exemplo de utilização
  4. Principais Campos e Parâmetros 
  5. Configuração ambiente Protheus RestDemais Informações
  6. Tabelas utilizadas


Modelo de dados a ser seguido para Esse documento apresenta os passos necessários para ativação e consumo da API Balancete Modelo1 (CTR040S) via Smartlink .

Configurar o SMARTLINK de acordo com a documentação: Comunicação SmartLink utilizando as credenciais (client_id e client_secret) .

Essa integração prevê a leitura de mensagens enviadas ao SmartLink, através de uma rotina configurada no Schedule do ambiente do cliente. As mensagens serão consumidas pelo ERP, que fará o processamento do Balancete conforme parâmetros solicitados.

A partir dos dados recebidos pelo ERP, haverá a chamada de uma API dentro do próprio ERP, que estará disponível para consumo através das configurações REST citadas abaixo. Após o consumo dessa API, uma mensagem de retorno será enviada ao SmartLink com os dados do Balancete. 

Será necessária a atualização do ambiente seguindo a ordem descrita nos tópicos abaixo.


Expandir
titleAmbiente Protheus - Requisitos

1) Release Protheus a partir da 12.1.2210

2) Aplicação das atualizações CTB, com data superior a 29/05/2024 e conforme release do ambiente.

Expandir
titleComunicação Smartlink

Configurar a comunicação com SmartLink, inserindo as credenciais do cliente (clientId e clientSecret) na rotina FwSgdpParm - Comunicação SmartLink 

Image Added

...

Aviso
titleIMPORTANTE

Inserir a configuração somente no ambiente que estiver em produção.

Bases de testes que estejam configuradas com o Smartlink utilizando as mesmas credenciais, interceptarão mensagens da fila da mesma forma que a base de produção, fazendo com que a gravação ou retorno dos dados sejam executados na base de testes. 

...

Para utilizar a rotina de importação automática são necessários as configurações abaixo descritas:

Expandir
titleCadastrando o agendamento "Schedule" (CFGA010)
  1. Acesse, no módulo Configurador (SIGACFG),  Ambiente →  Cadastros →  Schedule →  Agendamentos →  Cadastro →  Botão Incluir:
    Image Removed

  2. Configurar no Schedule o Job FWTOTVSLINKJOB, responsável pela leitura das mensagens que serão enviadas ao SmartLink .

    Image Added

  3. Ao clicar no botão incluir os campos: Código, Usuário, Nome do Usuário, Data, Hora e Ambiente serão preenchidos automaticamente com as informações do acesso propriamente dito, será necessário definir apenas a "Rotina" que no caso deve ser utilizado para Retorno Automático de Extratos Bancários (FINA475), a "Empresa/Filial" que o JOB vai considerar no Processamento e também deve-se informar o "Módulo" que se refere a ROTINA "06 - Financeiro"
    Image Removed
    Informações
    titleImportante

    O botão "Parâmetros" não será utilizado para a rotina FINA475, pois os parâmetros de execução são definidos no Cadastro Parâmetros de Bancos FINA130.

    Após realizado as definições acima, clique em "Recorrência", para definir a recorrência de execução do Job:
    Image Removed
    Defina em qual momento e quantas vezes será realizado o processamento e "Confirme":
    Image RemovedFeito isso, "Confirme" a inclusão do Agendamento:
    Image Removed
    Ainda no Cadastro do Schedule (CFGA010) acesse: Agent > Cadastro > Adicionar Agents Padrão
    Image Removed
    Ao realizar a inclusão de um AGENT padrão, automaticamente o sistema já preenche os dados do ambiente padrão (logado) - IP do AppServer, Porta e Ambiente - que será executado o Job parametrizado anteriormente.
Expandir
titleCadastrando Parâmetros Bancos (FINA130)

Este cadastro tem como finalidade configurar os parâmetros bancários utilizados em diversas operações relacionadas a comunicação bancária.

Expandir
titleConfiguração de Envio de E-mail - Visão Geral

Para a importação de extratos bancários, é necessário gerar uma senha de APP, no caso do G-Mail, primeiro precisamos ativar a verificação em duas etapas:

Image Removed

Após a verificação de duas etapas ativada, é necessário adicionar um APP e gerar uma senha:

Image Removed

Image Removed

Copie a senha gerada e salve em um lugar seguro.

Image Removed

Com a senha de app gerada, abra o Protheus no SIGACFG, ambiente, E-mail/Proxy, Configurar. Coloque o servidor de e-mail, o seu e-mail e a senha do APP gerada anteriormente, em servidor de e-mail necessita de autenticação, coloque sim.

Image Removed

Na próxima tela, apenas clique em avançar sem alterar nada:

Image Removed

Utiliza segurança TLS - SIM

Image Removed

Finalize a configuração de E-MAIL:

Image Removed

...

titleConfigurações de Credenciais para Importação do Extrato via API
Aviso
titleATENÇÃO

Bancos disponíveis para operação de extrato por API:

É possível efetuar a importação do extrato bancário por meio da API (Interface de Programação de Aplicações), eliminando a necessidade de um arquivo para tal procedimento.

Para utilizar o serviço de API, é fundamental configurar as credenciais por meio de um layout Pagar nas configurações de contas do NGF (Novo Gestor Financeiro).

...


Expandir
titleAmbiente Protheus - REST

O sistema irá chamar a api com base nos parâmetros configurados no arquivo appserver.ini conforme modelo abaixo:

Image Added

Para o modelo acima a requisição será direcionada para o endereço :  http://localhost:9090/api/ctb/balance/model1

Inserir também a chamada do serviço REST na seção ON START:

Image Added


Observações: 

  1.  O sistema irá procurar a tag HTTPREST consultar o parâmetro URIs para encontrar a tag que define o caminho do servidor Rest no caso acima:  URL=/rest
  2.  O sistema irá procurar a porta configura na tag HTTPREST para montagem da consulta api.
  3.  Se as tags e parâmetros não existirem ou não estiverem configuradas o retorno para a chamada será de 404 not found pois o sistema não encontrará a api para consulta.
  4.  Em casos onde o security = 1 a api deverá ser adicionada na lista de exceções conforme modelo abaixo.

Image Added

Documentação completa das configurações REST/Server


Abaixo temos o modelo de mensagem enviada ao Smartlink, que ficará disponível para consumo através do Job schedulado no ERP.

O atributo type indica o evento a ser executado no ERP.

O job FWTOTVSLINKJOB identifica uma nova mensagem e faz a chamada à classe PrtBalanRead (CTR040S), responsável pela chamada da API que fará o processamento do Balancete.

  • Acesse o menu Comunicação online;
  • Selecione a opção Configuração de contas;
  • E cadastre um Novo layout.

Novo layout de contaImage Removed

Também é preciso selecionar entre as opções "API Extrato" — evitando que este layout seja considerado na API para registros de títulos a pagar — ou "Ambos", para que o layout seja incluído tanto na operação de extrato quanto no registro via API dos títulos a pagar.

Opções de layoutImage Removed

Após essa etapa de configuração, informe as credenciais de autenticação fornecidas pelo banco, juntamente com o certificado digital correspondente.

Credenciais layoutImage Removed

Para mais informações sobre este processo acesse Contas a pagar (Comunicação bancária online).

Informações
titleImportante:

Certifique-se de que este serviço esteja ativo para a sua conta bancária. Recomenda-se verificar a disponibilidade diretamente com o seu gerente.

Envio de dados deve ser realizado via SmartLink utilizando o Padrão CloudEvents/Modo Estruturado para envio de mensagens no formato Json de acordo com o modelo a seguir :

Aviso
titleParâmetros da propriedade "data" deveram ser enviados conforme a documentação API balancete modelo1.

API balancete modelo1

Bloco de código
languagejava
titleJson de envio balancete contábilsolicitação do Balancete Contábil
collapsetrue
{
    "specversion": "1.0",
    "type": "PrtBalanRead",
    "tenantId": "d87804f9-xxxx-xxxx-9393-fe9ef0d13c10", /// tenant do cliente   
    "generatedOn": "2021-06-08T15:18:08.367574Z",
	"id": "CODIGO IDENTIFICADOR DA MENSAGEM",
    "data": {
        "CNPJ":"53113791",
        "DATA_INICIAL": "01/01/2023",
        "DATA_FINAL": "31/12/2023", 
    }
}

...

Bloco de código
languagejava
titleExemplo de resposta
collapsetrue
{
    "specversion": "1.0",
    "time": "2022-10-18T11:04:03-03:00",
    "type": "PrtBalanResp",        
	"tenantId": "d87804f9-xxxx-xxxx-9393-fe9ef0d13c10", /// tenant do cliente  
 	"id": "CODIGO IDENTIFICADOR DA MENSAGEM",
    "data": {
    	"items": [
        	{
            	"conta": "CTBXATUC",
            	"condicao_normal": "2",
            	"superior": "",
            	"classe": "2",
            	"natureza": "01",
            	"descricao": "REAL",
            	"saldo_anterior": 0,
            	"debito": 0,
            	"credito": 1600.6,
            	"saldo_atual": 1600.6,
            	"movimento": 1600.6,
            	"conta_referencial": "",
            	"descricao_referencial": ""
        	}
    	],
    "hasNext": false,
    "remainingRecords": 0,
    "po_sync_date": "2023-09-29T19:13:15Z"
} }

...

Bloco de código
languagejava
titleExemplo de resposta com erro
collapsetrue
{
    "specversion": "1.0",
    "time": "2022-10-18T11:04:03-03:00",
    "type": "PrtBalanResp",
	"tenantId": "d87804f9-xxxx-xxxx-9393-fe9ef0d13c10", /// tenant do cliente   
 	"id": "CODIGO IDENTIFICADOR DA MENSAGEM",
    "data": {
		"error":"Host not found."
    } 
}

OBS: Erro: não foi encontrado servidor Rest, verifique se o serviço Rest foi iniciado.

Os campos e parâmetros devem ser passados conforme padrão Padrão CloudEvents/Modo Estruturado . O conteúdo da propriedade data:{} deve ser enviado conforme documentação: documentação API balancete modelo1.

O sistema irá chamar a api com base nos parâmetros configurados no appserver.ini conforme modelo abaixo:

Image Removed

para o modelo acima a requisição será direcionada para o endereço :  http://localhost:9090/api/ctb/balance/model1

Observações: 

  1.  O sistema irá procurar a tag HTTPREST consultar o parâmetro URIs para encontrar a tag que define o caminho do servidor Rest no caso acima:  URL=/rest
  2.  O sistema irá procurar a porta configura na tag HTTPREST para montagem da consulta api.
  3.  Se as tags e parâmetros não existirem ou não estiverem configuradas o retorno para a chamada será de 404 not found pois o sistema não encontrará a api para consulta.

Importante:

Em casos onde o security = 1 a api deverá ser adicionada na lista de exceções conforme modelo abaixo.

...

Aviso
titleO conteúdo do atributo data:{ } presente na requisição do Balancete, permite que mais parâmetros sejam enviados, para determinar filtros e regras a serem aplicadas na geração do Balancete. Esses parâmetros devem ser enviados conforme detalhados na documentação API balancete modelo1.

API balancete modelo1

Schedule - Como agendar a execução de rotinas

Configuração REST

API - Balancete Modelo 1

  • CT1- Plano de Contas
  • CQ0- Saldo por Conta no Mês
  • CQ1- Saldo por Conta no Dia        
  • CVN - Plano de Contas Referencial
  • CVD - Plano de Contas Referenciais  
  • CTG - Calendário Contábil       

...