Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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.
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.
Laboratorul 3 Page 3
Programare ABAP
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.
Laboratorul 3 Page 4
Programare ABAP
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
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
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
Laboratorul 3 Page 9
Programare ABAP
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