bseg new info

Upload: rogerio-nere

Post on 08-Jul-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 Bseg New Info

    1/3

    BSEG , Adeus tabela BSEG, bem vinda tabela BSEG.

    A Tabela BSEG, assim como a transação SPRO estão na boca de cada consultor SAP. Impossível

    não reconhecer e associar imediatamente.

    A história da BSEG é muito interessante e remonta aos primórdios do SAP, acredito que venha lá

    do R/2, mas eu vi pelos meus próprios olhos no R/3 3.1FC e desde então está da forma como foiconcebida.

    Já condenei muito soluções da SAP e ao longo do tempo comecei a entender a origem e os

    porquês destas soluções. Hoje tenho um profundo respeito e atenção para as decisões de

    arquitetura e engenharia de software da SAP.

    As decisões tomadas pela SAP desde a sua concepção são de profunda coragem pois foram

    contrárias ao foco e objetivos de sua época. Na década de 70 e 80 onde praticamente todo o foco

    se direcionava para a performance e otimização de recursos de hardware, em uma época que TI

    ainda se chamava CPD, a SAP decide focar em uma arquitetura universal de Sistema

    Operacional e Banco de Dados.

    Para trabalhar com vários Sistemas Operacionais e Banco de Dados, foi necessário implementar

    do zero uma camada de abstração, criando-se de certa forma um MDC (Máximo Divisor Comum)

    de todas as plataformas, não seria possível fazer um kernel para cada SO e cada Banco., Até

    hoje o kernel é distribuído na forma de um só arquivo: disp+work(.exe), cabendo a uma library a

    adaptação para cada Banco de Dados.

    Onde entra a Tabela BSEG nesta história?

    Nesta conta simples de MDC entre todos os bancos de dados que a SAP suporta ou suportou:

    Oracle, MSSQL, SAPDB, Sybase, Informix, DB2, etc. O resultado certamente não seria animador,

    restrições de todos os lados, uma RDBMS faz isto outro faz aquilo, mas principalmente não faz

    isto, não tem aquilo. Então iniciam-se os vários dilemas e soluções diversas.

    A Tabela BSEG atende uma finalidade funcional muito importante, ela é responsável para persistiros dados de item de documento contábil e deve conter todos os dados necessários para todas as

    integrações com CO, MM, FI-AA, SD, etc. Isto gera a necessidade de uma tabela com muitos

    campos. Em um certo ponto estes muitos campos, extrapola-se ou em número de campos ou em

    tamanho de dados destes campos, o limite do "MDC".

    Surge então uma pequena "gambiarra": a tabela BSEG se torna uma Tabela Cluster e utiliza uma

    tabela Pool, ou seja a estrutura da tabela lógica fica diferente da tabela física no Banco de Dados.

    BSEG: Tabela Cluster, RFBLG: Tabela Pool.

  • 8/19/2019 Bseg New Info

    2/3

    Tabela RFBLG

    Então os dados da Tabela BSEG é armazenada em formato RAW, ou seja, concatenam-se todos

    os bytes de dados de cada campo em uma só "linguiça" e fatia-se em tamanhos de 3800 bytes.

    Por isto não se acostuma-se utilizar "select's" na tabela BSEG, pois se é necessário filtrar por um

    simples campo de conta contábil, o SAP irá solicitar todos os registros do banco e verificar para

    cada registro a equivalência de bytes posicionais de cada registro com a conta contábil.

    Só é permitido o uso através do uso de leitura da tabela pela sua chave primária.

    A Nota da SAP número 1892354 transforma a tabela BSEG de uma tabela cluster para uma

    tabela transparente. 

    Assim a partir deste ponto abrem-se toda uma nova linha de programas, integrações, jobs, exitsque não precisam fazer select's nas tabelas auxiliares BSIS, BSAS, BSAD, BSID, BSAK, BSIK.

    Além de fazer uma atividade impossível, realizar SAP Query e InfoSet com join na BSEG.

  • 8/19/2019 Bseg New Info

    3/3

    Tchau BSEG, bem vinda BSEG.

    PS.: Complementando o comentário da Claudia, referente a performance.

    1) A tabela BSEG para todos os bancos de dados de trabalhei, o tamanho do registro da BSEG

    atende em 1 registro da tabela RFBLG, portanto não necessita-se ler dois ou mais registros para

    compor um registro na BSEG.2) A transferência de dados entre RFBLG e BSEG é feita diretamente em endereçamento de

    memória, não existe necessidade de conversão.

    3) Devido a existência das tabelas índices, a maior parte de tratamento de dados de leitura e

    atualização é feita através destas tabelas e a tabela BSEG não é consultada.

    4) O ganho em processamento de Insert no Banco é irrisório e distribuído em cada transação

    contábil.

    Devido a isto, provavelmente, deve-se a morosidade na mudança da BSEG.

    Para aplicações, transações, relatórios em código de cliente, abre-se todo um novo range de

    aplicações.

    1) Pode-se fazer consultas na tabela BSEG em campos diferentes da chave primária.

    2) Pode-se finalmente criar índices a fim de que estas consultas seja optimizadas.

    3) Pode-se criar views "transparentes" com outras tabelas.

    4) Desenvolvimento de SAP Queries de forma imediata por consultores funcionais.