Sunteți pe pagina 1din 3

Curs – ABAP Optimization – Document de lucru

VTKP – 100 campuri – 8 milioane inregistrari

VTPO - 100 campuri – 12 milioane de inregistrari

10 Tabele VSAB (tabele de contirbutii) – inainte 2002 (total ~40 de milioane de inregistrari)

10 tabele VSAB (tabele de contirbutii) – dupa 2002 (total ~40 de milioane de inregistrari)

Durata de executie a raportului < 30 min

Zona de memorie ocupata – max 500MB

Ex:

Citim datele din VTKP in GT_VTKP

LOOP at GT_VTKP

- Pe blocuri de 30 de inregistrari: Citire din VSAB in (appending) GT_VSAB FOR ALL ENTRIES IN
GT_VTKP_30
- Procesare blocului de date (~30 de inregistrari)
- Obtinere/afisare rezultat(e) (~30 de inregistrari)

BINARY SEARCH

Avem o tabela interna in care vrem sa citim o linie dupa o anumita cheie
1
7
8
3
9
2
0

Avem o tabela interna cu mai multe chei (mai multe campuri care formeaza cheia tabelei) sortata doar
dupa un camp.
La citirea (READ TABLE) tabelei interne dupa intreaga cheie cu BINARY SEARCH – va citi binary dupa
campul sortat, apoi secvential dupa celelalte campuri din cheie (DE TESTAT!!!)
Field Symbols
- Verificarea daca a fost sau nu assignata zona de memorie cu IS ASSIGNED (si nu IF sy-subrc = 0)
- Verificarea cu IS INITIAL ar putea returna faptul ca adresa la care se refera nu mai este cea
corecta, desi field symbol nu mai este initial.

COLLECT

MATNR

100

100

200

100

VIEWS/ SELECT with JOIN – care e mai performant ca timp de executie?

MOVE CORRESPONDING wa1 TO wa2.

De cautat exemple cu move corresponding gresite

Situatii:
1. Wa1 si wa2 sunt de acelasi tip – OK
2. Wa2 contine mai multe campuri (cu acelasi nume si tip) din wa1 dar si alte campuri.
3. Wa1 si wa2 cateva campuri “commune”:
a. unele cu acelasi nume, tipuri diferite
b. Unele campuri cu nume diferite, acelasi tip
c. Campuri cu nume diferite, tipuri diferite

Exemplu:

http://help.sap.com/saphelp_47x200/helpdata/en/fc/eb3260358411d1829f0000e829fbfe/content.htm

http://scn.sap.com/thread/510730

“If both the tables have same fields, With respect to their type and length then you can just use = or MOVE.

MOVE-CORRESPONDING should be used only when you want to move the data based on field names.

The performance of MOVE Is better than MOVE-CORRESPONDING since here you dont compare the field
names but just do a byte/char sequence copy.”

“If you change an include that is used in both structures, everything works without any needs for updating
the code. However, if you remove a field from an include, or a list of selected fields, you don't get any
warnings that you were actually using this field for something.”
ABAP OO

- Composition instead of Inheritance – (includerea in Clasa “de lucru” a unui atribut de tipul clasei
“mostenite”) – Inheritance este o relatie “IS A”, iar Compostion este o relatie “HAS A”
- Defensive programming (pentru definirea metodelor/atributelor cu nivel de visibilitate cel mai
scazut si in functie de cerinte de poate creste nivelul de vizibiltate)

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