SAP – Database – NSP- Entendendo os Mandantes (System Clients) – Campo MANDT

Publicado: 23 de maio de 2014 em Abap, Sql

O SAP R/3 possui um conceito de clientes definidos por diferentes cenários dentro de um sistema SAP, cada cliente possui um proposito exclusivo e por padrão alguns destes clientes são configurados durante a instalação do R/3, é possível que um implementador configure seus próprios clientes a partir da configuração padrão.

Basicamente todos os objetos e dados que pertencem a um cliente estão contidos dentro do banco de dados do SAP, entre as milhares de tabelas do sistema, estão todas as configurações necessárias para que o sistema funcione corretamente e é onde também estão as configurações customizadas de cada implementação, incluindo tabelas, dados, programas, funções, classes entre outros.

NetWeaver 7

O NetWeaver 7 roda sobre o banco de dados da SAP chamado NSP, e por padrão possui os esquemas DOMAIN, SAPNSP, SUPERDBA, SYSINFO, possui índices, Stored Procedures, Sinônimos, mas não possui Triggers, é comum sistemas de grande porte não utilizarem Triggers estas são consideradas armadilhas por muitos DBAs, por gerar erros desnecessários e minimizar a velocidade do sistema já que normalmente tratam registro a registro até os procedimentos de dados em massa, mesmo as IDEs de programação SQL de hoje mudaram a localização do node de Triggers em sua interface, pois antes costumavam ficar junto com as tabelas e eram facilmente esquecidas na hora da programação as tornando muitas vezes invalidas.

Cliente 000

O cliente 000 é o cliente SAP standard, que quando uma nova versão é instalada, SAP atualiza automaticamente: os conteúdos e estruturas de tabelas, os programas, as telas, os formulários, a ajuda on-line e outros objetos e dados do sistema SAP. Este cliente sempre tem o status atual padrão e você pode transferir as configurações padrão do cliente 000 para um outro cliente. O cliente 000 não é um cliente de trabalho e sim de configuração inicial do sistema.

Por padrão os dados de exemplo do NetWeaver 7 e este conjunto de tabelas e dados é chamado Flight Model estão armazenados dentro do cliente 000 e precisa ser transportado para um cliente por exemplo de DEV ou SANDBOX para poder ser utilizados corretamente. Neste post não vamos importar os dados definitivamente, o objetivo é entender como funciona o armazenamento de dados dentro de um cliente.

Para informação adicional sobre os clientes do sistema SAP clique aqui.

Mandante

O mandante é o nível máximo da hierarquia no sistema SAP, as especificações feitas, ou os dados entrados neste nível são válidos para todas as empresas e para todas as outras estruturas organizacionais. Portanto, é necessário fazer essas especificações, ou entrar com esses dados somente uma vez. Isto assegura a consistência dos dados.

Os usuários devem entrar com uma chave de mandante quando fazem o logon no sistema SAP. Isto define o mandante em que eles pretendem trabalhar. Todas as entradas feitas são salvas por mandante. Processamento e analise de dados são também executados por mandante. Um mandante contem a unidade comercial, organizacional e tecnicamente auto-contida em um sistema SAP. Os mandantes têm os seus próprios registros mestre e conjuntos de tabelas. A definição de unidade organizacional mandante é obrigatória.

Na pratica o mandante é um campo chave existente em quase todas as tabelas do banco de dados do sistema SAP. Existem transações que contem programas que manipulam configurações entre clientes, este programas visam manter consistência de configuração e dados de todo o sistema SAP, quando se manipula requisitos de transportes de um cliente para o outro.

Workaround Para Transportar Dados

Você NUNCA deve executar este tipo de procedimento em um sistema SAP a não ser que esteja utilizando uma cópia de estudos. É possível fazer o transporte diretamente no banco de dados usando simples instruções SQL, mas para isso você deve conhecer a modelagem de dados principalmente no que se refere as chaves estrangeiras.

A seguir vamos mostrar como funciona realmente o conceito de mandantes e como os dados são passados de um cliente para o outro.

1-  Primeiro você precisa de um acesso de DBA e uma ferramenta de SQL do banco de dados utilizado pelo seu sistema SAP, em nosso caso estamos usando o SAP MaxDB e o SQL Studio. Vamos efetuar um comando básico na tabela de exemplo do Flight Model do NetWeaver 7, chamada SCARR e poderemos ver que os dados estão contidos apenas no mandante padrão que é o cliente 000.

Dados - Mandante 000

Dados – Mandante 000

2 – No dicionário de dados na transação SE11, podemos ver a estrutura da tabela SCARR, a mesma que esta aberta no Studio SQL, porem no sistema R/3 estamos logados no mandante 001 e como podemos ver na tabela acima não existe dados para o campo MANDT para o cliente 001.

SCARR - Estrutura

SCARR – Estrutura

3 – Quando tentamos verificar o conteúdo da tabela SCARR sobre o mandante 001 o sistema acusa corretamente que não existe dados.

SCARR - Dados - 001

SCARR – Dados – 001

4 – Para transportar os dados para o mandante 001 basta utilizar uma instrução SQL básica contendo um comando INSERTSELECT com um alias no campo mandante, visto que é preciso respeitar a ordem da proteção referencial do banco de dados sobre as chaves estrangeiras contidas na tabela, esta tabela por ser uma tabela pai não possui uma chave estrangeira atrelada a ela.

Transporte - Insert...Select

Transporte – Insert…Select

5 – Após as rows serem duplicadas com sucesso você pode verificar usando uma instrução Select.

Dados Transportados

Dados Transportados

6 – Agora você pode verificar o conteúdo da tabela SCARR dentro do mandante 001 no qual estávamos logados e os dados serão encontrados.

Mandante 001 - Dados

Mandante 001 – Dados

OBS: Existem ferramentas especificas para transporte entre os clientes, este método pode ser utilizado somente a nível de estudo, em um ambiente empresarial você esta sujeito aos termos de garantia do sistema SAP.

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s