Árvore de páginas

Versões comparadas

Chave

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

...

Aviso

NUNCA PUBLIQUE ESTA PÁGINA. POR LIMITAÇÃO DA FERRAMENTA, NÃO PODEMOS MAIS CRIAR PÁGINAS RESTRITAS A CLIENTES. A ALTERNATIVA QUE ACHAMOS FOI CRIAR ESTA PÁGINA COMO RASCUNHO, ASSIM APENAS USUÁRIOS LOGADOS PODEM ACESSAR O CONTEÚDO.

O que é TSI?

O serviço de integração do TAF ( TAF Service Integration ) é o novo mecanismo de integração ERP-Protheus Vs TAF.
O TSI foi criado exclusivamente para clientes que usam o TAF como módulo do ERP-Protheus, ou seja, ambos no mesmo banco de dados.

Pré Requisitos

  • Requer um TOTVS Application Server build 7.00.170117A com geração superior a 23/09/2019.

...

  • Requer um TOTVS DbAccess  igual ou superior a 19/11/2019
  • Rodar o UpdDistr ( sdfbra

...

  • .txt referente ao pacote acumulado

...

  • do

...

  • SIGATAF ).
  • Wizard Config TAF ( para criar os campos "s_t_a_m_p_" nas tabelas do ERP, ex: SA1, SA2, SFT, etc... ).

Banco de Dados Homologados

  • A integração On-line depende do novo campo S_T_A_M_P_ e sua criação está disponível para os Banco de Dados MSSQL, ORACLE e  POSTGRES.

O que é stamp?

Um campo interno para tabelas do DBAccess, não visíveis na estrutura de acesso pelo AdvPL, que registre um datetime e/ou timestamp para cada registro inserido e/ou alterado na base de dados. 
O tipo do campo criado na tabela é DATETIME (para MSSQL) e TIMESTAMP (para Postgres e Oracle)

Para recuperar o campo de controle S_T_A_M_P_ e recuperar a informação completa ( data e horário ), por exemplo no formato yyyy-mm-dd hh:MM:ss.mmm
( Ano com 4 dígitos, mês com 2 dígitos, dia com 2 dígitos, e horário completo (24h) com precisão de milissegundos,
deve ser feito um CAST específico para retornar a informação como "C" Caractere no AdvPL,
para cada banco de dados, vide exemplos abaixo:

  • MSSQL :      convert(varchar(23), S_T_A_M_P_ , 21 )

...

  • POSTGRES :

...

  • to_char(s_t_a_m_p_,'YYYY-MM-DD HH:MI:SS.MS') 
  • ORACLE :    to_char(s_t_a_m_p_,'YYYY-MM-DD HH24:MI:SS.FF')

Confira mais sobre stamp na documentação do DbAccess: Implementação - Campo de controle adicional no DBAccess - S_T_A_M_P_

...

CREATE NONCLUSTERED INDEX SFT010STP ON SFT010(FT_FILIAL, S_T_A_M_P_, R_E_C_N_O_, D_E_L_E_T_)

Par de Fontes e Tabelas

Qtd
Layout
Entidades(C)ad.
(M)ov.
JOB TSI?
(S)im
(N)ão
Tabelas ERPTabelas TAFLayout TAFExtração
ERP
API
TAF
Obrigações
01ParticipanteCSSA1\SA2C1HT003TAFA556WSTAF027GIA\REINF
02Unidade Medida
*predecessor produto
CSSAHC1JT005TAFA557WSTAF030-
03Item (Produto)CSSB1\SB5\F2Q\CDNC1LT007TAFA559WSTAF026GIA\REINF
04Natureza de Operação \ TESCSSF4C1NT009TAFA560WSTAF025GIA
05Centro de CustoCNCTTC1PT011TAFA562WSTAF029-
06Conta ContábilCNCT1C1OT010TAFA563Sem Construção-
07Inscrição do estabelecimento substituto
(Inscrições Estaduais)
CNMV_SUBTRIBC1FT001AATAFA569WSTAF031GIA
08Processos referenciados e suspensões.CSCCFC1G\T5LT001AB\T001AOTAFA572WSTAF032REINF
09Informações ComplementaresCSCCEC3QT001AKTAFA575WSTAF035GIA
10NCM
*predecessor produto
CSSYDC0A (auto contida)TAFA561WSTAF036-
11Nota FiscalMS

SFT\SF3\SF1\

SD1\SF2\SD2

Transporte:
DUD, DT6

Info Compl.
CDT

Compl. Processo:
CDG

C20\C2F\
C30\C35\ C2D\

Transporte:
C39

Info Compl.
C21

Compl. Processo:
T9Q

T013\T013AP\
T015\T015AE\

Transporte:
T015AI

Info Compl.
T013AA

Compl. Processo:
T015AK

TAFA574WSTAF034GIA\REINF
12Apuração ICMS MSCDHC2S\C2TT020\T020AA\T020AGTAFA584WSTAF039GIA
13Apuração ICMS STMSCDHC3J\C3KT021\T021AATAFA586WSTAF040GIA
14Cadastro de ObrasCSSONT9CT157TAFA596WSTAF042REINF
15CPRBMSCKX/F2S/F3ZC5M/T9T/V48T082/T082AC/T082ADTAFA566WSTAF043REINF

Processos

FonteProcessoDetalhamento da rotinas
ERP/
TAFA558
Alteração Fake

Alteração fake nos cadastros predecessores com base nas movimentações,
através da comparação dos stamps nas tabelas SFT x C20 e SE1\SE2 x LEM.

TSI/
TAFA573

Schedule TSI

Mecanismo responsável por executar o JOB do TSI na seguinte ordem:
1. Efetua a alteração FAKE;
2. Extração e integração dos CADASTROS que possuem stamp preenchido ( ver coluna acima "JOB TSI?=S")
3. Após a gravação de todos os cadastros é realizado a integração da NOTA FISCAL;
4. Gravação de Layouts de MVC com filho, neto ( Apuração ICMS e ICMS ST);

TAF/
TAFA564
Log

Cadastro de Log de integração (MVC tabela V5R).
Os mecanismos possuem a chamada da função PutTSIV5R para inserir registros nessa tabela.

TAF/
TAFA565
Motor para os Cadastros

Método responsável por persistir os dados enviados via JSON e gravar o MVC de cadastro básico (apenas uma tabela).
putTsiV5r: Método responsável por persistir os dados na tabela de log de erros
AgrupaErro: Aglutina todos os erros por chave de registro

TAF/
TAFA585
Motor Pai, Filho, Neto

Função que efetua inclusão e alteração do cadastro no MVC e seu respectivo filhos/netos ( com mais de uma tabela).

Colocar na função do hash pai as inforções de s_u_b_m_o_d_e_l_ ( filhos ) e s_u_b_m_o_d_e_l_2 ( netos ), conforme abaixo:

HMSet(oHash, 's_u_b_m_o_d_e_l_' , {{'MODEL_C2T'/*model filho*/,'adjustmentApuration' /* tag filho*/, 'HashC2T()' /* hash filho*/ }} )

HMSet(oHash, 's_u_b_m_o_d_e_l_2' , {{'adjustmentApuration'/* tag filho*/,'MODEL_T02'/*model neto*/,'accumulatedAdjust'/*tag neto*/, 'HashT02()' /*hash neto*/}} )
*Nessa tag filho do submodel2 informa quem é o pai desse neto.

TSI/
TSIXFUN
Funções genéricas TSI

GetTafId        Rertorna o _ID de cada consulta F3
GetTafId2()    Funcão utilizada para retornar id de registro a partir de chave composta
SetHashKey  Método responsável por montar HashMap de Cadastros
RetErroTaf     Método responsável por montar msg de error na integração
SetErroJs       Método responsável por retornar os erros no JSon de integração
VldExecute    Função responsável por validar os dados de empresa e filial para requisição
ClearV5R       Apaga Registro V5R caso o nota seja incluída com sucesso.
WsTSIVldGet No caso de conteúdo vazio para retorno ao get, retorna com 0 se for campo numérico e '' se for outro tipo de dado.
ValTsiData     Função para tratar o conteúdo tipo data, retornando a data no formato SQL AAAAMMDD
TsiGetJson     Motor que realiza de para de campo com hash para parsear registros em json. Monta o objeto json de forma automatizada.

TAF/
TAFA599
Data de CorteFiltro para extrair e processar mais rápido tabela V80.
ERP/
TAFA600
Alteração Fake SFTCom base no ERPKEY da V5R para o alias C20 é realizado a alteração fake nas notas que constam no log.

Projeto Interno ( DEVS )

O objetivo deste guia é ajudar os membros da equipe a entender a composição do projeto e como nos organizamos para planejar, desenvolver, testar e documentar o TAF TSI.
A documentação oficial publicada para os clientes consta em TSI - TAF Service Integration.
O projeto consta no diretório: .../Master/Fontes/TAF/Integração/TSI, sendo composto por fontes na raiz (genéricos) , subpasta ERP (extração dos módulos do protheus) e subpasta TAF (APIS que fazem operações nas tabelas legados do TAF).
O controle com o nome dos fontes, descrição e analista que desenvolveram o TSI, fica disponível no google docs \Tabelas TAF.

...