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.

/wp-content/uploads/2015/07/arq_752040.png

 

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:

/wp-content/uploads/2015/07/replicate_752041.png

 

 

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).

/wp-content/uploads/2015/07/logging_table_752046.png

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.

trigger_com_filtro visto pelo SLT.png

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:

 

trigger BKPF.png

** 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

/wp-content/uploads/2015/07/skip_record_752048.png

 

 

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

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply