Projeto Interno

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.
Atualmente o pacote centralizador do TSI no AtuSx é o 009134 (release 33). Aqui tem a criação dos campos stamp nas tabelas do TAF e a criação da tabela de log V5R.
Pontos de melhorias, dúvidas ou discussões sobre a execução, podem ser colocados no dontpad do TSI, para posterior implementação, se necessário expor em review ou retrospectiva.

Divisão na execução

Quando é necessário criar um novo leiaute no TSI, precisamos trabalhar em alguns pontos, são eles:

Extração do ERP

Aqui é contemplado a regra de extração apenas do ERP Protheus, que em muito(s) casos a(s) regra(s) consta(m) nos extratores:

  1. Entender e elaborar a regra de extração.
  2. Nessa etapa são levantados todos os campos necessários na extração,  a planilha interna com o layout consta em google drive em Layout TAF.xlsx
  3. Aqui também é necessário utilizar o pacote centralizador do TSI no atusx, para criar o campo STAMP na tabela legado do SIGATAF.
  4. Conforme DOD dessa tarefa, aqui também é esperado a geração do JSON com o conteúdo dos campos do layout nas tags pré definidas para integração.
  5. Controle do Stamp criado na Tabela do ERP e Mecanismo de validação do STAMP entre Protheus x TAF finalizado.

Integração TAF (+ Hash )

Etapa onde o layout já está sendo extraído pelo TSI (geração do json mencionado na etapa 4 da extração do ERP) e agora será construído a integração das informações para o TAF.

  1. Construir Hash do JSON para o TAF (pai, filho e netos).
  2. Realizar o processo de gravação dos dados através de um mecanismo que irá receber o JSON e realizar a integração com o TAF.
  3. Colocar a rotina dentro do Schedule.

Construção de APIS

Open API

Fontes e Tabelas

Entidades(C)ad.
(M)ov.
JOB TSI?
(S)im
(N)ão
Tabelas ERPTabelas TAFLayout TAFExtração
ERP
API
TAF
ParticipanteCSSA1\SA2C1HT003TAFA556WSTAF027
Unidade MedidaCSSAHC1JT005TAFA557WSTAF030
Item (Produto)CSSB1\SB5\F2Q\CDNC1LT007TAFA559WSTAF026
Natureza de Operação \ TESCSSF4C1NT009TAFA560WSTAF025
Centro de CustoCNCTTC1PT011TAFA562WSTAF029
Conta ContábilCNCT1C1OT010TAFA563Sem Construção
Inscrição do estabelecimento substitutoCNMV_SUBTRIBC1FT001AATAFA569WSTAF031
Processos referenciados e suspensões.CNCCFC1G\T5LT001AB\T001AOTAFA572WSTAF032
Informações ComplementaresCSCCEC3QT001AKTAFA575WSTAF035
NCMCSSYDC0A (auto contida)TAFA561WSTAF036
Nota FiscalMS

SFT\SF3\SF1\

SD1\SF2\SD2

C20\C30\C35\

C39\C2F\C2D

T013\T013AP\
T015\T015AE
TAFA574WSTAF034
Apuração ICMS MSCDHC2S\C2TT020\T020AA\T020AGTAFA584WSTAF039
Apuração ICMS STMSCDHC3J\C3KT021\T021AATAFA586WSTAF040

Processos

FonteProcessoDetalhamento da rotinas:
TAFA558Alteraçã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.

TAFA573Schedule 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);

TAFA564Log

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

TAFA565Motor 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

TAFA585Motor Pai, Filho, NetoFunção que efetua inclusão e alteração do cadastro no MVC e seu respectivo filhos/netos ( com mais de uma tabela).
TSIXFUNFunçõ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

VldExecute: Função responsável por validar os daados de empresa e filial para requisição

SetErroJs: Método responsável por retornar os erros no JSon de integraçã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.