Á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. Outras Informações Principais Campos e ParâmetrosDemais Informações
  5. 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 (CTBR040CTR040S) via Smartlink .

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. 

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

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

    Image Added

  3. Feito isso, "Confirme" a inclusão do Agendamento:

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.

Bloco de código
languagejava
titleJson de envio Lançamento contábilsolicitação do Balancete Contábil
collapsetrue
{
     "specversion": "1.0",
     "type": "CT2readXGspPrtBalanRead",
     "tenantId": "c6486a57d87804f9-3447xxxx-461dxxxx-bcdf9393-d66b94226f69fe9ef0d13c10", /// tenant do cliente   
     "timegeneratedOn": "2021-06-08T15:18:08.367574Z",        
     "data":[{ 
			"COD_EMPid":"T1" ,
		 	"CT2_FILIAL":  "D MG 01"CODIGO IDENTIFICADOR DA MENSAGEM",
            "CT2_DATA":"15/04/2023" ,
		  	"ID": "1271",
			"EST":"REV",
			"ITENS":[{
				"CT2_DC" :  "3",
				"CT2_CREDIT":  "CTBXATUC","data": {
            	"CT2_DEBITO"CNPJ":  "CTBXATUD53113791",
				"CT2_VALOR":  1500.60 ,
				"CT2_HIST": "PARTIDA DOBRADA VALOR COM DECIMAL E CONTINUACAO DE HISTORICO",
				"CT2_KEY"DATA_INICIAL":  "IDENTIFICADOR UNICO GESPLAN"01/01/2023",
            	"CT2DATA_ROTINAFINAL": "WFNCASH",			
				"CT2_EMPORI":  "T2",
				"CT2_FILORI":  "M PR 02",
		 		"CT2_CONVER": "1"
			},
			31/12/2023", 
    }
}
Bloco de código
languagejava
titleExemplo de resposta
collapsetrue
{
            "CT2_MOEDLC"specversion":  "011.0",
            "CT2_DC" :  "2",
      "time": "2022-10-18T11:04:03-03:00",
      "CT2_CREDITtype":  "CTBXATUCPrtBalanResp",
               "CT2_KEY
	"tenantId":  "ITEM 1"d87804f9-xxxx-xxxx-9393-fe9ef0d13c10",
 /// tenant do cliente  
      "CT2_TPSALD	"id": "1CODIGO IDENTIFICADOR DA MENSAGEM",
            "CT2_ROTINA"data": "WFNCASH",{
            "CT2_VALOR	"items":  3000 ,[
            "CT2_HIST": "MSEXECCT2 ITEM1 ",	{
            	"CT2_EMPORIconta":  "T2CTBXATUC",
            	"CT2condicao_FILORInormal":  "M PR 02"
        	},
			{
2",
            	"CT2_MOEDLCsuperior":  "01",
            	"CT2_DCclasse" :  "12",
            	"CT2_DEBITOnatureza":  "CTBXATUD01",
            	"CT2_KEYdescricao":  "ITEM 2REAL",
            	"CT2saldo_TPSALDanterior": "1"0,
            	"CT2_ROTINAdebito": "WFNCASH"0,
            	"CT2_VALORcredito":  3000 1600.6,
            	"CT2saldo_HISTatual": "MSEXECCT2 ITEM2 "1600.6,
            	"CT2_EMPORImovimento":  "T2"1600.6,
            	"CT2conta_FILORIreferencial":  "M PR 02",
        	}]
    },
	{ 
			"COD_EMP":"T1" ,
		 	"CT2_FILIAL":  "M SP  01",
    descricao_referencial": ""
        "CT2_DATA":"15/04/2023" ,
 			"ID": "1271",
			"EST":"REV"	, 
			"ITENS":[{
				"CT2_DC" :  "3",
				"CT2_CREDIT":  "CTBXATUC",
            	"CT2_DEBITO":  "CTBXATUD",
				"CT2_VALOR":  5000.50 ,
				"CT2_HIST": "PARTIDA DOBRADA ",
				"CT2_KEY":  "IDENTIFICADOR UNICO",
            	"CT2_ROTINA": "WFNCASH",			
				"CT2_EMPORI":  "T2",
				"CT2_FILORI":  "M PR 02",
		 		"CT2_CONVER": "1"
			}]
	}]
}

OBS: propriedade "data" deverá ser enviado formato array onde cada item desse array deverá conter os dados do lançamento contábil a ser cadastrado.

	}
    	],
    "hasNext": false,
    "remainingRecords": 0,
    "po_sync_date": "2023-09-29T19:13:15Z"
} }

OBS: Caso houver algum erro a propriedade "error" será retornada exFomato de resposta:

Bloco de código
languagejava
titleExemplo de resposta com erro
collapsetrue
{
    "specversion": "1.0",
    "time": "2022-10-18T11:04:03-03:00",
    "type": "CT2respXGspPrtBalanResp",
    	"tenantId": "c6486a57d87804f9-3447xxxx-461dxxxx-bcdf9393-d66b94226f69fe9ef0d13c10",
 /// tenant do "data": [
     cliente    {
			"ID": "1271"
			"ESTid":"REV"	
            "COD_EMP": "T1",
            "CT2_FILIAL": "D MG 01",
  "CODIGO IDENTIFICADOR DA MENSAGEM",
          "CT2_DOC"data": "000004",
            "CT2_KEY": "ITEM 1",
            "error": ""
   {
		"error":"Host not found."
     }
    ]
}

OBS: Caso houver algum erro a propriedade "error" será preenchida informando o motivo do erro no cadastro, nesses casos a propriedade "CT2_DOC" retornará em branco pois o lançamento não foi cadastrado.

03. Outras Informações_

Principais Campos e Parâmetros

Capa do Lote

...

OBS: O código do Lote reservado para os lançamentos contábeis oriundos do Sistema Gesplan para o Protheus é 008950

Itens do Lote

...

** tamanho Default no Protheus 40

...

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       

...

OBS: Para cada capa de lote deve ser enviado 1 ou mais itens.

Card documentos
Informacao** Caso o conteúdo do campo CT2_HIST enviado seja maior que o tamanho campo no Protheus o sistema irá gerar de forma automática, linhas de continuação de histórico (CT2_DC = 4) de acordo com o tamanho do campo CT2_HIST
TituloIMPORTANTE!

04. TABELAS UTILIZADAS

  • CT2- Lançamentos Contábeis
  • CT1- Plano de Contas
  • CTT- Centro de Custo
  • CTH- Classe de Valor
  • CTD - Item Contábil