Você está na página 1de 3

Tabelas Internas Parte I

15 DE SEPTEMBER DE 2012 0 C O MMENTS

Tabelas Internas (Internal Tables)


Uma tabela interna um objeto de dados, no qual voc pode manter vrios registros de dados estruturados de forma idntica que encontramos no banco de dados. O nmero de registos de dados limitado apenas pela capacidade das instalaes especficas do sistema. O ABAP runtime gerencia dinamicamente o tamanho da tabela interna. Quer dizer, voc como desenvolvedor no precisa se preocupar com o gerenciamento de memria. Os conjuntos de dados individuais em uma tabela interna so conhecidos como linhas ou registros. Resumindo: as tabelas internas so uma forma simples de processar uma grande quantidade de registros. Alguns usos so: Reter as informaes do banco ou de um arquivo para processamento futuro; Formatar informaes para apresentar na tela ou imprimir; Formatar informao para outros servios. Por exemplo: subrotina, mdulo de funo, etc.

Propriedades das tabelas internas


Tipo de Linha: Descreve a estrutura das linhas (os campos) da tabela. Chave : A chave de uma tabela interna consiste em campo(s), incluindo a sua ordem, tanto que em alguns casos essa ordem utilizada para organizar os dados. Dependendo do tipo de acesso, a chave pode ser definida como nica ou no-nica. A chave nica quer dizer que na tabela nunca haver valores repetidos nos campos chave. Categoria/Tipos de Tabela: Any, Index, Standard, Sorted e Hashed.

Tipos de Tabela
Genricas: Any Table : Tipo de tabela genrica. Este tipo de tabela s pode ser utilizada por field symbols e para parmetros de interface de procedures. Index Table : Para criar uma tabela genrica com acesso por ndice. O tipo de tabela ANY, pode representar qualquer outro tipo de tabela, ou seja, voc pode passar tabelas dos trs tipos abaixo a um field symbol definido com esse tipo. Entretanto, as operaes utilizando o ndice no so permitidas, pois o tipo de tabela Hashed no tem ndice. Especficas:

Standard : Tabela Padro, derivada do tipo Index Table. Sorted : Tabela ordenada, tambm derivada do Index Table. Esta tabela automaticamente ordena os registros em ordem crescente pela chave. Hashed : Tabela hash, derivada do tipo Any Table. Estes trs tipos determinam como o sistema ir acessar os registros da tabela. Para o tipo Standard feito procura linear. No Sorted a busca binria e no tipo Hashed feito a busca usando um algortimo de hash. Tabelas do tipo hashed no podem ser utilizadas em field symbol ou parmetros de interface. Confira na tabela abaixo as formas de acesso e os tipos de tabelas: Tabelas Indexadas Tipo de tabela Indexada Chave Tipo de Chave Leitura STANDARD SIM SIM Nom-Unique Principalmente pelo ndice SORTED SIM SIM Unique | Nom-Unique Principalmente pela Chave Tabela Hashed HASHED NO SIM Unique Exclusivamente pela chave Leitura pelo ndice quando

acessamos um registro na tabela atravs do nmero da linha. Leitura pela chave quando usamos uma chave para ler o registro.

Dependendo da forma que for trabalhar com a tabela, voc ter que escolher uma que se adeque melhor a suas necessidades e que garanta melhor performance. A princpio iremos utilizar apenas tabelas do tipo Standard. Mas, em alguns casos a forma de acesso (sintaxe) so idnticas aos trs tipos de tabela.

O cdigo abaixo mostra uma forma de definir uma tabela interna.


"d e f i n i n d ou mt i p od et a b e l al o c a lT Y P E St t _ d d 0 2 d

T Y P ES T A N D A R DT A B L EO Fd d 0 2 d"e s t r u t u r ag

Quando olhamos no ABAP Debugger podemos ver a tabela com vrias linhas da estrutura dd02d:

Podemos tambm definir tabelas internas diretamente. Para isso, usamos DATA ao invs deTYPES. No exemplo acima foi usado objetos do Dictionary. Mas no necessrio, podemos fazer tudo no escopo local:

*E S T R U T U R AL O C A L T Y P E S :B E G I NO Fs t _ e x e m p l o ,

c a m p o 1

T Y P Ec ,

c a m p o 2

No cdigo abaixo exemplifica as trs formas que podemos usar para definir tabelas internas.
" 1D A T AI T A BT Y P E. " 2 " S T A N D A R DD A T Ai t a bT Y P E S O R T E D T A B L EO F

Lembrando que quando no for definido explicitamente o tipo da tabela ser o Standard (que padro). O tipo de chave ser No nica (non-unique) tanto que essa opo valida apenas para o tipo de tabela Standard. A chave ser todos os campos que forem no numericos. At a prxima!