O enfoque deste post é o SLT atendendo às necessidades padrão do SAP TDF. É importante salientar que o SLT oferece muito mais possibilidades que para os projetos SAP TDF não são utilizadas como modificação de estrutura (não transferir campos, ou criar campos no SLT) e bem mais possibilidades. Veja últimas novidades
SAP LT Replication Server DevNews SP8
Os dados oferecidos para consumo no CTR (Central Tax Repository) são modelados pela SAP então nem adianta criar novos campos na transferência se eles não aparecerão nas views a serem consumidas, e esse é na verdade um dos pontos fortes da solução de se trabalhar com o dado cru vindo do ERP e ao longo do tempo distorções / necessidades devem ser encaminhadas para já nascer certo na fonte ao invés de serem modificadas à cada necessidade de novo report fiscal. Bom, isto já merece um outro post né... vamos aos filtros e SLT.
Vou começar pelo final adiantando que os filtros devem ser colocados no sistema fonte diminuindo os dados transferidos e processados, os 3 pontos possíveis são:
- load/replicação (sistema fonte)
- trigger de gravação das atualizações (sistema fonte)
- dentro da transformação no SLT (SLT)
As 3 instâncias envolvidas: (1) fonte NW ERP (2) a instância NW do SLT e o (3) HANA DB como destino.
O setup em si da replicação já foi abordado neste post
Implementando SAP TDF - Replicando os dados com SLT do
eduardo.chagas
Infelizmente estou sem “fotos” do setup dos filtros, então vou pegar de vários exemplos prontos para ilustrar a filtragem.
Em uma implementação padrão de SLT para TDF precisamos apenas do REPLICATE que fará um Load para carga inicial e após terminado iniciará o estado replicate para manter dados atualizados em real-time. Conforme esquema:
Calculate / Load
Partindo do que acontece quando você seleciona uma tabela para começar a replicação o SLT primeiro irá disparar um job de cálculo na fonte para identificar o que precisa tem a ser carregado (LOAD) e é nossa carga inicial.
Antes deste processo de cálculo já precisamos colocar filtro, trata-se do primeiro filtro que acontece no SELECT da tabela do aplicativo. Como exemplo teríamos a diferença entre um SELECT FROM BKPF versus um SELECT FROM BKPF WHERE GJAHR >= ‘2014’.
Detalhes técnicos no post abaixo do
tobias.koebler
How To filter on the initial load & parallelize replication DMIS 2011 SP06 or higher
Replicação
Depois da carga inicial, o processo entra em estado de replicação. Que irá manter atualizado o sistema destino com a menor latência possível. Esta replicação em realtime se dá lendo as logging tables e copiando os dados da tabela de aplicativo para o sistema destino.
Logging tables
Para cada tabela a ser replicada em real-time 3 triggers serão criadas para alimentar a logging table específica.
Abaixo visualização de duas dessas triggers (Deleção e Insert), sem filtros aplicados, na tabela BKPF. A título de curiosidade dá para perceber a estrutura de uma logging table sendo (sequence, timestamp, primary key da application table e a operação (Delete/Insert/Update).
Observação: Este sistema fonte é HANA, no sistema destino não há destas triggers.
Abaixo outro exemplo de trigger, desta vez na tabela J_1BNFE_ACTIVE e com filtros aplicados de MANDT e DOCNUM.
Créditos: Exemplo na Natura, fonte de dados base Oracle.
A geração e manutenção das triggers são automáticas, sua configuração é feita na transação LTRS, abaixo um exemplo de configuração da BKPF para ano >= 2014:
** Update: 08/jan/2016 atualizado screen shoot correto
Créditos: Exemplo na Natura..
Filtro no SLT
Todo dado antes de seguir para gravação no HANA passa pela instância NW do SLT, onde há o processamento/transformação. Como para TDF não deve haver transformação dentro no SLT, esta opção de filtro não é recomendada em se aplicando os outros filtros.
No blog abaixo tem-se um exemplo de descarte de registros através do comando SKIP_RECORD.
How to avoid a deletion/update/insert of a record
Será que vai ficar bão?
Filtros irão diminuir o tempo e a quantidade de dados a transferir, e mesmo assim ainda pode ter muitos dados relevantes. Se sua instalação for uma afortunada com bastante dados é importante você estudar outros dois tópicos:
1) Paralelismo: seja na carga inicial ou replicação
2) Particionamento: no armazenamento HANA para sobrepujar a limitação de 2 bilhões de linhas por tabela/partição
Para saber mais:
Implementando SAP TDF - Replicando os dados com SLT - Novo link adicionado
Starter Blog for SAP LT Replication Server
List of all SLT Notes
Overview How To documents
How to specify a partioning command