Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Este documento tem por objetivo definir, especificar e explanar sobre os critérios técnicos necessários para integração entre os sistemas de controle empresarial (ou qualquer outro software desejado) e o sistema TOTVS Automação Fiscal.

Para que se torne mais efetivo o entendimento deste documento é altamente recomendável que seja acessado o link abaixo para conhecimento de todo o escopo do produto:

TAF Home

Índice

Contexto de negócio

O TAF ( TOTVS Automação Fiscal ) foi criado com o objetivo de consolidar dados e layouts, a fim de fornecer recursos de validação e consistências desses dados para posterior envio as plataformas governamentais.

Este documento visa fornecer as especificações técnicas para que os softwares de gestão possam iniciar integração com o TAF.

 

Modelo Operacional

De forma resumida existem três modelos de integração disponíveis para integraçãoExistem dois modelos de integração disponíveis para integração com o TAF, a integração Online e a integração Banco a Banco, conforme abaixo:

  1. Integração Online:
    Neste cenário o ERP envia as informações em real time para o TAF, ou seja, no momento em que o usuário confirma a operação no ERP o TAF já é atualizado automaticamente. 
    Este cenário somente é disponível para quando o ERP utilizar a mesma base (Dicionário de Dados/RPO) do produto TAF. 

  2. Integração Banco a Banco:
    Neste cenário utiliza-se conexão banco-a-banco para realizar a integração das informações. Este conceito utiliza a própria ferramenta DBAcces/TopConnect. Com isso, a aplicação grava em uma tabela compartilhada e sob seu domínio, ou seja, no mesmo database, o XML criado por sua rotina de integração. Após gravá-lo, o TAF através de suas rotinas de monitoramento, processará os XMLs disponíveis e transportará para uma tabela de controle dentro de seu ambiente de processamento (TAF).

 

 

Sistemas Envolvidos

Qualquer ERP( Totvs e não Totvs ) é elegível de integração com o TAF, basta desenvolver a mensagem de integração baseada no Layout Único de Integração.

Para geração do E-Social o layout de integração com o TAF é o mesmo Layout disponibilizado pela Receita Federal e pode ser encontrado na página abaixo:

Layout Taf - eSocial


Integração

Layout Único de Integração. do TAF tem como objetivo possuir a maior quantidade de informações para a geração das mais variadas obrigações acessórias, ou seja, o Layout foi elaborado de forma lógica, garantindo que de apenas uma integração diversas obrigações possam ser geradas dentro do TAF.

Além do Layout Único de Integração existe também escopos onde o TAF utiliza o próprio Layout da obrigação disponibilizada pelo Fisco para integração com os ERP´s, como por exemplo o e-Social.

 

Abaixo temos uma tabela demonstrando quais escopos utilizam o Layout Único do TAF e quais utilizam o próprio Layout da Receita.

 

Escopo
Layout Único
Layout da Receita

Informações Fiscais ( Ex: Sped Fiscal )

SimNão

Informações Contábeis ( Ex: Escrituração Contábil Fiscal )

SimNão

Informações Trabalhistas ( Ex: E-Social )

NãoSim


Tendo em mente a tabela acima vamos detalhar agora os modelos de integração existentes:

  1. Integração Online:
    Neste modelo de integração o ERP irá utilizar uma API disponibilizada pelo TAF que será a responsável por ler o conteúdo da mensagem enviada, interpretar e gravar as informações no banco de dados retornando ao ERP caso ocorra algum problema, todas as funções disponíveis para a integração Online estão disponíveis na página abaixo

  2. Integração Banco a Banco:

Neste modelo de integração o ERP irá gravar a mensagem de integração em uma tabela compartilhada do seu banco de dados e o TAF irá realizar a leitura dessa informações para integração, conforme abaixo:

 

I. Conhecendo a tabela compartilhada:

A tabela compartilhada é criada após a execução da Wizard Inicial do TAF( Sempre executada no primeiro acesso ao TAF ), no banco do ERP seu nome será TAFST1, e ela possui os seguintes campos:

 

  • TAFFIL (Caracter): Código da Empresa/Filial do ERP, o código informado nesse campo depois será amarrado a filial do TAF que receberá as informações na integração;
  • TAFCODMSG (Caracter): Informa o tipo da mensagem que será gravada na linha, podendo ser 1 para arquivo texto ou 2 para XML;
  • TAFSEQ (Caracter): Quando a mensagem enviada superar 1MB, deve ser quebrada em duas linhas na tabela, nesse cenário esse campo deve ser incrementado com um sequencializador, iniciando em '001';
  • TAFTPREG (Caracter): Nome do Layout que será integrado, podendo ser tanto do Layout Totvs quando o nome do próprio registro de acordo com o Layout da Receita Federal
  • TAFKEY (Caracter): Chave do registro, a ser gerada de acordo com regra gerada pelo ERP para posterior recuperação da informação;
  • TAFMSG (Caracter): Mensagem a ser enviada para o TAF
  • TAFSTATUS (Caracter): Status do registro na tabela, sempre que gravado pelo ERP deve ser gravado como "1", o TAF seta para "2" quando o registro já foi integrado;
  • TAFPRIORIT (Caracter): Prioridade de processamento do registro
  • TAFSTQUEUE (Caracter): Status do registro na fila de processamento

 

Os demais campos são de controle do TAF


II. Exemplo da tabela TAFST1 populada:

 

Regra de Execução da Integração para integrações que não utilizam o Layout Totvs

Quando é enviado para o TAF um XML do eSocial, por exemplo, o mesmo é submetido a uma regra que define se a operação será realizada ou não dentro do TAF, sempre que o retorno for negativo a Origem receberá um retorno com o erro, seja via gerenciador de integração ( Integração Banco a Banco ) ou um array com os erros encontrados ( Integração OnLine )

Acesse a página abaixo para mais detalhes do comportamento da integração para o E-Social:

Comportamento da Integração TAF - eSocial

 

Regra de Execução da Integração para integrações que utilizam o Layout Totvs

Nessa integração o TAF sempre verifica o campo TAFKEY, caso seja uma TAFKEY já enviada previamente o TAF realiza o Replace do cadastro no TAF, caso contrário realiza a inclusão da informação.

sempre que ocorrer algum problema na integração a Origem receberá um retorno com o erro, seja via gerenciador de integração ( Integração Banco a Banco ) ou um array com os erros encontrados ( Integração OnLine )

Processos automáticos de integração do TAF

Quando utilizada a integração banco a banco o TAF possui alguns JOB´s de processamento automático para realizar o processo de carga dos dados, sendo eles:

TAFAINTG0:

Descrição: Busca as informações na ST1 no ERP e integra para a ST2 (TAF). Alterando o flag desses registros na ST1 (STATUS=2 - Integrados).

TAFAINTG2:

Descrição: Realiza a integração da TAFST2 para as tabelas internas do TAF. Integra as informações mesmo com inconsistências alimentando o gerenciador de integração

TAFAINTG3:

Descrição: Rotina que varre a base de dados procurando as inconsistências para apresentá-las no monitor de integrações.

 

Para maiores informações de como realizar a configuração dos Jobs de Integração acesse o lonk abaixo:

06. Efetue uma integração

 

 

API de Integração

Sistema Protheus (Online):

Introdução

Para realizar a integração nativa eSocial do Protheus com o TAF, deverá ser utilizada uma API onde o principal objetivo é fornecer uma integração online entre as aplicações

 

Modo de Uso

Deverá ser chamada após a validação completa do modelo de dados do ERP. Em termos técnicos, poderá ser chamada após a efetivação da função TudoOk().

 

Exemplo de Uso

Inicialmente deverá ser realizado o desenvolvimento de string no formato XML, exemplo:

A chamada efetiva da API deverá ser efetuada conforme abaixo, e tem como retorno um array de erros ( caso ocorram ):

aErros := TAFPrepInt( cEmpEnv , cFilEnv , cXml , cKey , cTpInteg, cEvento )

 

Introdução

Foi disponibilizada a função TAFGetStat() que possibilita consultar o status de um determinado registro no TAF.

Sintaxe

TafGetStat( cEvento , cChave , cEmpEnv , cFilEnv )

Parâmetros
Parâmetro
Descrição
Obrigatório?
Default
cEvento Evento do eSocial a que se refere o registroSim 
cChave Chave de busca do registro. No caso onde a chave do registro é composta por mais de um campo, os valores devem ser informados separados por ";" (ponto e vírgula).Sim 
cEmpEnv Empresa do registro no ERPNãocEmpAnt
cFilEnvFilial do registro no ERPNãocFilAnt

 

Modo de Uso

Local cStatus := ""

Local cEvento := "S-1010"

Local cChave := "RUB_001"

cStatus := TAFGetStat( cEvento, cChave )

 

Os retornos possíveis são:

  • "-1": Registro não encontrado na base do TAF
  • " ": Registro encontrado no TAF - não submetido ao processo de validação
  • "0": Registro encontrado no TAF - válido
  • "1": Registro encontrado no TAF - inválido
  • "2": Registro encontrado no TAF - transmitido e aguardando retorno do Governo
  • "3": Registro encontrado no TAF - transmitido e não autorizado ( retornado com erro )
  • "4": Registro encontrado no TAF - transmitido e autorizado
  • "6": Registro encontrado no TAF - pendente de exclusão no Governo ( S-3000 )
  • "7": Registro encontrado no TAF - exclusão validada pelo Governo ( S-3000 )

 

Outros Sistemas:

 

 

 

Particularidade de Integração do eSocial

 

Múltiplas Rúbricas

Introdução

Integração do evento S-1010 (Rubricas) considerando o código identificador da tabela de rubricas no ERP origem.

Funcionamento 

Foi criado o cadastro Atualizações -> Cadastros eSocial -> Identificadores de Rubrica, onde é armazenado o código identificador da tabela enviado pelo ERP e gerado um código único e sequencial (ID). Esse código sequencial será utilizado pelo TAF na tag <ideTabRubr> do XML a ser transmitido ao RET .

Isso possibilita a integração de rubricas onde o código identificador da tabela no ERP é maior que 8 caracteres, como previsto no manual do eSocial. 

 

 

1. Objetivo:

Este documento tem como objetivo demonstrar os resultados que devem ser alcançados nos cenários possíveis de manutenção com relação aos eventos do E-Social no TAF, é fundamental e obrigatório que os requisitos entregues estejam respeitando todos os cenários abaixo tanto no modelo de integração quanto manual.

2. Tabela de Resumo das operações:

 
Novo Registro

Evento Corrente:

Incluído

Evento Corrente:

 Alterado

Evento Corrente:

 Excluído

Situação Corrente:
Transmitido

Situação Corrente:

 Não Transmitido

InclusãoExecutaOperação não realizadaOperação não realizadaAnalisar duas próximas colunasExecutaOperação não realizada
AlteraçãoOperação não realizadaExecutaExecutaAnalisar duas próximas colunasOperação não realizadaExecuta
ExclusãoOperação não realizadaExecutaExecutaOperação não realizada  

***Seguindo com o documento temos maiores detalhes sobre cada uma das operações citadas na tabela acima***

3. Realizando uma nova inclusão no TAF:

    • Registro não existe no TAF:
           - Deve ser realizada a inclusão do registro;

    • Situação do Registro igual a "I" (Incluído):     
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
             "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

    • Situação do Registro igual a "A" (Alterado):     
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
             "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF";

    • Situação do Registro igual a "E" (Excluído):     

           Registro já Transmitido ao RET:

                - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" 

                  deste documento.

           Registro não transmitido ao RET:
               - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem:

                "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

4. Realizando uma nova alteração no TAF:

    • Registro não existe no TAF:
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
            "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

    • Situação do Registro igual a "I" (Incluído):     
           - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" deste documento.

    • Situação do Registro igual a "A" (Alterado):     
           - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" deste documento.

    • Situação do Registro igual a "E" (Excluído):     

           Registro já Transmitido ao RET:
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
             "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

           Registro não transmitido ao RET:
           - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" deste documento.

 

5. Realizando uma nova exclusão no TAF: 

    • Registro não existe no TAF:
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
            "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

    • Situação do Registro igual a "I" (Incluído):     
           - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" deste documento.

    • Situação do Registro igual a "A" (Alterado):     
           - Deve ser realizada a operação seguindo os conceitos citados em "Regras Gerais de Integração" deste documento.

    • Situação do Registro igual a "E" (Excluído):     

           Registro já Transmitido ao RET:
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
             "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

           Registro não transmitido ao RET:
           - Não deve ser realizada a integração e no gerenciador deve aparecer a mensagem: 
             "A operação solicitada no XML está em desacordo com o cenário do registro na base do TAF"

6. Regras Gerais de Integração:

Quando o registro já existente no TAF não foi transmitido ao RET, ou seja, seu campo de Status é diferente de 2,3 e 4 a operação

deve ser realizada normalmente na base de dados, caso já tenha sido enviado deve ser realizada a operação seguindo as regras

abaixo:


**Duplicar o registro, mantendo o atual e gerando uma nova linha na tabela com as seguintes regras:**

Protocolo = O novo registro gerado deve ter esse campo vazio

Penúltimo Protocolo = O novo registro deve ter nesse campo o valor do protocolo do registro anterior com a mesma chave

Versão = O novo registro deve ter uma nova versão

Versão Anterior = O novo registro deve ter o valor da versão do registro anterior com a mesma chave

Evento = O novo registro deve ter a operação que foi realizada

Ativo = O novo registro deve ter a situação igual a 1 ( Ativo ) e setar o registro anterior com a mesma chave para 2 ( Inativo ).