Sunteți pe pagina 1din 10

Programare ABAP

Laboratorul 3 Tabele n ABAP

Tabele din baza de date SAP sunt de departe cel mai des utilizat suport de stocare a datelor
pentru aplicaiile scrise n ABAP. Toate setrile sistemului sunt stocate ca tabele de
customizare, iar aproape toate utilitarele de dezvoltare a obiectelor ABAP din dicionarul
ABAP sunt salvate ca tabele din baza de date.

ABAP Workbench furnizeaz o tranzacie denumit ABAP Dictionary (SE11), care permite
crearea tabelelor, vizualizarea datelor i modificarea atributelor tabelelor. ABAP Dictionary
administreaz tabelele din baza de date i conine informaii legate de atributele tehnice ale
bazei de date. Una dintre cele mai importante sarcini ale unui programator ABAP este s
regseasc i s salveze date din i n baza de date din sistemul SAP. ABAP Dictionary permite
i stocarea diferitelor tipuri de date care pot fi utilizate de ctre mai multe pachete. O trstur
important a ABAP Dictionary este aceea c tipurile structurate pot fi instaniate ca i tabele
ale bazei de date din baza de date cetral a sistemului ABAP, structura tabelei fiind adresat ca
un tip (TYPE).

Pentru ca o tabel s fie definit, este neecsar s aib o descriere, o clas de livrare (delivery
class) i o mulime de restricii de ntreinere (maintenance). Ultimele dou proprieti
determin modul n care coninutul tabelei este utilizat atunci cnd se doretze vizualizarea
datelor.

Utilitarul Table maintenance va permite crearea unei interfee cu utlizatorul pentru ntreinerea
datelor din tabel, acesta fiind accesat prin intermediul tranzaciei Maintain Table Views
(SM30).

Exist trei tipuri de tabele n SAP: transparent, cluster i pooled. De obicei vom lucra cu tabele
transparente. Un transparent table se utilizeaz pentru a stoca date ntr-o aplicaie. Se pot
folosi comenzi native sql sau OPEN SQL pentru a accesa datele din tabelele transparente. Unui
tabel din Data dictionary i corespunde n relaie one-to-one un tabel din baza de date. Structurii
acestuia n R/3 Data Dictionary i corespunde o singur tabela din baza de date. Tabela din baza
de date are acelai nume, acelai numr de cmpuri, iar cmpurile au acelai nume ca i definiia
tabelei din R/3.

Numele tabelei trebuie s verifice aceleai reguli de denumire, i anume numele acesteia trebuie
s nceap cu una dintre literele Z sau Y, cel mai comun fiind Z.

Obiectele din dicionarul ABAP sunt furnizate pe trei niveluri de utilizare:


Tabele i structuri;
Data elements (elemente de date);
Domains (domenii).

Atunci cnd se creaz un tabel n Data Dictionary, fiecare cmp este asignat unui data element.
Fiecare data element are asignat un domeniu de valori (domain).

Laboratorul 3 Page 1
Programare ABAP

Data Elements furnizeaz cmpului etichete i documentaie. Un data element descrie atributul
tipului (tipul de date, dimensiunea cmpului i dac este cazul numrul de zecimale) i
informaiile care vor fi afiate pe ecran (texte explicative sau ajutor) unui obiect nestructurat de
date (cmpurile unui tabel, c\mpuri de tip structur sau variabile).

Cmpurile unui tabel sau ale unei structuri care au acelai coninut ar trebui s fie referite ctre
acelai data element. Acest lucru asigur faptul c atributele cmpului sunt consistente. Un data
Element poate fi referit ntr-un program ABAP utiliznd TYPE. Aceasta permite definirea
variabilelor care au aceleai atribute ale datelor. Un data element este un obiect care definete
un tip elementar de date. n afara proprietilor tehnice a unui cmp al tabelei, descrie i nelesul
semantic, conine antetele care vor fi afiate cnd este vizualizat coninutul tabelei i textele de
documentaie. Proprieti precum tipul de date, dimensiunea, etc sunt definite pe baza unor
tipuri predefinite, sau copiate din domenii (Domains).

Un Domain definete un interval de valori, descriind valori valide ale datelor din cmpurile
care sunt referite la acel domeniu. Intervalul de valori al unui domeniu este definit specificnd
tipul de date i dimensiunea (daca este cazul i numrul de zecimale). Domeniul descrie
proprietile tehnice ale elementelor de date, cum ar fi tipul i intervalul de valori i poate fi
legat de multe elemente de date. Mai multe cmpuri tehnice de acelai tip pot fi combinate ntr-
un domeniu. Cmpurile care se refer la acelai domeniu sunt modificate n acelai timp daca
domeniu se modific. Acest lucru asigur consistena cmpurilor.

Figura 1 - Diferenta dintre un domeniu i un element de date

Table Maintenance Generator (TMG) este utilizat pentru a crea un program de ntreinere a
tabelei, care permite adugarea, modificarea, sau tergerea nregistrilor dintr-o tabel din baza
de date. Este generat pentru a menine datele customizate prin intermediul unor dialoguri de
ntreinere. Un TMG poate fi verificat utilizndu-se tranzacia SM30. n sistemul de producie,
utilizatorii finali i dezvoltatorii nu vor avea acces la tranzacii cu coduri precum SE11 i SE16.
Pentru a modifica sau crea coninut pentru o tabel a bazei de date, se folosete TMG. Folosind
TMG se poate edita sau crea multiple intrri la un moment dat.

Laboratorul 3 Page 2
Programare ABAP

Tipuri de ntreinere
One step dialog creaz un singur ecran de ntreinere (overview screen) care conine toate
cmpurile. Permite crearea mai multor intrri.
Two step dialog permite crearea unui ecran suplimentar (single screen), pe lng overview
screen. Overview screen conine doar cmpurile de tip cheie i texte mai mari de 20 caractere
iar single screen conine toate cmpurile. Single screen poate fi apelat dintr-un overview screen
utiliznd combinaii de taste, pentru fiecare intrare. Se poate introduce o singur intrare la un
moment dat.

Function Group permite gruparea tuturor modulelor de ntreinere care sunt generate pentru
un tabel sau un view. Ele nu sunt programe executabile. Deci nu pot fi apelate utiliznd codul
unei tranzacii. Unicul lor scop este sa serveasc drept programe principale pentru modulele de
funcii (function modules). n general, un Function Group conine mai multe functions modules
care realizeaz funcii specifice sau opereaz pe date similare.

Function Modules sunt o parte a unui program care poate fi stocat la nivel global, deci poate
fi utilizat de ctre toate programele ABAP. Acestea sunt grupate n cadrul unui Function
Group. Utilizndu-le, dezvoltatorul poate profita pe deplin de modularizarea datelor.

Aplicaie
S se creeze o tabel cu urmtoarea structur: cod client, user name, nume, prenume,
data nasterii i adresa. S se creeze un TMG pentru lucrul cu datele din tabel.

Rezolvare:
1. Se vor crea domenii de date pentru variabilele:
ZZ_FIRSTNAME de tipul CHAR50;
ZZ_LASTNAME de tipul CHAR50;
ZZ_ADDRESS de tipul CHAR80.

2. Se vor crea elemente de date bazate pe domeniile construite anterior:


ZZ_FIRSTNAME pe baza domeniului ZZ_FIRSTNAME;
ZZ_LASTNAME pe baza domeniului ZZ_LASTNAME;
ZZ_ADDRESS pe baza domeniului ZZ_ADDRESS.

3. Se va crea tabelul: ZTEST_FEAA_DT (cu descrierea: First test database table for
FEAA) cu urmatoarele cmpuri:
MANDT de tipul MANDT, key;
USERNAME de tipul UNAME, key;
FIRSTNAME de tipul ZZ_FIRSTNAME;
LASTNAME de tipul ZZ_LASTNAME;
DATEOFBIRTH de tipul DATUM;
ADDRESS de tipul ZZ_ADDRESS.

4. Se vor asigna detalii tehnice tabelului.

5. Se va genera un Table Maintenance Generator testndu-se att varianta cu un ecran


ct i varianta cu dou ecrane.

Laboratorul 3 Page 3
Programare ABAP

1. Crearea unui domeniu

a. Lansai n execuie tranzacia SE11, selectai Domain, tastai un nume (unic!) pentru
domeniu, apoi apsai Create.

b. Tastai o scurt descriere, apoi tipul de date, n acest caz CHAR, dimeniunea de 50 de
caractere.

c. Salvai i activai domeniul.

Creai celelalte dou domenii.

Laboratorul 3 Page 4
Programare ABAP

2. Crearea unui element de date


a. Selectai Back. Selectai Data Type, tastai numele, apoi apsai Create.

b. Select Data Element, then click Continue

c. Tastai o scurt descriere, pe tab-ul Data Type, apoi tastai la Domain numele
domeniului creat anterior, apoi apsai tasta Enter. Tipul de dat i dimensiunea vor fi
afiate automat. Salvai elementul de dat ca Local Object.

Laboratorul 3 Page 5
Programare ABAP

d. La ntrebarea Maintain selectai bifa verde.

e. n fereastra care apare, completai Field Label i apsai Enter. Dimensiunea va fi


automat calculat i afiat. Activai elementul de dat.

Creai celelalte dou elemente de dat.

3. Crearea tablei

a. Selectai Database table. Tastai numele tabele (nume unic!) ZZTEST_Tabel1DT, apoi
apsai Create.

Laboratorul 3 Page 6
Programare ABAP

b. Tastai o scurt descriere, apoi pe pagina Delivery and Maintenance, selectai clasa de
livrare A i Display/Maintenance Allowed.

c. Selectai pagina Fields. Tastai numele cmpului, verificai daca este cheie i dacare o
valoare iniial, apoi tastai numele elementului de dat corespondent, apoi tasta Enter.

d. Selectai Technical Settings. La Data Class selectai APPL0 iar la Size Category intre
0 i 1.500. Salvai i activai tabela. Unele avertizri vor apare, dar nu sunt erori.

Laboratorul 3 Page 7
Programare ABAP

4. Crearea unei funcii de grup


In SE80, tastm numele funciei de grup, apoi apsm tasta Enter. Selectm Yes, apoi tastm o
scurt descriere i apsm butonul Save. Salvm n Local Objects. Se activeaz Function
Group.

5. Crearea unui Table Maintenance Generator

Selectnd tabela creat anterior, din Dictionary Objects, din meniul Utilities/Table
Maintenance Generator. Pentru nceput vom testa TMG n doi pai (cu dou ecrane).

La opiunea Authorization group se selecteaz &NC&, iar la Function Group grupul de funcii
pe care l-am creat anterior. Pentru a determina numrul de ecrane se selecteaz Find Scr.
Numbers(s), apoi Propose screen number(s). De pe bara de meniuri, Generated
Objects/Create.

Laboratorul 3 Page 8
Programare ABAP

Se salveaz n Local Object.

Ieii din SE80. n SM30. Tastai numele tabelei. Selectai Maintain.

Laboratorul 3 Page 9
Programare ABAP

Pentru a aduga noi intrri, se selecteaz butonul New Entries.

Se adaug date n tabel. Selectai Change->Display. Noua intrare va fi adugat n tabel.

Intrai n SE80. Selectai Utilities/TMG. tergei TMG creat anterior, folosing butonul de pe
bara de unelte. Selectai One step, Find Scr. Number(s). Selectai Continue, apoi Generated
Objects/Create.

Testai TMG. Activai tabelul, selectai o alt sesiune de lucru, SM30, tastai numele tabelului,
apoi Maintain.

Laboratorul 3 Page 10

S-ar putea să vă placă și