Você está na página 1de 27

ABAP Training

Data Dictionary

1
ABAP Training

1. Objetivos

Apresentar conceitos de Bancos de Dados Relacionais

SAP vs Modelo Relacional

Conhecer as ferramentas básicas do Dicionário de Dados do R/3

Criar objetos através do Dicionário de Dados

2
ABAP Training

2. Conceitos de Bancos de Dados Relacionais

Modelo Entidade-Relacionamento

Modelo desenvolvido para facilitar o projeto de banco de dados,


permitindo a especificação de um esquema que represente a estrutura
lógica global de um banco de dados.

Entidade: É um objeto que existe e é distinguível de outros objetos,


ou seja, identifica o agrupamento de objetos do mesmo tipo.
Exemplos: Clientes, Bancos, Agências, Contas-Corrente.

Atributos: São os qualificadores de uma entidade, isto é,


representam no modelo o que uma entidade pretende ser. Exemplos:
Nome, RG, CPF, Endereço, Nro Conta, Nro Agência, Nro Banco

Domínio: Conjunto de valores permissíveis para um atributo.


Exemplo: Estado Civil, Sexo, Cor, Meses do Ano.

Relacionamento: É a associação entre duas entidades, ou seja,


representa a maneira como duas entidades estão relacionadas ou
ligadas. Exemplos: Conta-Corrente de um Cliente, Agências de um Banco,
Contas-Corrente de uma Agência.

Restrições de Mapeamento: Representam o modo como as diferentes


entidades de um modelo se relacionam. Determinadas pela
cardinalidade dos relacionamentos entre as entidades.

Um-para-Um: Uma ocorrência da Entidade A está relacionada com


uma e apenas uma ocorrência da Entidade B.

3
ABAP Training

Um-para-N: Uma ocorrência da Entidade A está relacionada com


uma ou várias ocorrências da Entidade B.

N-para-Um: Várias ocorrências da Entidade A estão relacionadas


com apenas uma ocorrência da Entidade B.

N-para-N: Várias ocorrências da Entidade A está relacionada


com várias ocorrências da Entidade B.Modelo Relacional

Um banco de Dados Relacional é a implementação física do Modelo


Entidade-Relacionamento e traduz concretamente o que o modelo
conceitual procura representar. Consiste em uma coleção de tabelas cada
uma das quais associada a um nome único e que possuem relacionamentos
entre si. Tabelas representam fisicamente as Entidades.

Cada tabela possui uma estrutura similar àquilo que pretende a


representar, isto é, tabelas são formadas de linhas que por sua vez são
formadas por colunas. Colunas representam fisicamente os Atributos.

A cada linha da tabela chamamos de Ocorrência e o conjunto de


ocorrências pode ou não estar relacionado com ocorrências de outras
tabelas.

Como distinguir as ocorrências umas das outras?

Utilizando o conceito de Chave Primária!!

Chave Primária: Conjunto de atributos que garante a unicidade de


cada ocorrência da tabela. Exemplos: RG, CPF, Nro Chassis.

Normalização: Processo de reconhecimento da chave primária

4
ABAP Training

Como representar os relacionamentos entre tabelas?

Transferindo a chave primária de uma tabela para a outra!!

Chave Estrangeira: Quando a chave primária de uma tabela é um


atributo em outra(s) tabela(s).

Como definir todos esses elementos num BD?

Utilizando linguagens especiais para cada Sistema Gerenciador de BD.

SQL:
Structured Query Language – Linguagem desenvolvida nos anos 70
para definição e manipulação de dados em sistemas de bancos de dados
relacionais. Conjunto reduzido de comandos, sem recursos de lógica, unica
e exclusivamente para criar objetos no banco de dados e permitir que os
dados possam ser mantidos, de acordo com as necessidades funcionais.
Nos gerenciadores de BD, ferramentas específicas de cada fabricante
oferecem recursos adicionais para a contrução de lógica. Outras linguagens
foram adaptadas para trabalharem em conjunto com o SQL, como COBOL,
C e ABAP/4. O SQL utilizado no R/3 é proprietário e segue um mínimo da
regulamentação internacional para esta, estando longe de possuir os
mesmos mecanismos de funcionamento. Seus comandos podem ser
divididos em:

DDL: Data Definition Language – Comandos específicos para


definição de objetos do banco de dados. Exemplo: Create Table, Create
View, Create TableSpace, Drop Table, etc.

DML: Data Manipulation Language – Comandos específicos para


tratamento dos dados armazenados nos objetos do banco. Exemplo: Select,
Insert, Delete, Update, etc.

5
ABAP Training

6
ABAP Training

3. R/3 Data Dictionary

O dicionário de dados do ABAP/4 (DD) é uma fonte central de


informações provenientes do sistema gerenciador de dados do SAP. Sua
principal função é suportar a criação e o gerenciamento das definições de
dados, também conhecidas como “metadados”.

Neste curso, o DD será utilizado em exercícios práticos com o seguinte


objetivo:

• Visualizar objetos do SAP (Tabelas, estruturas, elementos de dados,


domínios, etc)
• Observar a estrutura e atributos dos dados armazenados nas bases de
dados do SAP.
• Fazer consultas (query) de dados.
• Descobrir os relacionamentos entre diferentes objetos (tabelas e
estruturas de dados).
• Criar objetos (Tabelas, estruturas e elementos de dados) a partir do
dicionário.

Funções desempenhadas pelo Data Dictionary:

Gerenciamento das Definições de Dados


Criação e manutenção das definições de dados num repositório central
Provisão de informações para avaliações
Permite obter informações sobre o modo como os objetos estão relacionados
Suporte ao desenvolvimento
Diferentemente de outros dicionários de dados, está integrado ao ambiente
de desenvolvimento de modo que alterações ou criação de novos objetos
promovem automaticamente a geração dos outros objetos dependentes, sejam
eles parte do dicionário ou programas aplicativos.
Suporte à documentação
Permite obter documentação atualizada
Garantia de que as definições de dados sejam flexíveis e atualizadas
Geração de objetos de runtime garantindo performance.

7
ABAP Training

Transação SE11

Tabelas: Definir a estrutura das tabelas transparentes onde os dados serão


armazenados fisicamente.

Estruturas: Definir estruturas que virão a ser utilizadas em programas para definir a
estrutura de uma tabela interna, ou como include em uma estrutura de uma tabela
transparente.

Visões: Definir relacionamentos entre tabelas transparentes para facilitar o acesso ao


banco de dados, geralmente são criadas para substituir “select join’s” que durante a
execução do programa degradam a performance do mesmo.

8
ABAP Training
Elementos de dados: Associar os atributos técnicos e significado para um campo em
uma tabela.

Domínio: Definir atributos técnicos que serão atribuídos a um elemento de dados

Objetos de bloqueio: Definir os bloqueio de acesso aos dados no banco de dados

Ajuda p/ pesquisa: Definição dos objetos de matchcode que serão utilizados nas telas
do SAP

Grupos de tipos: Os tipos de dados que definem a estrutura de uma tabela, o tipo do
campo em um domínio podem ser armazenados em um pool de tipos, para
posteriormente acioná-los em uma função ou programa.

Estrutura Tabela

9
ABAP Training

Modificar / Exibir a estrutura do objeto

Verificar objeto

Ativar objeto

Lista de utilizações de objeto (Elemento de Dados, Domínio)

Visualizar estrutura de outro objeto

Chaves extrangeiras

Expande todas as estruturas incluídas na tabela

Expande uma estrutura incluída na tabela

Comprime uma estrutura expandida da tabela

Comprime todas as estrutura expandidas da tabela

DER Grafico

Permite anexar campos à estrutura da tabela

Configuração do tipo de dado armazenado, tamanho, buffer

Criação de índices na tabela

10
ABAP Training

Opções técnicas

11
ABAP Training

Criação de Índices

12
ABAP Training

Visões

13
ABAP Training

Elemento de dados

14
ABAP Training

Domínio

15
ABAP Training

4. EXEMPLOS

4.1 Visualização da Estrutura de uma Tabela

a)
1. Acessar o Dicionário de Dados (TOOLS ABAP Workbench
Development ->ABAP Dictionary)
2. Entrar com o nome da tabela de Accounting Document Segment (BSEG)
3. DoubleClick na coluna Field Type ( )
4. Click no matchcode da coluna Data Type ( )
5. Click no botão “Find” ou CTRL + F e procurar o campo WRBTR

b)
1. Acessar o Dicionário de Dados:
Ferramentas ABAP/4 Workbench ABAP/4 Dictionary (SE11)
2. Informar o nome da Tabela BSEG <Display>
3. DoubleClick na coluna Data Elem BUKRS
4. <BACK>
5. Click no matchcode da coluna Ctg
6. <Cancel>
7. <Find> o campo PSWSL
8. <Avançar>
9. Click no botão <Chaves Externas>
10. <ENTER>
11. DoubleClick em sua CheckTable (TCURC)
12. <BACK>
13. Click no botão <Outra Tabela>
14. Informe BKPF <ENTER>
15. Opção GOTO Índices
16. DoubleClick #1
17. <BACK>
18. <CANCEL>
19. Opção Utilitários Administração de Versão
20. <BACK>

16
ABAP Training

4.2 Visualização do Conteúdo das Tabelas


a)
1. Procurar o campo ALTKT
2. Acessar UTILITIES Table Contents -> Display (Transação SE16)
3. Click em executar (F8)
4. DoubleClick em uma linha da tabela
5. Acessar Settings -> List Format -> Choose Fields
6. Desmarcar todos os campos (terceiro botão)
7. Checar ( ) os campos: BUKRS , BELNR , WRBTR , HKONT, LIFNR
8. Click Transfer
9. Acessar Settings -> User Parameters ->
10. Selecionar Field Text
11. Click em Transfer

b)
1. Procurar o campo WAERS
2. DoubleClick em sua CheckTable (TCURC)
3. Opção Utilitários Table Contents (SE16)
4. <F8>
5. DoubleClick na coluna WAERS com valor ADP
6. Click no campo WAERS e <F1>
7. Veja o help e depois <F9>
8. <Cancel> / <Cancel> / <Back> (Table Contents)
9. Voltar à tela de estrutura de tabela (<BACK> 3x)
10. Opção Utilitátios Table Contents
11. <F8>
12. Opção Opções Formato de Lista Seleção Coluna
13. Desmarcar todos os campos (terceiro botão)
14. Selecionar os campos BUKRS, BELNR, GJAHR e XBLNR
15. <ENTER>
16. Selecionar XBLNR = 000022-1
17. <F8>

17
ABAP Training

18. <BACK>
19. Opção Opções Critérios de Seleção
20. Selecionar também WWERT e TCODE <ENTER>
21. Encerrar o DD e retornar ao menu principal do R/3

18
ABAP Training

4.3 Criação de uma tabela customizada

a) Tabela de Contas do Razão


1- TOOLS ABAP/4 WORKBENCH ABAP/4 DICTIONARY
2- Object Name: ZFLABII# (# = número do grupo)
3- <CREATE>
4- SHORT TEST: Lab DD Grupo # - Tabela de Contas do Razão
5- DELIVERY CLASS: A
6- Tab.Maint.Allowed :
7- Field Name: MANDT key: <ENTER>
(Obs: o campo MANDT sempre participa dachave primária e
obrigatório para tabelas Client Dependent)
8- Field Name: HKONT key: (copiar data-element de BSEG-HONT)
9- Repetir o processo para os seguintes campos:

Campo Tabela de Origem

BELNR BSEG key:


GJAHR BSEG
SGTXT BSEG
PSWBT BSEG
DMBTR BSEG
BUDAT BKPF
BKTXT BKPF
TXT50 SKAT

10- Incluir um campo com as seguintes características:


- Field Name: OBS
- Data elem : TOBS_ACC (Double Click para criar)
- Short Text: Texto de Observação do Movimento
- Domain Name: TEXT50
- Data Type : CHAR
- Field length: 20
- Texts: 10 : Obs

19
ABAP Training

15: Observação
20: Observação sobre o movimento

11- Salvar o Data Element


12- Ativar o Data Element
13- <BACK>
14- Salvar a Tabela
15- Verificar a Tabela
16- Ativar a Tabela

b) Dados Adicionais para Nota de Crédito


Criar uma Tabela com as seguintes características:

Nome: ZSEC#
Descrição: Dados Adicionais para Nota de Crédito – Grupo #

Delivery Class: A
Table Maintenance Allowed: Checked

Field Name Key Data Element Type Length Short Text

MANDT X MANDT CLNT 3 Mandante


Documento X VBELN_VF CHAR 10 Doc. Faturamento
Razao ZRAZAO CHAR 40 Razão Social Emissor
Endereco ZENDERECO CHAR 40 Ender. do Emissor
Bairro ZBAIRRO CHAR 20 Bairro do Emissor
Cidade ZCIDADE CHAR 20 Cidade do Emissor
UF ZUF CHAR 2 Unid. Fed. Emissor

20
ABAP Training

2.4. Criação de um Diálogo de manutenção para tabela customizada

Após criar uma tabela customizada, às vezes é preciso que seja criado
um Maintenance Dialog Box, para que seja possível incluir, alterar ou
excluir dados de uma nova tabela através da transação SM30.

Criar um Function Group:


• Transação SE80
• Duplo clique na opção “Function Group”, utilizar o nome ZFG# e pressionar CRIAR
• Apresentar um nome condizente ao grupo de funções e pressionar SAVE
• Ativar a Function Group
• Informar a Development Class utilizada até o momento e pressionar SAVE
• Utilizar o mesmo transporte criado para a criação da tabela no item anterior

Gerar Maintenance Dialog Box


• Tools ABAP Workbench Development Other Tools General Table Maint.
Dialog (ou executar diretamente a transação SE54)
• Escrever o nome da tabela ZTST#
• Selecionar a opção “Generated Objects” e pressionar CREATE/CHANGE
• Pressionar YES no dialog de confirmação
• Informar o Authorization Group &NC&, que não exige autorização
• Informar o Function Group ZFG# criado no item anterior
• Selecionar a opção “One Step” para maintenance type
• <Procurar n° Tela> e <Continuar>
• Pressionar CREATE
• Informar a Development Class utilizada até o momento e pressionar SAVE

Alterar a tabela criada


• Executar a transação SM30
• Informar o nome da tabela ZTST# e pressionar MAINTAIN
• Pressionar NEW ENTRIES , incluir dados e salvar
• Informar o mesmo número de transporte criado para o Function Group
• Selecionar uma das linhas da tabela e pressionar o botão DELETE
• Confirmar a exclusão

21
ABAP Training

2.5. Criação de uma Transação para o Diálogo de manutenção


Executar a transação SE93
Pesquisar no matchcode o nome da transação desejado (de acordo com os padrões de
nomenclatura) e verificar qual o próximo número válido de transação
Informar o nome da nova transação
<CRIAR>
Escolher a opção " Transação com parâmetros”
<CONTINUAR>
Informar texto de descrição da transação (Texto da transação)
No quadro “Valor proposto para”, informar código da transação SM30
Escolher a opção “omitir 1ª tela”
Na primeria linha do quadro "Valores Propostos" :
"Nome do campo da Tela" atribuir "VIEWNAME"
"Valor" atribuir < Nome da Tabela >

Na segunda linha do quadro "Default Values" :


"Nome do campo da Tela" atribuir "SHOW"
"Valor" atribuir ‘X’
<SALVAR>
Informar classe de desenvolvimento
Indicar o request equivalente da atividade
Sair da transação < Voltar >

22
ABAP Training

Testando a Transação:

Sair da transação SE93


Digitar o código da transação criada

23
ABAP Training

EXERCÍCIOS
DATA DICTIONARY

24
ABAP Training

EXERCÍCIO 1

Criar uma ESTRUTURA com as seguintes características:


(Transação SE11 -> clicar em Data Type _> Create -> Selecionar Estrutura

Name: ZSCRIPT# (# = número do grupo)


Short Text: Estrutura de preenchimento do layout set ZM_TSTSCRIPT

Field name Data elem. Type Length Short text

BLDAT BLDAT DATS 8 Date of the document


BELNR BELNR D CHAR 10 Accounting document number
CABIERTO1 BKTXT CHAR 25 Document header text
NAME1 NAME1_GP CHAR 35 Name 1
CABIERTO2 IN_WORDS CHAR 256 Amount in words
SGTXT SGTXT CHAR 50 Line item text
HKONT HKONT CHAR 10 G/L account
TXT50 TXT50_SKAT CHAR 50 G/L account long text
XBLNR XBLNR CHAR 16 Reference document number
BEDAT EBDAT DATS 8 Purchasing document date
EBELN EBELN CHAR 10 Purchasing document number

25
ABAP Training

EXERCÍCIO 2

Tabela BSEG

1 - Dado uma GL account HKONT = 50014001. Encontrar todos os


documentos associados, selecionar apenas os campos BUKRS, BELNR,
GJAHR, DMBTR, WRBTR, HKONT, DMBE2 e imprimí-los.

2 - Dado o documento de número 1200000005. Verificar quais contas


incluem este documento (imprimir).

3 - Encontrar a GL account que inclui o documento do ex 2 e possui o


campo de line item (BUZEI) igual a 2.

Tabela BKPF

4 - Encontrar documentos que possuam:

Company Code = RP01


Document Date = 28.12.2000
Posting Date = 28.12.2000

26
ABAP Training

EXERCÍCIO 3

Criar uma Tabela com as seguintes características:

Name: ZTBL# (# = número do grupo)


Short Text: Tabela para manutenção via transação SM30

Field Name Key Data Element Type Length Short Text

MANDT x MANDT CLNT 3 Client


BELNR x BELNR D CHAR 10 Acc. Doc Num
TXT50 TXT50_SKAT CHAR 50 G/L acct long txt

Criar um diálogo de manuntenção com as seguintes características:

Function Group: ZGF#

Utilizar a transação SM30 para manutenção desta tabela.

27

Você também pode gostar