Árvore de páginas

Versões comparadas

Chave

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

Índice

Índice
maxLevel5outlinetrue10
indent8.1.1
absoluteUrltrue
exclude.*ndice
stylenone

Objetivo

...

Conceito

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
deck

01.CONCEITO

id

Âncora

Configurações Iniciais
Card
labelPré-requisitos
conceito
conceito

A integração via APIs REST permite a comunicação eficiente e escalável entre diferentes sistemas ou aplicativos, utilizando métodos HTTP padrão como GET, POST, PUT e DELETE. Essas APIs seguem o padrão REST, facilitando o compartilhamento de dados e funcionalidades entre os sistemas.

Cada método HTTP tem um propósito específico:

  • GET: Utilizado para consultar dados no servidor sem modificar nada, como, por exemplo, uma consulta de cadastro.
  • POST: Utilizado para enviar dados ao servidor para serem processados ou armazenados, como, por exemplo, a inclusão de um cadastro.
  • PUT: Utilizado para atualizar dados no servidor, como, por exemplo, a alteração de um cadastro.
  • DELETE: Utilizado para remover dados do servidor, como, por exemplo, a exclusão de um cadastro.
Informações
titleObservação

Por padrão, para consultar um determinado dado do servidor através do método GET, é necessário informar a chave primária (PK) do registro do modelo, codificada em base64. Caso contrário, se a chave primária não for informada, os registros serão retornados conforme a paginação padrão.

Exemplo:

"RCBNRyAwMSBEIE1HIDAxIDAwMDAwMDAwMDAwMDAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==" - representa a chave primária do registro da tabela da rotina em base64

http://localhost:8085/rest/FwModel/TAFA053/RCBNRyAwMSBEIE1HIDAxIDAwMDAwMDAwMDAwMDAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==

Para atualizar um determinado dado do servidor através do método PUT, é necessário informar a chave primária (PK) do registro do modelo, codificada em base64. Nesse caso, a chave primária é obrigatória para realizar a alteração; caso contrário, a operação será entendida como uma inclusão de novo registro.

Para excluir um determinado dado do servidor através do método DELETE, também é necessário informar a chave primária (PK) do registro do modelo, codificada em base64.

Para incluir dados no servidor através do método POST em outras filiais, é importante o uso do tenantId no header da requisição.

Estrutura de Envio

A estrutura do JSON de envio (body) não precisa ser informada na requisição para os métodos GET e DELETE; basta consumir a API.

No entanto, para os métodos POST e PUT, o JSON deve ser enviado no seguinte formato básico

02. API REST DISPONÍVEIS

Após configurar o REST do Protheus, é possível verificar todas as APIs REST disponíveis seguindo os passos abaixo:

  1. Acesse o endereço configurado do REST. No exemplo, foi configurado como: http://localhost:8080/rest.
  2. Procure pelo serviço FWMODEL.
  3. Clique em /rest/fwmodel.catalog.

Image Added

Image Added

Para consumir uma API REST disponível no módulo TAF (TOTVS Automação Fiscal), siga o formato abaixo:

Bloco de código
themeRDark
titleAPI's disponíveis no módulo SIGATAF
http://localhost:8080/rest/FwModel/TAFA053
http://localhost:8080/rest/FwModel/TAFA057
http://localhost:8080/rest/FwModel/TAFA448
http://localhost:8080/rest/FwModel/TAFA535

Onde:

  • http://localhost:8080/rest é o endereço configurado do REST.
  • /FwModel é um segmento fixo indicando o framework.
  • /TAFA053 é o nome da API disponível.

03.ESTRUTURA DE ENVIO

A estrutura do JSON de envio (body) não precisa ser informada na requisição para os métodos GET e DELETE; basta consumir a API.

No entanto, para os métodos POST e PUT, o JSON deve ser enviado no seguinte formato básico:

Âncora
abastsi
abastsi

{ "id": "TAFA057", "operation": 1, "models": [ { "id": "MODEL_C1L", "modeltype": "FIELDS", "fields": [ { "id": "C1L_FILIAL", "order": 1, "value": "D MG 01"
            
}
"id": "MODEL_C1L",
            "modeltype": "FIELDS",
   
{
         "fields": [
                {
                    "id": "C1L_
CODIGO
FILIAL",
                    "order": 
3
1,
                    "value": "
PRD12345
D MG 01"
                },
                {
                    "id": "C1L_
DESCRI
CODIGO",
                    "order": 
4
3,
                    "value": "
PRD-VIA-POST
PRD12345"
                },
                {
                    "id": "C1L_
UM
DESCRI",
                    "order": 
6
4,
                    "value": "
000084
PRD-VIA-POST"
                },
                {
                    "id": "C1L_
TIPITE
UM",
                    "order": 
8
6,
                    "value": "
000010
000084"
                },
                {
                    "id": "C1L_
CODGEN
TIPITE",
                    "order": 
12
8,
                    "value": "
000102
000010"
                },
                {
                    "id": "C1L_
CODSER
CODGEN",
                    "order": 
14
12,
                    "value": "
000045
000102"
                },
                {
                    "id": "C1L_
ORIMER
CODSER",
                    "order": 
21
14,
                    "value": "
000001
000045"
                },
                {
                    "id": "C1L_
ALQICM
ORIMER",
                    "order": 
23
21,
                    "value": "
18.00
000001"
                },
                {
                    "id": "C1L_
DTINCL
ALQICM",
                    "order": 
26
23,
                    "value": "
20221019
18.00"
                },
                {
                    "id": "C1L_
SRVMUN
DTINCL",
                    "order": 
29
26,
                    "value": "
1402
20221019"
                },
                {
                    "id": "C1L_
IDTSER
SRVMUN",
                    "order": 
48
29,
                    "value": "
000016
1402"
                },
         
],
       {
     
"models":
 
[
              
{
"id": "C1L_IDTSER",
                    "
id
order": 
"MODEL_C1M"
48,
                    "
modeltype
value": "
GRID
000016"
,

                
}
   
"optional":
 
1,
        ],
            "
struct
models": [
                
{
                    
"id": "MODEL_C1M
_FILIAL
",
                    "modeltype": "GRID",
                    "
order
optional": 1,
                    
},
"struct": [
                        {
                            "id": "C1M_
DTALT
FILIAL",
                            "order": 
2
1
                        },
                        {
                            "id": "C1M_
HRALT
DTALT",
                            "order": 
3
2
                        },
                        {
                            "id": "C1M_
NRCAMP
HRALT",
                            "order": 
4
3
                        },
                        {
                            "id": "C1M_
CTDANT
NRCAMP",
                            "order": 
6
4
                        },
                    
],
    {
                    
"items":
 
[
       "id": "C1M_CTDANT",
                
{
            "order": 6
               
"id":
 
1,
        }
                    
"deleted": 0
],
                    
"fields
"items": [
                        {
                            
"id": 
"C1M_FILIAL"
1,
                            "
value
deleted": 
"D MG 01"
0,
                            
},
"fields": [
                                {
                                    "id": "C1M_
DTALT
FILIAL",
                                    "value": "
20240520
D MG 01"
                                },
                                {
                                    "id": "C1M_
HRALT
DTALT",
                                    "value": "
1313
20240520"
                                },
                                {
                                    "id": "C1M_
NRCAMP
HRALT",
                                    "value": "
000001
1313"
                                },
                                {
                                    "id": "C1M_
CTDANT
NRCAMP",
                                    "value": "
PRD12345
000001"
                                },
                            
]
    {
                    
}
                
]
"id": "C1M_CTDANT",
                                    "value": "PRD12345"
                                }
                            ]
         
}
    
] }

Estrutura Hierárquica

id: é id da
           }
                    ]
                }
            ]
        }
    ]
}
Bloco de código
themeRDark
titleJSON - Exemplo
{
    "id": "TAFA057",
    "operation": 1,
    "models": [
        {
JSON - Exemplo

Estrutura Hierárquica

  • id: é id da API
  • models: são os modelos de negócios de cada API, que contém:
    • id: é o modelo de dados definido no MVC
    • modeltype: é tipo de modelo de dados, "FIELDS" ou "GRID"
    • fields: é um vetor com os campos do modelo, que contém:
      • id: é nome do campo
      • order: é a ordem do campo
      • value: é o valor do campo
    • models: é um vetor com os submodelos do modelo de dados do MVC, que contém:
      • id: é o submodelo de dados definido no MVC
      • modeltype: é tipo de modelo de dados, "FIELDS" ou "GRID"
      • struct: é um vetor definindo os campos do GRID, que contém:
      • id: é nome do campo
        • order: é a ordem do campo
      • items: é um vetor definindo os itens do GRID, que contém:
        • id: é um sequêncial do vetor dos itens
        • fields: é um vetor com os campos e valores dos itens do GRID, que contém:
          • id: é nome do campo
          • value: é o valor do campo


A estrutura do JSON de resposta para os métodos GET (por chave primária - pk), POST e PUT é basicamente a seguinte: 

Bloco de código
themeRDark
titleJSON - Exemplo de resposta do GET[pk]
{
    "id": "TAFA057",
    "pk": "RCBNRyAwMSBEIE1HIDAxIDAwMDAwMDAwMDAwMDAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==",
    "models": []
}

Onde a estrutua hierárquica é: : 

  • id: é id da API
  • pk: chave primária de cada registro para realizar uma consulta específica GET[id], consumir o método put e delete
  • models: são os modelos de negócios de cada API, ou seja, modelo de dados do MVC (FIELDS, GRID)


A estrutura do JSON de resposta para o método GET, sem especificar uma chave primária (pk), será conforme abaixo:

Bloco de código
themeRDark
titleJSON - Exemplo de resposta do GET sem [pk]
{
    "total": 142,
    "count": 10,
    "startindex": 1,
    "resources": [{
            "id": "TAFA057",
            "pk": "RCBNRyAwMSBEIE1HIDAxIDAwMDAwMDAwMDAwMDAwMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==",
            "models": []
        }, {
            "id": "TAFA057",
            "pk": "RCBNRyAwMSBEIE1HIDAxIDEyMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA==",
            "models": []
        }
    ]
}

Onde a estrutua hierárquica é: 

  • total: é o total de registros que existem no sistema
  • count: é a quantidade de registros retornados na requisição
  • startindex: é o contador inicial para realizar a paginação
  • resources: são as informações dos modelos de dados da API, composto por:
    • id: é id da API
    • pk: chave primária de cada registro para realizar uma consulta específica, consumir o método PUT e DELETE
    • models: são os modelos de negócios de cada API, ou seja, modelo de dados do MVC (FIELDS, GRID)

A estrutura do JSON de resposta para o método DELETE será da seguinte maneira:

Bloco de código
themeRDark
titleJSON - Exemplo de resposta do POST
true

A estrutura do JSON de resposta em caso de falha será da seguinte maneira:

Bloco de código
themeRDark
titleJSON - Exemplo de resposta falha no POST
{
    "errorCode": 400,
    "errorMessage": "\r\n --- Erro no Modelo ---\r\nId submodelo origem:[MODEL_C1L]\r\nId campo origem:[C1L_CODIGO]\r\nId submodelo erro: [MODEL_C1L]\r\nId campo erro: [C1L_CODIGO]\r\nId erro: 
	[TAFJAGRAVADO]\r\nMensagem de erro: [ Esta chave de registro formada pelos campos obrigatórios já foi informada em outro momento neste mesmo cadastro. 
	Para manter a integridade da informação não poderá haver duplicidade no cadastro, portanto não será permitido salvar este registro.]
	\r\nMensagem da solução: [Deverá ser alterada a chave de identificação única do registro composta pelos campos obrigatórios de forma a não coincidir com outros dados já gravados neste mesmo 
	cadastro.\r\n]\r\nValor atribuído: []\r\nValor anterior: [1234                                                        ]\r\n"
}

{
    "errorCode": 400,
    "errorMessage": "\r\n --- Erro no Modelo ---\r\nId submodelo origem:[MODEL_C1L]\r\nId campo origem:[C1L_UM]\r\nId submodelo erro: [MODEL_C1L]\r\nId campo erro: 
	[C1L_UM]\r\nId erro: [C1L_UM    ]\r\nMensagem de erro: [ Deve representar a Unidade de medida utilizada na quantificação de estoques, conforme determina o fisco no Convênio 31/99, no 
	Guia Prático EFD Fiscal e Contribuições.                   
	\r\n\r\nA informação deste campo corresponde á um código de identificação conforme respectivo cadastro.]
	\r\nMensagem da solução: [\r\n]\r\nValor atribuído: []\r\nValor anterior
: [xxx ]\r\n" }
Card
labelConfigurações Iniciais Para Utilização
Aviso

Para que a opção do "TSI - TAF SERVICE INTEGRATION" seja exibida no Wizard TAF, é necessário que exista pelo menos uma nota escriturada (Tabelas SF3 e SFT) cadastrada no sistema.

Execute a wizard, resultando em sucesso, será apresentada a tela com a mensagem conforme abaixo.

Image Removed

Tabelas afetadas criação S_T_A_M_P_

As tabelas do Protheus que sofrerão a criação do campo S_T_A_M_P_ são:

SB1, SFT, SF4, SB5, SA1, SA2, SA4, SAH, CT1, F2Q, CDN, SE1, SE2, CCF, SF1, SF2, SF3, CCE, SYD, CDH, SON, CKX, CDT e CDG.

Card
labelJob de Execução Automática
Job de Execução Automática

O job TSI responsável por executar o serviço de integração ERP x TAF, deve ser configurado em SIGACFG com a opção sempre ativo.

Desta maneira, ao incluir ou alterar um novo cadastro / movimentação no ERP, o JOB se encarregará de executar a integração automaticamente de forma transparente ao usuário.

Controle feito através da comparação dos campos do ERP-Protheus S_T_A_M_P_ Vs XXX_STAMP do TAF.

Exemplo de configuraçãoImage Removed

Card
idLog de Erro de Processamento
labelLog de Erro de Processamento
Log de Erro de Processamento

Está disponível através da rotina TAFA564, o log de processamentos realizados pelo TSI.

Através desta rotina é possível  visualizar o detalhamento das mensagens de integração que apontaram falhas no processamento e não foram integradas ao TAF. 

Módulo

Nome do Menu

Submenu

Nome da Rotina

Programa

Totvs Automação FiscalMiscelâneaIntegraçãoLog de Processamentos TSITAFA564

Consulte a aba "Erros de Integração" nesta documentação para maiores informações sobre as mensagens de erros e suas possíveis soluções.

Browse de log de erros

Image Removed

Detalhamento de erros

Image Removed

Card
labelErros de Integração

Erros de Integração

Deck of Cards
idERP
Card
labelERP-Protheus
Deck of Cards
idT007
Card
labelProdutos

Cadastro de Produtos

Ocorrência:  
Não foi encontrado o conteúdo 'UN' informado no sistema de origem, esse conteúdo corresponde ao campo 'Unidade de medida' ( C1L_UM ) do TAF.
Esta situação ocorre, quando a unidade de medida utilizada, não existe no TAF ou quando a unidade de medida utilizada é inválida. 

Solução: 
Verifique se a unidade de medida utilizada no cadastro de produtos esta correta e realize uma nova integração. 
Caso a unidade de medida informada no no ERP de origem esteja incorreta, basta realizar o ajuste.

Ocorrência:  
Não foi encontrado o conteúdo '0000000' informado no sistema de origem, esse conteúdo corresponde ao campo 'Identificador do Registro' ( C1L_IDCEST ) do TAF.
Esta situação ocorre, quando o código do CEST 0000000 utilizado, não existe no TAF.

Solução: 
Verifique se o código CEST utilizado no cadastro de produtos existe na tabela de autocontida (T71-Cod. Especificador ST - CEST ), caso não exista, realize a inclusão acessando
o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela T71 → clique em Abrir Browse → Incluir

Ocorrência:  
Não foi encontrado o conteúdo '2879' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Id. Serviço' ( C1L_CODSER ) do TAF.
Esta situação ocorre, quando o código do serviço utilizado, não existe no TAF. 

Solução: 
Verifique se o TAF esta atualizado com o último pacote disponível no portal do cliente. Após a atualização, execute a Wizard de Configuração do TAF para atualização das autocontidas:
Módulo TAF → Atualizações → Configs. TAF → Wizard Config. TAF

Ocorrência:  
Não foi encontrado o conteúdo '84819000' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Id. NCM' ( C1L_CODNCM ) do TAF.
Esta situação ocorre, quando o código do serviço utilizado, não existe no TAF. 

Solução: 
Verifique se o TAF esta atualizado com o último pacote disponível no portal do cliente. Após a atualização, execute a Wizard de Configuração do TAF para atualização das autocontidas:
Módulo TAF → Atualizações → Configs. TAF → Wizard Config. TAF

Ocorrência:  
Não foi encontrado o conteúdo 'SP' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Id. NCM' ( C1L_CODNCM ) do TAF.
Esta situação ocorre, quando o código do serviço utilizado, não existe no TAF. 

Solução: 
Verifique se o TAF esta atualizado com o último pacote disponível no portal do cliente. Após a atualização, execute a Wizard de Configuração do TAF para atualização das autocontidas:
Módulo TAF → Atualizações → Configs. TAF → Wizard Config. TAF

Card
labelParticipantes

Cadastro de Participantes

Ocorrência: 
Não foi encontrado o conteúdo '10999' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Ident.Municipio' ( C1H_CODMUN ) do TAF.
Esta situação ocorre, quando o código de município utilizado, não existe no TAF. 

Solução: 
Ajuste o código de município informado no cadastro do participante, pois a junção do código da UF+Código de Município utilizado não existe. 
Verifique se o código de município utilizado no cadastro do participante existe na tabela de autocontida (C07-Municípios do IBGE), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela C07→ clique em Abrir Browse → Visualizar 

Ocorrência: 

O campo 'Cod. Id. UF' não foi preenchido no sistema de origem, o preenchimento do campo ( C1H_UF ) é obrigatório no TAF.

Solução: 

No cadastro de participante (cliente/fornecedor) em seu sistema de origem, informe o campo correspondente a sigla do estado em que ele está localizado. A informação da UF do participante é uma informação obrigatória no TAF e portanto precisa ser preenchida.

Card
labelPlano de Contas

Plano de Contas

Ocorrência:  
Não foi encontrado o conteúdo '2101010000' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Conta Superior' ( C1O_CTASUP ) do TAF.
Esta situação ocorre, quando a conta superior não existe no TAF ou quando a conta superior esta bloqueada no sistema de origem. 

Solução: 
Realize o desbloqueio da conta superior no plano de contas utilizado no ERP de origem.
Obs.: Após a integração da conta, realize o bloqueio novamente (caso necessário).

Ocorrência:  
Não foi encontrado o conteúdo '1' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod Natureza Cta/Grp' ( C1O_CODNAT ) do TAF.
Esta situação ocorre, pois o grupo de natureza informado não existe na tabela autocontida C2R (Natureza Conta/Grupo Contab) do TAF.

Solução: 
Verifique se o TAF esta atualizado com o último pacote disponível no portal do cliente. Após a atualização, execute a Wizard de Configuração do TAF.
para atualização das autocontidas:
Módulo TAF → Atualizações → Configs. TAF → Wizard Config. TAF

Card
labelNota Fiscal

Nota Fiscal

Ocorrência:  

Não foi encontrado o conteúdo '9' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Identific. Origem' ( C30_ORIGEM ) do TAF.

O erro mencionado ocorre, pois o conteúdo informado é invalido para a origem do produto
Image Removed

Solução: 

Para solucionar essa ocorrência, revise a escrituração do documento fiscal realizando os seguintes passos:

1. Acesse a tabela SFT e valide se o conteúdo do campo FT_CLASFIS foi gravado com a origem + CST (090), pois é o primeiro digito do campo FT_CLASFIS que buscamos na integração.

Image Removed

Se o conteúdo do campo FT_CLASFIS não estiver correto, siga as instruções abaixo:

1. Acesse o cadastro de produtos;
2. Localize o produto e clique em alterar;
3. Informe um valor valido no campo Origem e clique em confirmar;

Após a alteração do produto o documento fiscal deverá ser ré escriturado. 

Ocorrência:
Não foi encontrado o conteúdo '0123' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Cód. Participante' ( C20_CODPAR ) do TAF.

Solução:  
Esta situação ocorre, pois o participante não existe na base de dados do TAF. 
Verifique na rotina de 'Log TSI'  se houve alguma inconsistência na integração do participante e realize a correção. 
Importante: para gravar o participante e extrair a gravação da nota, verificar os campos A1_ULTCOM e A2_ULTCOM pois deverão estar preenchidos.

Ocorrência:
Não foi encontrado o conteúdo '21010102' informado no sistema de origem, esse conteúdo corresponde ao campo 'Centro de Custo' ( C30_CCUSTO ) do TAF.
Esta situação ocorre, pois o centro de custo não existe na base de dados do TAF. 

Solução:  
Verifique na rotina de 'Log TSI'  se houve alguma inconsistência na integração do centro de custo e realize a correção. 

Ocorrência:
Não foi encontrado o conteúdo '01' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod. Identificacao Modelo' ( C20_CODMOD ) do TAF.
Esta situação ocorre, pois o código de identificação do modelo não existe na tabela C01 (Modelos dos Documentos Fiscais) do TAF. 

Solução: 
Verifique se o TAF esta atualizado com o último pacote disponível no portal do cliente. Após a atualização, execute a Wizard de Configuração do TAF
para atualização das autocontidas:
Módulo TAF → Atualizações → Configs. TAF → Wizard Config. TAF

Ocorrência:
Não foi encontrado o conteúdo 'ICM000035674' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id.Documento Arrecadação' ( C25_IDENTI ) do TAF.
Esta situação ocorre, pois a GNRE não existe no TAF. 

Solução: 
Verifique na rotina de 'Log TSI'  se houve alguma inconsistência na integração da GNRE e realize a correção. 

Ocorrência:
Não foi encontrado o conteúdo '01628' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Item' ( C30_CODITE ) do TAF.
Esta situação ocorre, pois o produto/item não existe na base de dados do TAF. 

Solução:  

Verifique na rotina de 'Log TSI'  se houve alguma inconsistência na integração do produto/item e realize a correção. 

Ocorrência:

Não foi encontrado o conteúdo '501' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Natureza Operação' ( C30_NATOPE ) do TAF.
Esta situação ocorre, pois o produto/item não existe na base de dados do TAF. 

Solução:  
Verifique na rotina de 'Log TSI'  se houve alguma inconsistência na integração do TES e realize a correção. 
INTEGRAÇÃO COM TMS

Ocorrência:

Não foi encontrado o conteúdo '99' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod Id UF Dest Transporte' (C39_UFDEST )

Solução:  
O campo 'Cod Id UF Dest Transporte' não foi preenchido no sistema de origem, o preenchimento do campo (C39_UFDEST) é obrigatório no TAF, caso utilize complemento de transporte (T015AI ).
Além do preenchimento dos campos DT6_CDORI, DT6_CDRES é necessário o preenchimento do campo DT6_CDRCAL, para gravar o C39_UFDEST.
Lembrando que DT6_CDRCAL deverá existir na tabela DUY, vinculado com a região (DUY_GRPVEN), o estado (DUY_EST) e o município (DUY_CODMIN).

Ocorrência:

Não foi encontrado o conteúdo '99999' informado no sistema de origem, esse conteúdo corresponde ao campo 'Código Município Destino' (C39_CMUNDE) do TAF.

Solução:  
O preenchimento do campo (C39_CMUNDE) é obrigatório no TAF, caso utilize complemento de transporte (T015AI ).
Além do preenchimento dos campos DT6_CDORI, DT6_CDRES é necessário o preenchimento do campo DT6_CDRCAL, para gravar o C39_UFDEST e posteriormente localizar o município.
Lembrando que DT6_CDRCAL deverá existir na tabela DUY, vinculado com a região (DUY_GRPVEN), o estado (DUY_EST) e o município (DUY_CODMIN).

Card
labelCadastro de Obras

Cadastro de Obras

Ocorrência:  
O conteúdo 'OBRA EMPREENDIMENTOS FUTUROS ESTADUAL MUNICIPAL' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Descricao da Obra' ( T9C_DSCOBR ) do TAF, o tamanho esperado para este campo é de 30 caractere(s).
Esta situação ocorre, quando a descrição é maior que 30 caracteres. 

Solução: 
Cadastrar uma descrição com o tamanho até 30 caracteres.

Ocorrência:  
O conteúdo '1234564567896545452223' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Número de Inscrição' ( T9C_NRINSC ) do TAF, o tamanho esperado para este campo é de 15 caractere(s).
Esta situação ocorre, quando o número de inscrição é maior que 15 caracteres. 

Solução: 
Cadastrar um número de inscrição com o tamanho até 15 caracteres.

Ocorrência:  
O conteúdo '5' informado no sistema de origem, não é uma opção válida para o preenchimento do campo 'Contrib CPRB' ( T9C_CPRB ) do TAF.
Esta situação ocorre, quando seleciona uma opção inválida para o campo 'Contrib CPRB'.

Solução: 
Informe uma opção válida para o campo 'Contrib CPRB' onde 0= Não e 1= Sim.

Ocorrência:  
O campo 'Tipo de Inscrição' não foi preenchido no sistema de origem, o preenchimento do campo ( T9C_TPINSC ) é obrigatório no TAF.
Esta situação ocorre, quando não é informado o campo ''Tipo de Inscrição'.

Solução: 
Informe uma opção válida para o campo ''Tipo de Inscrição' onde 1= CNPJ e 4= CNO.

Ocorrência:  
O campo 'Ind.Obra Pertenc Terceiro' não foi preenchido no sistema de origem, o preenchimento do campo ( T9C_INDTER ) é obrigatório no TAF.
Esta situação ocorre, quando não é informado o campo 'Ind.Obra Pertenc Terceiro'.

Solução: 
Informe uma opção válida para o campo 'Ind.Obra Pertenc Terceiro' onde 1= Sim e 2= Não.

Card
labelProcessos Referenciados

Processos Referenciados

Ocorrência:  

Falha ao carregar o conteúdo '10/2021' no campo 'Período Inicial Validade'. | O conteúdo '10/2021' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Período Inicial Validade' ( C1G_DTINI ) do TAF, o tamanho esperado para este campo é de 6 caractere(s).

Falha ao carregar o conteúdo '10/10/2021' no campo 'Período Final Validade'. | O conteúdo '10/10/2021' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Período Final Validade' ( C1G_DTFIN ) do TAF, o tamanho esperado para este campo é de 6 caractere(s).

Solução: 
Informe um período válido no formato MMAAAA.

Ocorrência:  

Falha ao carregar o conteúdo '5' no campo 'Tipo Processo ECF'. | O conteúdo '5' informado no sistema de origem, não é uma opção válida para o preenchimento do campo 'Tipo Processo ECF' ( C1G_TPPROC ) do TAF.

Solução: 
Informe uma opção válida para o campo 'Tp. Processo':

1- Judicial
2- Administrativo
3- Número do Benefício do INSS
4- FAP

Ocorrência:  

Falha ao carregar o conteúdo '5' no campo 'Indicador Origem Processo'. | O conteúdo '5' informado no sistema de origem, não é uma opção válida para o preenchimento do campo 'Indicador Origem Processo' ( C1G_INDPRO ) do TAF.

Solução: 
Informe uma opção válida para o campo 'Ind. Proc.':

0- SEFAZ
1- Justiça Federal
2- Justiça Estadual
3- SECEX
9- Outros

Ocorrência:  

Não foi encontrado o conteúdo 'PP' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. da UF da Vara' ( C1G_UFVARA ) do TAF.

Solução: 

Informe uma UF válida da tabela C09-Unidades Federativas. 

Ocorrência:  

Não foi encontrado o conteúdo '11111' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Município Vara' ( C1G_CODMUN ) do TAF.

Solução: 

Informe um código de município válido da tabela C07-Municípios do IBGE. 

Ocorrência:  

O campo 'Indicador de Depósito' não foi preenchido no sistema de origem, o preenchimento do campo ( T5L_INDDEP ) é obrigatório no TAF.

Solução: 

Informe um código válido: 1-Sim; 2 -Não.

Ocorrência:  

Não foi encontrado o conteúdo '06' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Indicador Suspensão' ( T5L_INDDEC ) do TAF.

Solução: 

Informe um código de Indicativo de Suspensão válido da tabela C8S-Indicativo de Suspensão. 

Ocorrência:  

Falha ao carregar o conteúdo 'CODDUSP0000000AAAAAAAAAAA' no campo 'Código de Suspensão'. | O conteúdo '' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Código de Suspensão' ( T5L_CODSUS ) do TAF, o tamanho esperado para este campo é de 14 caractere(s).

Solução: 

Informe um código de Suspensão válido até 14 caractere(s).

Ocorrência:  

Formato indevido para data no campo 'Data da Decisão'. 

Solução: 

Informe uma data válida no formato DD/MM/AAAA ou DD/MM/AA.

Card
labelApuração ICMS

Apuração ICMS

Ocorrência:

Não foi encontrado o conteúdo '00744' informado no sistema de origem, esse conteúdo corresponde ao campo 'Identificador do Subitem' ( C2T_IDSUBI ) do TAF. 

Solução:  

Verifique se o código de subitem utilizado na apuração de ICMS existe na tabela de autocontida (CHY-Código de Subitem), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela CHY→ clique em Abrir Browse → Visualizar 

Ocorrência:

Não foi encontrado o conteúdo '00020' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Tipo do Motivo' ( C2T_IDTMOT ) do TAF.

Solução:  

Verifique se o código de subitem utilizado na apuração de ICMS existe na tabela de autocontida (T0V-Tipos de Motivos), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela T0V→ clique em Abrir Browse → Visualizar 

Ocorrência:

Não foi encontrado o conteúdo 'SP020744 ' informado no sistema de origem, esse conteúdo corresponde ao campo 'Código do Ajuste' ( C2T_CODAJU ) do TAF.

Solução:  

Verifique se o código de subitem utilizado na apuração de ICMS existe na tabela de autocontida (C0J-Ajuste Doc Fiscal), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela C0J→ clique em Abrir Browse → Visualizar 

Ocorrência:

O conteúdo '' possui tamanho superior ao esperado pelo TAF. O conteúdo informado corresponde ao campo 'Código da Autorização' ( T02_CODIGO ) do TAF, o tamanho esperado para este campo é de 12 caractere(s).

Solução:  

Verifique se o código utilizado na apuração possui o mesmo tamanho do campo informado em questão.

Card
labelApuração ICMS ST

Apuração ICMS ST

Aviso
  • Atualmente o TAF TSI importa do módulo Livros Fiscais a apuração de ICMS-ST apenas para a obrigação acessória Nova GIA-SP, portanto, serão considerados somente os códigos de ajustes da apuração ICMS-ST para popular a tabela C3K do SIGATAF. Caso a apuração ICMS ST no livro fiscal não possua ajuste manual, não será gerado o layout T021AA e o T021 ficará com os valores zerados, essa situação ocorre para o TAF não extrair a todo momento a apuração ICMS-ST
  • Se a integração da apuração do ICMS-ST estiver com valores zerados (C3J), pode ser devido ao preenchimento dos parâmetros MV_SUBTRIB e MV_ESTADO.
  • Caso exista lançamento automático proveniente das notas, será considerado apenas o valor no C3J ( totalizador ), ou seja, o código de ajuste com 10 caracteres não será gerado no T021AA(C3J), apenas o valor composto no T021(C3K).

Ocorrência:

Apuração ICMS-ST sendo integrado ao TAF com valores zerados.

Solução:  

O TAF utiliza a leitura da apuração de ICMS-ST apenas para atender uma parte do layout da Nova GIA-SP, portanto, para a correta integração dos valores da apuração, é necessário que os parâmetros MV_SUBTRIB e MV_ESTADO estejam preenchidos corretamente. 

Ocorrência:

Não foi encontrado o conteúdo '00744' informado no sistema de origem, esse conteúdo corresponde ao campo 'Identificador do Subitem' ( C3K_IDSUBI ) do TAF. 

Solução:  

Verifique se o código de subitem utilizado na apuração de ICMS ST existe na tabela de autocontida (CHY-Código de Subitem), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela CHY→ clique em Abrir Browse → Visualizar

Ocorrência:

Não foi encontrado o conteúdo '00020' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id. Tipo do Motivo' ( C3K_IDTMOT ) do TAF.

Solução:  

Verifique se o código de subitem utilizado na apuração de ICMS ST existe na tabela de autocontida (T0V-Tipos de Motivos), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela T0V→ clique em Abrir Browse → Visualizar 

Ocorrência:

Não foi encontrado o conteúdo 'SP020744 ' informado no sistema de origem, esse conteúdo corresponde ao campo 'Código do Ajuste' (C3K_CODAJU ) do TAF.

Solução:  

O código de subitem utilizado na apuração de ICMS ST deve existir na tabela de autocontida (C1A-Ajuste da Apuração do ICMS), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela C1A→ clique em Abrir Browse → Visualizar 

Card
labelCPRB
CPRB

Ocorrência:

Não foi encontrado o conteúdo '00000000000001' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id do Cadastro de CNO' ( V48_IDCNO ) do TAF.

Solução:  

Verifique se o código do cadastro de obras utilizado na apuração da CPRB existe no cadastro de obras do TAF (T9C- Cadastro de obras), acessando o seguinte caminho: Módulo TAF→ Atualizações → Fiscais → Obras (T9C)

Ocorrência:

Não foi encontrado o conteúdo '00000000000000000100' informado no sistema de origem, esse conteúdo corresponde ao campo 'Cod da Conta Contabil' ( C5M_CODCTA ) do TAF.

Não foi encontrado o conteúdo '00000000000000000100' informado no sistema de origem, esse conteúdo corresponde ao campo 'Id Cod Conta Contabil' ( V48_CODCTA ) do TAF.

Solução:  

Verifique se o código da conta contábil utilizada na apuração da CPRB existe no cadastro de Conta Contábil do TAF (C1O- Cadastro de conta contábil), acessando o seguinte caminho: Módulo TAF→ Atualizações → Contábeis→ Plano de Contas (C1O)

Ocorrência:

Não foi encontrado o conteúdo '10000025' informado no sistema de origem, esse conteúdo corresponde ao campo 'Código de Atividade' ( C5M_CODATI ) do TAF.

O campo 'Código de Atividade' não foi preenchido no sistema de origem, o preenchimento do campo ( C5M_CODATI ) é obrigatório no TAF.

Solução:  

Verifique se o código da atividade utilizada na apuração da CPRB existe no cadastro de Cód. de Atividade Receita Bruta do TAF (C5V- Cadastro da Tabela Código de Atividades, Produtos e Serviços Sujeitos a CPRB), acessando o seguinte caminho: Módulo TAF→ Consultas → Tabelas Dinâmicas → Filtre a tabela C5V→ clique em Abrir Browse → Visualizar 

Card
labelAnálise Técnica

Análise Técnica

Informações como a query que está sendo executada, ou até que ponto do algoritmo a integração está chegando, podem ser úteis no processo de implantação.

Como a execução do TSI é transparente, existe o uso da funcionalidade TAF Conout.

Se habilitada mensagens técnicas serão imprimidas no arquivo .../apppserver/CONSOLE.LOG 

Para habilitar funcionalidade: TAFCONOUT=1 ( inserir na gereneral )

TSILOG00001 Inicio 13:34:25 Programa de execução de JOB invocado via Schedule com sucesso.
Indica sucesso no início do programa TSI() configurado no cadastro de Schedule

TSILOG00002 cSource: D MG 01
Indica sucesso na montagem da empresa e qual é a empresa a ser processada.

TSILOG00003 Função executada:  HashUM()
Indica sucesso no carregamento das funções para execução de cada cadastros, podendo ser:
HashAddInf()  //T001AK - Informações Complementares 
HashPARTIC()  //T003 - participante cliente ou fornecedor 
HashUM()       //T005 - unidade de medida 
HashITEM()     //T007 - produto  
HashNature()  //T009 - natureza da operação/TES
HashCNO()     //T157 - Cadastro Nacional de Obras
HashNCM()     //Auto-Contida

TSILOG00004 GetNames ok

Indica sucesso na execução de consulta e geração do objeto JSON. O próximo passo é a persistência da entidade ao TAF.

TSILOG00005 Query de busca do cadastro participantes (Cliente / Fornecedor) [ Início query TSILOG00001 09:06:2020 [  Sintaxe da query  de busca de cliente e fornecedor ] [ Fim query TSILOG00001 09:07:2020  ]

TSILOG00006 Query de busca do cadastro de Unidade de Medida [ Início query TSILOG00002 09:08:2020   [  Sintaxe da query  de busca de unidade de medida ]  [ Fim query TSILOG00002 09:09:2020 ]

TSILOG00007 Update dos registros que sofrerão alteração fake [ Início update TSILOG00003 09:10:2020 ] [  Sintaxe da query  de update dos cadastros que sofrerão a alteração fake ]  [ Fim erro TSILOG00003 09:11:2020 ]

TSILOG00008 Erro de alteração fake [ Início erro TSILOG00004 09:12:2020 ] [ Detalhamento do erro de execução do update] [ Fim erro TSILOG00004 09:13:2020 ]

TSILOG00009 Query de busca do cadastro de Produto [ Início query TSILOG00005 09:14:2020 ]  [ Sintaxe da query de busca dos cadastro de Produto ]   [ Fim erro TSILOG00005  09:15:2020 ]

TSILOG000010 Query de busca do cadastro de Natureza da Operação [ Início query TSILOG00006 09:16:2020 ]  [ Sintaxe da query de busca do cadastro de Natureza da Operação ]   [ Fim query TSILOG00005  09:17:2020 ]

TSILOG000012 Query de busca do cadastro de NCM [ Início query TSILOG00012 09:16:2020 ]  [ Sintaxe da query de busca do cadastro de NCM ]   [ Fim query TSILOG00012  09:17:2020 ]

TSILOG000013 Função MVC executada:  HashC2S()

Indica sucesso no carregamento das funções para execução de modelos com pai e filho (neto) ,podendo ser:
HashC2S()   //Apuração icms
HashC3J()   //Apuração icms-st
hashC5M() //CPRB

TSILOG000014 Query de busca do cadastro de apurações de ICMS [ Início query TSILOG00014 09:25:2020 ]  [ Sintaxe da query de busca do cadastro de apurações de ICMS]   [ Fim query TSILOG00014  09:30:2020 ]

TSILOG000015 Query de busca do cadastro de apurações de ICMS ST[ Início query TSILOG00015 10:15:2020 ]  [ Sintaxe da query de busca do cadastro de apurações de ICMS ST]   [ Fim query TSILOG00015  10:19:2020 ]

TSILOG000016 Erro no formato de campos tipos Data [ TSILOG00016 Erro tipo Data 10:15:2020 ]  [ Erro na conversão da data recebida]   [ Date: 10/08/21  10:19:2020 ]

TSILOG000017 Inicio da gravação do MVC [ TSILOG00017 Inicio 11:10:2020 ]  [ Cadastro do model TAFA063]   [ Date: 10/08/21  11:10:2020 ]

TSILOG000018 Fim da gravação do MVC [ TSILOG00018 Fim 11:19:2020 ]  [ Cadastro do model TAFA063]   [ Date: 10/08/21  11:19:2020 ]

TSILOG000019 Query de busca do cadastro de apurações de CPRB[ Início query TSILOG000019 17:21:2020 ]  [ Sintaxe da query de busca do cadastro de apurações de CPRB]   [ Fim query TSILOG000019  17:27:2020 ]

TSILOG000020 Query de busca do cadastro de CNO - Obras [ Início query TSILOG00020 09:16:2020 ]  [ Sintaxe da query de busca do cadastro de CNO - Obras ]   [ Fim query TSILOG00020  09:17:2020 ]

TSILOG000021 Query de busca do MAX ID da tabela C0A_ID

TSILOG000022 Conteúdo dos parâmetros do bloco K ->> MV_BLKTPXX

TSILOG000023 Update dos registros na SFT que sofrerão alteração fake com base no log V5R alias C20 ( campo V5R_ERPKEY ) - TAFA600.

TSILOG000024 Participantes (Cliente/Fornecedores) 2000 de 5600.

TSILOG000025 Item (Cadastro de Produtos) 1000 de 5000

TSILOG000026 Erro ao excluir os registros da V5R [ Início erro TSILOG000026 ] ERRO SQL [ Fim erro TSILOG000026 ] 

TSILOG000027 A query de extração retornou 312 itens - T1|D MG 01 Date: 29/07/22 Time: 09:45:41

TSILOG000028 Processando lote de 78 NF(s) - T1|D MG 01 Date: 29/07/22 Time: 09:45:49

TSILOG000029 Foram adicionadas/alterados 78 notas ao TAF - T1|D MG 01 Date: 29/07/22 Time: 09:46:18

TSILOG000030 Fim - Taf Service Integration - T1|D MG 01 Date: 29/07/22 Time: 09:46:20

TSILOG000031 Não existe o alias V80 na sua base de dados. Favor atualize o TAF com o ultimo pacote disponível no portal do cliente.

TSILOG000032 Repositório desatualizado. Favor atualize o TAF com o ultimo pacote disponível no portal do cliente.

TSILOG000033 Update dos registros na SFT/SF3 que sofrerão alteração fake com base nos documentos divergentes da SFT(ERP)xC20(TAF) e limpeza da V5R correspondente[ Início update TSILOG000033 ]" ) - TAFA603.

TSILOG000034 Execução da query de extração das notas [ Início TSILOG000034 ]

TSILOG000035 Update dos registros na SF3 que sofrerão alteração fake com base no log V5R alias C20 ( campo V5R_ERPKEY ) - TAFA600.

Cardlabel

...

Card
accessKeyPainel
idPainel
label(NOVO) Painel Gerenciador TSI

Painel Gerenciador TSI

Acesse o seguinte caminho: SIGATAF \ Atualizações \ Eventos Reinf \ Painel Reinf \ Monitor TSI

Image Removed

Status

1 - Serviço configurado, constará como habilitado se aplicado o pacote, criado os campos stamps no ERP/TAF e cadastrado o job no configurador ( XX1 ).
2 - Serviço Ativo, constará como habilitado se o schedule estiver configurado e iniciado no mesmo servidor da aplicação.

Filtros

1 - Filial ( carrega a filial "logada", porém também possui a opção de carregar 'Todas' );
2 - Do período e Até período, inicialmente não vem preenchido, então considera todos os registros para carregar a tabela e exportar o relatório,
caso sejam preenchidos e aplicado o filtro, aí sim serão considerados o intervalo dos períodos.
3 - Tipo, inicialmente são considerados todos, porém existe a opção para Cadastros, Movimentos e Apurações.

Colunas

Filial, layout, data, hora Integração, código do registro ( carregado apenas nos cadastros e apurações ), chave ( apenas para a nota ) e mensagem de erro (texto com a quebra dos problemas encontrados na integração).

Botões

Aplicar ( efetiva o filtro de acordo com os filtros informados ).
Carregar mais resultados ( consome a api para exibir mais 10 registros na tabela ).
Documentação ( realizar abertura do navegador para o link da documentação oficial ).
Exportar relatório ( efetua download da planilha ".xlsx" com os erros da integração de acordo com o filtro informado )

Exportar Relatório

Image Removed

Documentos Divergentes

Image Removed

A tela de Documentos divergentes tem como objetivo apresentar os documentos que estão do lado do ERP, porém não foram encontrados no TAF ou vice-versa. Caso a integração ainda não tenha sido processada, apresente algum erro ou caso o documento necessite de uma reintegração pois houve uma atualização do campo S_T_A_M_P_ do lado do ERP (Tabelas SFT/SF3), será apresentado nessa tela.

Fitros:

...

Ultima integração:

A mensagem "O TSI irá integrar os documentos lançados a partir de AAAA-MM-DD HH:MM:SS para a filial XXXXX" serve para identificar quando foi feito a ultima integração e a partir de qual data do campo S_T_A_M_P_ será considerado na próxima execução. Ao clicar sobre a mensagem, é possível alterar a data da próxima integração. Somente é possível adiantar essa data, uma vez que o job está em execução e não é possível retroagir para buscar os movimentos anteriores durante a execução do mesmo.

Reintegração:

...

: [xxx   ]\r\n"
}
Dica
titleDica

Ao realizar um POST, devem ser respeitados os campos de ID recebidos no método GET. Por exemplo, considere os seguintes campos:

C1H_UF: Enviar o código 000027 vinculado à tabela C09 (unidade federativa), e não SP.
C1H_CODMUN: Enviar o código 003293 vinculado à tabela C07 (Municípios do IBGE), e não AMERICO DE CAMPOS.
C1L_UM: Enviar o código presente na tabela de unidade de medida, e não UN.
Certifique-se de que os dados enviados no POST correspondam corretamente aos identificadores recebidos no GET, evitando o uso de valores literais inadequados.              

08. ASSUNTOS RELACIONADOS