Páginas filhas
  • DI_Integracao_TOTVS_Colaboracao_2_0_Logix_Obrigacoes_Fiscais

Integração TOTVS Colaboração 2.0 – Logix/ Obrigações Fiscais

Contexto de negócio (Introdução)

Este documento tem por objetivo a definição das especificações e critérios técnicos necessários para a integração entre o ERP LOGIX e a NeoGrid para atender a solução TOTVS Colaboração 2.0.

 

Sistemas Envolvidos

O projeto TOTVS Colaboração 2.0 tem como objetivo a implantação de um modelo único e performático para possibilitar o relacionamento entre os clientes TOTVS que adquirem a solução TOTVS Colaboração.

O TOTVS Colaboração foi lançado em 2010 com a integração da solução ERP x TSS x NeoGrid utilizando Web Services. Em julho de 2014 iniciou-se o projeto de reestruturação da arquitetura utilizada, passando a realizar a integração direta do ERP com a NeoGrid por intermédio da troca de arquivos em diretório filesystem.

 

Integração

O projeto TOTVS Colaboração compreende a integração dos documentos de Emissão de NF-e, Recebimento de NF-e, Emissão de NFS-e, Recebimento de NFS-e, Emissão de CT-e, Recebimento de CT-e, Emissão de MDF-e, Envio de Pedido de Compra, Emissão de Alteração de Pedido de Compra, Recepção de Pedido de Venda, Recepção de Alteração de Pedido de Venda, Envio do Espelho de NF/ASN, Recepção do Espelho de NF/ASN, Envio da Programação de Entrega e Recepção da Programação de Entrega.

Para todos os documentos a serem trafegados na solução TOTVS Colaboração, a mesma solução de integração TOTVS e NeoGrid será utilizada.

Arquitetura de Comunicação com NeoGrid

Na versão 1.0 do TOTVS Colaboração a integração entre ERP e NeoGrid era realizada via WebService com a utilização do TSS como produto fiscal único. Os XMLs eram gerados conforme padrões disponíveis no TSS.

Na versão 2.0, a integração será realizada diretamente entre ERP e NeoGrid, sem o intermédio do TSS. Essa comunicação passa a ser realizada com a utilização de troca de arquivos em diretório filesystem.

Nessa arquitetura a comunicação é realizada por meio da utilização de um ClientEDI que deve ser instalado no cliente, o qual ficará responsável por realizar a comunicação com a NeoGrid.

A integração entre a NeoGrid e a TOTVS tem as seguintes premissas:

  • Solução de integração simples e padronizada para todos os tipos de documentos e ERPs TOTVS, com foco na performance da solução para o cliente final e na agilidade de atendimento para as equipes de suporte;
  • O padrão de comunicação entre os ERPs TOTVS e a NeoGrid será realizada de forma assíncrona com troca de documentos no formato XML em diretórios;
  • Existem dois tipos de integração do ponto de vista dos ERPs: envio de documentos e recebimento de documentos;
  • A NeoGrid deve instalar um aplicativo cliente denominado Client NeoGrid no ambiente de cada cliente;
  • Para cada tipo de documento, todos os ERPs TOTVS devem utilizar o mesmo layout de integração com a NeoGrid;
  • Toda e qualquer alteração futura a ser realizada na solução TOTVS Colaboração deve ser notificada para as equipes NeoGrid e TOTVS, para que a integração continue funcionando corretamente.

Abaixo exemplo de comunicação na nova arquitetura:

 

Escopo

1. Nomenclatura

A nomenclatura dos arquivos nos diretórios, tanto de envio como de retorno, deve seguir a padronização [Tipo do Documento]_[Timestamp]_[Número sequencial].xml, em que:

  • [Tipo de Documento] é o código do tipo de documento
  • [Timestamp] é a data e hora no formato “yyyyMMddHHmmssSSS”
  • [Número sequencial] é um número sequencial de quatro dígitos

Exemplo de nome de arquivo para um documento de emissão de NF-e: “170_20140627154700123_0001.xml” .

Uma exceção à regra anterior é para os retornos de arquivos de Emissão (NF-e, CT-e, NFS-e, MDF-e e MD-e) que possam ter mais de um retorno. Estes arquivos devem seguir a padronização abaixo:

  •  [Nome do arquivo original] é o nome do arquivo que o ERP gerou no envio;
  •  [Número sequencial] é um número sequencial de quatro dígitos, cujo objetivo é garantir a entrega de todos os arquivos com mais de um retorno.

Exemplo de nome de arquivo para um documento de emissão de NF-e:

  • Arquivo enviado pelo ERP: “170_20140627154700123_0001.xml”;
  • Primeiro retorno enviado pela NeoGrid:  “170_20140627154700123_0001_0001.xml”;
  • Segundo retorno enviado pela NeoGrid: “170_20140627154700123_0001_0002.xml”.

Nos processos de emissão, todos os arquivos retornados para o ERP, inclusive o primeiro retorno, sempre devem ter o código sequencial criado pela NeoGrid e o ERP sempre deve considerar a informação antes do código sequencial como sendo o nome do arquivo original. 

Os retornos de arquivos enviados pela TOTVS nos processos de Emissão (NF-e, CT-e, NFS-e, MDF-e e MD-e), terão o mesmo nome, com o acréscimo do sequencial mencionado anteriormente. Ou seja, o arquivo enviado pela TOTVS e o retorno disponibilizado pela NeoGrid terão a mesma nomenclatura para facilitar o processo de atualização no ERP.

O envio de documentos pelo Client NeoGrid possui um controle de documentos duplicado. Arquivos enviados pelos ERPs TOTVS com o mesmo nome serão rejeitados.

A solução NeoGrid está preparada para os ERPs enviarem os arquivos abaixo. Todos os arquivos de emissão devem ser gerados pelo ERP sem a assinatura digital.

 

Projeto

Fluxo

Código EDI

Leiaute

CT-e Emissão

Emissão de CT-e

199

XML Sefaz (cte_v9.99.xsd)

CT-e Emissão

Evento de Cancelamento de CT-e

200

XML Sefaz (evCancCTe_v9.99.xsd)

CT-e Emissão

Inutilização de numeração de CT-e

201

XML Sefaz (inutCTe_v9.99.xsd)

CT-e Emissão

Consulta situação atual de CT-e

208

XML Sefaz (consSitCTe_v9.99.xsd)

CT-e Emissão

Consulta situação da Sefaz CT-e

209

XML Sefaz (consStatServCTe_v9.99.xsd)

CT-e Emissão

Emissão de CC-e de CT-e

385

XML Sefaz (evCCeCTe_v9.99.xsd)

CT-e Recebimento

Recebimento de CT-e

165

XML Sefaz (procCTe_v9.99.xsd)

CT-e Recebimento

Recebimento de cancelamento de CT-e

210

XML Sefaz (procCancCTe_v9.99.xsd)

CT-e Recebimento

Recebimento de evento de cancelamento de CT-e

384

XML Sefaz (procEventoCTe_v9.99.xsd)

CT-e Recebimento

Recebimento de CC-e de CT-e

382

XML Sefaz (procEventoCTe_v9.99.xsd)

MDF-e Emissão

MDF-e – Emissão

360

XML Sefaz (mdfe_v9.99.xsd)

MDF-e Emissão

MDF-e – Encerramento

361

XML Sefaz (evEncMDFe_v9.99.xsd)

MDF-e Emissão

MDF-e – Cancelamento

362

XML Sefaz (evCancMDFe_v9.99.xsd)

MDF-e Emissão

MDF-e – Inclusão de Condutor

420

XML Sefaz (evIncCondutorMDFe_v9.99.xsd)

NF-e Emissão

Emissão de NF-e

170

XML Sefaz (nfe_v9.99.xsd)

NF-e Emissão

Evento de Cancelamento de NF-e

171

XML Sefaz (envEventoCancNFe_v9.99.xsd)

NF-e Emissão

Inutilização de numeração de NF-e

172

XML Sefaz (inutNFe_v9.99.xsd)

NF-e Emissão

Emissão de CC-e de NF-e

301

XML Sefaz (envCCe_v9.99.xsd)

NF-e Emissão

Consulta situação atual de NF-e

206

XML Sefaz (consSitNFe_v9.99.xsd)

NF-e Emissão

Consulta situação da Sefaz NF-e

207

XML Sefaz (consStatServ_v9.99.xsd)

NF-e Emissão

Consulta cadastro do contribuinte

197

XML Sefaz (consCad_v9.99.xsd)

NF-e Recebimento

Recebimento de NF-e

143

XML Sefaz (procNFe_v9.99.xsd)

NF-e Recebimento

Recebimento de cancelamento de NF-e

169

XML Sefaz (procCancNFe_v9.99.xsd)

NF-e Recebimento

Recebimento evento de cancelamento de NF-e

339

XML Sefaz (procEventoNFe_v9.99.xsd)

NF-e Recebimento

Recebimento de CC-e de NF-e

302

XML Sefaz (procEventoNFe_v9.99.xsd)

NF-e Recebimento

Recebimento de NF-e pelo transportador

198

XML Sefaz (procNFe_v9.99.xsd)

NF-e Recebimento

Processamento retroativo de XML

337

XML Sefaz (procNFe_v9.99.xsd)

MD-e

MD-e - Consulta NF-e Destinada

338

XML Sefaz (consNFeDest_v9.99.xsd)

MD-e

MD-e – Manifestação do destinatário

320

XML Sefaz (envConfRecebto_v9.99.xsd)

MD-e

MD-e – Download de XML

336

XML Sefaz (downloadNFe_v9.99.xsd)

NFS-e Emissão

Emissão de NFS-e

203

XML padrão NeoGrid 2.01

NFS-e Emissão

Cancelamento de NFS-e

204

XML padrão NeoGrid 2.01

NFS-e Recebimento

Recebimento de NFS-e

319

XML padrão NeoGrid 2.01

 

2. Padrão do documento XML

Todos os arquivos de emissão, com exceção da NFS-e, devem seguir o leiaute padrão definido pela Sefaz, sem a assinatura digital. Por não possuir um leiaute único para todos os municípios e para que seja possível emitir a NFS-e tanto pelo TSS quanto pelo TOTVS Colaboração, foi definido em conjunto um leiaute único a ser adotado por todos os ERPs.

3. Validação de Schema

Por ser uma ferramenta utilizada apenas para a transmissão dos documentos, a validação de schema dos documentos fiscais serão realizados no ambiente da NeoGrid. Caso o arquivo não seja validado pelo schema a NeoGrid irá retornar a rejeição.

Importante: A validação realizada pela NeoGrid não contempla estrutura do arquivo XML, ou seja, caso o XML possua, por exemplo, uma literal que deveria estar entre aspas sem esse caracter o XML não será processado pela NeoGrid e o documento não irá retornar. Nestes casos é necessário entrar em contato com a NeoGrid para verificar o motivo do não processamento do documento.

Exemplo de XML correto:

Exemplo de XML errado:

4. Padrão de Comunicação e Assinatura Digital

O padrão de comunicação utilizado entre ERP e NeoGrid será por troca de arquivos em diretórios filesystem com a utilização do Client da NeoGrid.

O ClientEDI é um JOB em JAVA onde é parametrizado o tempo de monitoramento do diretório e do WebEDI. Ele acessa o WebEDI utilizando WebServices onde é utilizado um método para envio e outro para buscar as mensagens processadas.

Dentro do diretório de instalação do Client existem duas subpastas denominadas IN e OUT, onde todos os arquivos a serem integrados devem ser depositados.

  • OUT: diretório onde os ERPs devem depositar os arquivos para envio para a NeoGrid
  • IN: diretório onde os ERPs devem ler os arquivos recebidos da NeoGrid

No ERP LOGIX existirá um JOB responsável por monitorar a subpasta IN e processar o retorno de todos os arquivos que forem depositados neste diretório.

O certificado digital do cliente deve ser enviado para a NeoGrid para que seja realizada a assinatura digital dos documentos e efetuado a transmissão para a Sefaz. A exceção para este processo é a solução IN House do TOTVS Colaboração.

Para clientes que utilizam tanto TSS quanto TOTVS Colaboração 2.0 (ambiente misto), nos processos realizados exclusivamente pelo TSS a assinatura digital continua sendo realizada pelo TSS.

 

Instalação/Atualização

Logix

LOG00086 (Manutenção de Parâmetros)

No LOG00086 em Gestão Fiscal  > TOTVS Colaboração > Versão 2.00 (Nova rotina)  deverá ser configurado o parâmetro:

  • Tipo de Ambiente TOTVS Colaboração (tipo_ambiente_tc_2)

Este parâmetro irá indicar o tipo de ambiente que será utilizado no TOTVS Colaboração versão 2.00. Esta parametrização foi desenvolvida para evitar o envio de documentos do ambiente de testes na Sefaz de produção.

Para a criação desse parâmetro é necessário a execução do conversor OBF00372.cnv.

1 – Homologação;

2 – Produção.

JOB de Integração Totvs Colaboração

Foi desenvolvido um JOB de integração no LOGIX, o qual será responsável por processar todos os documentos gravados na subpasta IN do Client NeoGrid.

Exemplo do diretório do Client NeoGrid: “C:\WebEDIMercadorClient_V4.1_WinService\bin\IN\”.

O JOB não foi desenvolvido utilizando o JOB0003, pois este não pode ser configurado com um tempo de execução menor do que 1 minuto. Dessa forma, foi desenvolvido um JOB exclusivo e paliativo para o TOTVS Colaboração. O Framework irá desenvolver uma solução padrão no chamado TPYO51.

Para melhor performance o JOB foi estruturado de forma a trabalhar com várias threads em paralelo, sendo uma thread para cada produto do Colaboração (NF-e, NFS-e, CT-e, Recebimento etc.).

Apenas as threads referentes aos produtos configurados para utilização por TOTVS Colaboração 2.00 (VDP10076) são ativadas para execução .

Cada thread irá buscar os arquivos correspondentes ao produto que está sendo processado, utilizando como filtro o código identificador definido pela NeoGrid. Exemplo: Para NF-e serão filtrados todos os arquivos iniciados por “170”.

Em cada thread há a chamada de função específica responsável por abrir os arquivos, buscar as informações de retorno necessárias, atualizar a tabela de monitoramento obf_monitor_tc e mover o arquivo. Quando os arquivos forem processados com sucesso eles serão movidos para a pasta correspondente ao produto que está sendo processado, já com o nome padrão que utilizamos atualmente. Caso o arquivo esteja com problemas ou não seja encontrado um documento correspondente ao ERP (no caso de emissão de documentos), estes serão movidos para o diretório de erros configurado no LOG1120, conforme explicaremos abaixo.

No caso de recebimento, onde não há a necessidade de efetuar uma solicitação prévia à NeoGrid, as funções referentes ao Recebimento de Documentos e EDI Mercantil irão monitorar a subpasta IN, processar os arquivos e movê-los para os diretórios correspondentes ao armazenamento SUP34201 renomeando-os com o nome padrão.

Ao instalar este JOB, além da pasta appserver padrão do LOGIX também deve ter uma pasta appserver_job onde estarão os arquivos necessários para a execução do JOB de integração do TOTVS Colaboração. Tanto na pasta appserver quanto na appserver_job, os parâmetros LICENSECOMPANYID e LICENSEUSERID devem estar configurados e em ambos os arquivos a configuração deve ser igual. Isso se faz necessário para que seja possível buscar, no LOGIX e no JOB, o mesmo caminho de instalação do Client NeoGrid. Estes parâmetros correspondem ao código da empresa e ao código do usuário padrão, respectivamente e serão utilizados no LOG1120.

 

No arquivo TotvsAppServer.ini, da pasta appserver_job, deve existir os seguintes comandos:

;******** JOBS ********;

[logixscheduler]

VerifyJobInterval=3               (Intervalo entre a execução do JOB, em segundos)

LICENSECOMPANYID=34   (Código da empresa padrão. Deve ser igual ao informado no .ini do LOGIX)

LICENSEUSERID=admlog   (Código do usuário padrão. Deve ser igual ao informado no .ini do LOGIX)

 

[ONSTART]

Jobs=4GLJOB1

 

[4GLJOB1]

Environment=Logix1002tORA34

Main=jobTotvsColab           (Deve ser utilizado sempre a denominação ‘jobTotvsColab’)

 

No arquivo totvsprofile.pro, da pasta appserver_job, pode ser parametrizado a geração do debug.

Para ativar o debug o parâmetro logix.debug deve estar preenchido com 1. (logix.debug = 1).

A geração do debug pode ser ativada por thread (recomendado). Neste caso, apenas as threads que estiverem com o valor igual a 1 irão gerar o debug.

Ao mudar o parâmetro não há necessidade de reiniciar o JOB.

 

logix.debug = 1                                (1- indica que o modo debug está ativo, 0 - indica que não está ativo o debug)

logix.source.obf90001.debug = 0    (1-ativa o debug da thread da NF-e/CC-e/Cancelamento/Inutilização)

logix.source.obf90002.debug = 0    (1-ativa o debug da thread da MDF-e)

logix.source.obf90003.debug = 0    (1-ativa o debug da thread da MD-e)

logix.source.obf90004.debug = 0    (1-ativa o debug da thread da Consulta da Chave de Acesso)

logix.source.sup13429.debug = 0    (1-ativa o debug da thread do Recebimento e EDI Mercantil)

logix.source.obf90006.debug = 0    (1-ativa o debug da thread da NFS-e)

logix.source.tms90001.debug = 0    (1-ativa o debug da thread do CT-e)

logix.source.obf90010.debug = 0     (1-ativa o debug do JOB de processamento manual)

logix.source.obf90000.debug = 0     (1-ativa o debug do JOB principal)

 

LOG1120 – Caminhos de Relatórios por Usuário

No LOG1120 devem ser informados :

  • diretório onde o Client NeoGrid está instalado;
    Informar o caminho completo até a pasta anterior as pastas OUT/IN onde o Client está instalado.     
    No campo Sistema do Programa informar a literal “TCI” (TOTVS Colaboração Integração).
  • diretório onde os arquivos com erro serão movidos.
    Informar um diretório onde deverão ser movidos os arquivos da pasta IN que não forem processados (arquivo corrompido, documento não encontrado na  base de dados etc).
    No campo Sistema do Programa deve ser informada a literal “TCE” (TOTVS Colaboração Erros).

Importante:
Utilizar a empresa padrão informada no TotvsAppServer.ini do JOB, no parâmetro LICENSECOMPANYID e o usuário padrão informando no parâmetro LICENSEUSERID, ambos no grupo [logixscheduler].

VDP10076 – Configuração Documentos Eletrônicos 

  • Na tela de Configuração Inicial do VDP10076 é necessário assinalar a campo Utilizar TOTVS Colaboração e também no campo Versão TOTVS Colaboração selecionar a opção “2.00”.
  • Na tela do TOTVS Colaboração é necessário os produtos do TOTVS Colaboração que estão sendo utilizados.
    Importante: Selecoine somente os produtos que realmente serão utilizados para otimizar o funcionamento do JOB de integração do TOTVS Colaboração.

Quando a empresa utilizar somente a solução TOTVS Colaboração 2.00 não há necessidade de configuração da tela Certificado Digital e Configuração e-mail.

 

Fluxo das Informações

Abaixo será descrito os serviços disponíveis pelo TOTVS Colaboração 2.0 e o fluxo básico de comunicação. 

Na emissão do documento, e ao selecionar a opção de menu Transmitir, o programa gerará o arquivo XML no diretório configurado nos respectivos programas de configuração do documento no diretório de saída (OUT), no leiaute padrão da Sefaz e com a nomenclatura definida pela NeoGrid.

Produto

Programa de Emissão

Programa de Parametrização

NF-e

OBF40000

VDP10076

CC-e

OBF40013

VDP10076

MDF-e

OBF50200

OBF50250

NFS-e

OBF50000

VDP10076

MD-e

OBF50100

VDP10076

Recebimento de NF-e/NFS-e/CT-e

SUP34204(Recebimento)/SUP34203(Envio)

SUP34201

NFe - Nota Fiscal Eletrônica

No XML da NF-e deve estar informado o campo de versão do layout (2.0 ou 3.10 por exemplo), pois de acordo com a versão informada será realizado o envio para o ambiente correspondente da Sefaz. No NeoGrid é necessário configurar qual a versão do leiaute o cliente utiliza. Ou seja, se estiver configurado para trafegar versão 3.10 e o NeoGrid receber uma NF-e com versão 2.0, o documento será rejeitado.

O Client NeoGrid lê o arquivo do diretório de saída (OUT) e envia para a NeoGrid. O NeoGrid NF-e realiza a pré-validação da mensagem XML com base nos schemas da Sefaz, a assinatura digital do XML, associação a um lote e envio das informações à Sefaz. O processo de envio de NF-es é assíncrono por definição do projeto, ou seja, a realização do envio de uma NF-e à Sefaz não recebe a autorização de uso no mesmo instante.

O NeoGrid NF-e controla automaticamente a busca pelo resultado do processamento dos lotes de NF-e na Sefaz. Ao receber o resultado, os retornos são disponibilizados pelo Client NeoGrid no diretório para consumo pelo ERP.

O JOB de integração monitora automaticamente o diretório de entrada (IN) do Client NeoGrid. Quando houver documentos a serem processados, estes serão lidos para buscar as seguintes informações:

  • chNFe: Chave de Acesso da NF-e.
  • nProt: Número do Protocolo informado pela Sefaz para a NF-e.
  • dhRecbto: Data e Hora de Recebimento.
  • cStat: Código que informa o status da NF-e que retornou da Sefaz ou da solução NeoGrid NF-e no caso de uma pré-validação ou status intermediário.
  • xMotivo: Descrição relacionada ao código de status retornado no arquivo.

Quando os documentos forem processados com sucesso serão atualizadas as tabelas de Nota Fiscal Eletrônica (obf_nf_eletr) e de Monitoramento do Totvs Colaboração (obf_monitor_tc) e os arquivos serão renomeados para o padrão Logix (chave de acesso + ‘-nfe_vis.xml) e movidos para o diretório configurado no VDP10076 (aba NF-e).

Quando não for possível processar o documento (arquivo corrompido, documento não encontrado no banco de dados), o arquivo será movido para o diretório de erros. Arquivos que não iniciarem com os códigos dos documentos processados pelo TOTVS Colaboração não serão processados.

 

Anexos

Tabelas criadas para o projeto

Para o desenvolvimento desse projeto foram criadas/alteradas as seguintes tabelas: 

  • obf_par_totvs_colab: tabela de parâmetros para o TOTVS Colaboração
  • obf_monitor_tc: tabela de monitoramento das emissões do TOTVS Colaboração (Fiscal)
  • obf_retorno_consulta_tc: tabela de monitoramento da Consulta da chave de Acesso
  • sup_audit_arq_xml: tabela de monitoramento do recebimento de documentos pelo TOTVS Colaboração (Suprimentos)

Para criação/atualização das tabelas é necessário executar o conversor OBF00374.cnv, o qual será liberado no chamado TPZGSF

Principais diferenças entre as formas de integração do TOTVS Colaboração

Rotina

TSS

Neogrid

Emissão NF-e

Leiaute SEFAZ

Leiaute SEFAZ

Cancelamento NF-e

Método TSS

Leiaute evento SEFAZ

Inutilização NF-e

Método TSS

Leiaute SEFAZ

Consulta Chave Acesso

Síncrono

Assíncrono

Contingência NF-e

Método NFeIdClean

Não possui, será reenviado o documento com outra forma de emissão.

Emissão MDF-e

Leiaute SEFAZ

Leiaute SEFAZ

Cancelamento MDF-e

Método TSS

Leiaute evento SEFAZ

Emissão CC-e

Leiaute SEFAZ

Leiaute SEFAZ

Encerramento MDF-e

Método TSS

Leiaute evento SEFAZ

Sincronização MD-e

Síncrono

Assíncrono

Manifestação

Síncrono

Assíncrono

Manifestação (Download do XML)

Implementado

Não implementado

Emissão NFS-e

Leiaute Antigo e Novo (versão 2.37)

Leiaute Novo (precisa saber o modelo da prefeitura)

Testes

Para o desenvolvimento desse projeto foram disponibilizados CNPJs fictícios para que todas as marcas realizassem os testes necessários para a liberação do projeto.

Esses CNPJs fictícios são utilizados apenas para testes com o ambiente de simulação da NeoGrid, ou seja, os documentos não são efetivamente enviados para a Sefaz e sim para um simulador.

Para realização dos testes de algumas funcionalidades como por exemplo MD-e e Contingência, os testes podem ser realizados somente com um CNPJ oficial.

Quando houver necessidade de alteração de configuração de algum dos CNPJs oficiais da TOTVS, é importante validar essa alteração com as demais marcas.

Importante: Entrar em contato com a equipe de TSS-SP, pois atualmente eles gerenciam essas alterações.