O Dicionário ABAP (SE11) permite centralizar a definição e a gestão de tipos:
- Criação de elementos de dados definidos pelo usuário, estruturas e tipos de tabela.
- Definição de tabelas, índices e visualizações.
- Definição dos serviços que suportam o desenvolvimento do programa.
- O bloqueio de tabela e liberação de bloqueio.
Definindo a ajuda de entrada (F4) e a ajuda de campo (F1) .
Mudanças no Dicionário ABAP entram imediatamente em vigor para os programas que usam o que os elementos do dicionário.
Definição
Três tipos de dados podem ser definidos:
- Elemento de dados (Data Element)
- Estrutura (Structure)
- Tipos de Tabela (internal tables)
Type Group
A opção tipo de grupo (Type Group) é fornecida pelo dicionário e está principalmente lá para apoiar o desenvolvimento antigo. (tipo de grupos estavam disponíveis antes de tipos de dados serem suportados.) Tipo de Grupos agora são usados principalmente para definir constantes não-orientadas a objetos.
Domain
Dados de domínio (Domain) estão disponíveis para apoiar a definição de tipos de dados, mas os dados de domínio não são acessível em um programa ABAP.
Tables
Tabelas consistem em colunas (campos) e linhas (entradas). No ABAP tabelas do Dicionário têm nomes e atributos gerais, como classe de entrega e manutenção de autorização. A tabela tem um ou mais campos-chave, designados como a chave primária. campos da tabela são geralmente baseados em elementos de dados que se baseiam em dados do domínio. Campos de tabela podem ser digitados sem referência a um elemento de dados (Foreing Key). Neste caso, o campo é dito ser digitado direto. Tabelas têm configurações técnicas que regem a forma como o sistema deve otimizar o armazenamento de dados e acessar a tabela.
Tabelas Transparentes
Quando uma tabela é definida no dicionário ABAP, ela é uma tabela transparente. Quando a tabela transparente é ativada, ela é criada no DBMS subjacente. A tabela específica do DBMS tem o mesmo nome que o nome da tabela transparente no ABAP Dictionary. Os tipos de campo na tabela DBMS específicas são convertidos para qualquer que seja a definição do tipo de dados apropriado no DBMS. Os elementos do quadro (por exemplo, campo, etc) subjacente podem ser alterados conforme necessário. A tabela transparente no Dicionário ABAP é a representação independente de banco de dados da tabela subjacente, e é usada em programação ABAP.
Open SQL
Instruções SQL abertas(Open SQL) em programa ABAP são convertidas em instruções específicas do banco de dados SQL pela interface de banco de dados.
É possível ter acesso ao banco de dados com SQL nativo, mas o código é então do banco de dados específico e menos transportável.
Muitas declarações Open SQL se espelham nas instruções de SQL “tradicionais”, mas com diferenças sutis e refinamentos.
Open SQL contém apenas manipulação de Dados por comandos de linguagem (DML). As operações são feitas utilizando o Dicionário ABAP.
Quatro comandos Open SQL básico:
- SELECT – seleciona dados em uma tabela.
- UPDATE – altera dados em uma tabela.
- INSERT – insere dados em uma tabela.
- DELETE – apaga dados em uma tabela.
Sap Luw
SAP LUW (unidade lógica de trabalho) é um conjunto de alterações lógicas para um banco de dados onde todas pertencem uma a outra. O LUW é feito de acordo com o princípio de “tudo ou nada”, se sequência inteira não pode ser terminada, a operação será revertida (Rollback).
Operação Commit é cometida implicitamente ou via instrução ABAP COMMIT WORK. Rollback é feito via instrução ROLLBACK WORK.
Necessidade do LUW
SAP ERP possui arquitetura cliente-servidor de três camadas. No servidor de aplicação, as aplicações do usuário final são executadas através de processos de trabalho. Trabalho de vários processos em vigor simultaneamente. Ao particionar operações de banco de dados em LUWs, a integridade do banco de dados pode ser mantida e um processo de trabalho pode acessar e liberar recursos de banco de dados rapidamente.
Database Locking
Para evitar alterações simultâneas em tabelas de banco de dados a partir de vários programas, os bloqueios são usados.
Exemplo: o comando select campo (single) da tabela DBTABLE FOR UPDATE irá bloquear o registro selecionado na expectativa de uma mudança pendente. No final do LUW, o bloqueio é libertada.
Para bloquear um recurso para uma sequência mais prolongada, o sistema mantém uma tabela de bloqueio global que gerencia as travas definidas programaticamente para vários recursos.
Para definir o bloqueio: lockobject ENQUEUE.
Para liberar o bloqueio: lockobject DEQUEUE.
SY-SUBRC é definida após todas as operações de banco de dados. 0 = conclusão bem sucedida. Outros valores indicam diferentes tipos de erro, sy-dbcnt está definido para o número de registros afetados pela última operação.
A maioria das tabelas de sistema contêm um campo MANDT para designar um cliente. Comandos OPEN SQL por padrão são feitos apenas para o cliente atual. Para substituir esse comportamento adicione a cláusula CLIENT SPECIFIED ao comando.
JOINS
É possível unir tabelas em uma consulta.
Sintaxe:
SELECT * FROM table1 INNER JOIN table2 ON table1~field = table2~field WHERE <condition>.
Chamado link em ABAP. Se um JOIN é feito em um programa, é um vínculo dinâmico. Links pré-existentes, links estáticos, são definidos no Dicionário ABAP. Estes são chamados de Views.
Revisão e Exemplos:
Comandos Open SQL tabelas transparentes: https://desenvolvimentoaberto.wordpress.com/2014/02/20/select-e-insert-abap/
Comandos Open SQL tabelas Internas: https://desenvolvimentoaberto.wordpress.com/2014/02/20/internal-tables-abap/
Modelo de Dados do Dicionário ABAP: https://desenvolvimentoaberto.wordpress.com/2014/02/20/netweaver-flight-model-introducao-ao-database-mini-sap/
o que é o comando zREC no SAP?
Olá Cristina,
Tudo que começa com Z ou Y no ambiente SAP é algo não standard, então zREC pode ser qualquer coisa, entretanto o REC pode se referir há um item de categoria que é destinado a materiais configuráveis, caso precise copiá-lo pode criar uma zREC.
Espero ter ajudado,
Abraços.