Ballog, czyli logowanie danych w ABAPie

Każdy język programowania posiada możliwość zapisania informacji technicznej, czy też zdarzenia które może być pomocna później na przykład podczas sprawdzenia poprawności działania napisanego programu. W wielu językach czynność ta sprowadza się często do napisania jednej linijki kodu, np:

W ABAPie sytuacja jest trochę bardziej skomplikowana. Zacznijmy może od napisania prostego programu, który będzie opierać się na stworzonych przez nas wcześniej obiektach DDICowych. Żeby nauczyć się czegoś nowego polecam razem ze mną wykonać wszystko w eclipse, oczywiście równie dobrze każdy krok będzie działać też bezpośrednio w SAP GUI.

Uwaga, w tym artykule przedstawiam tylko jeden sposób na obsługę balloga. Nie omawiam tu również szczegółowo wiadomości które wyświetlamy na ekranie użytkownika. Jeśli chcesz dowiedzieć się więcej to zapisz się proszę na listę mejlingową mojego kursu online o programowaniu w ABAPie, który staruje już niedługo !
* pola wymagane

Tworzymy program

1.Odpalmy sobie eclipse, kliknijmy prawym przyciskiem na pakiecie $TMP w naszym projekcie i wybierzmy New->Other ABAP Repository Object

2.Wpisujemy „program” i wybieramy ABAP program

3.Wypełniamy konieczne pola

4.Programujemy sobie teraz raport który będzie umożliwiał wpisanie nam jednego rekordu do naszej tabelki:

 

5.Uzupełnijmy sobie jeszcze text elementy, żeby nazwy naszych parametrów były wyświetlane poprawnie, w tym celu kliknijmy prawym przyciskiem i wbierzmy Open Others-> Text Elements

Debbugujemy

6.Zapisujemy,aktywujemy i uruchamiamy program z wybranymi parametrami np. poprzez F8

7. Sprawdźmy teraz zawartość naszej tabeli, żeby tego dokonać, musimy rozwinąć naszą paczkę $TMP, i poszukać tabeli w katalogu „Database Tables”. Następnie klikamy na tabeli prawym przyciskiem myszy i wybieramy „Open With”->”Data Preview”.

8. Finalnie w tabeli powinien pojawić się nowy rekord

9.Niestety jeżeli jeszcze raz uruchomimy program z tymi samymi parametrami to znów dostaniemy komunikat o poprawnym wprowadzeniu rekordu mimo tego że nic się nie zmieni i w tabeli będziemy mieć wciąż tylko jeden rekord. Dlaczego tak się stało ? Ustawmy breake-point poprzez dwukrotne kliknięcie w pole obok ostatniej lini. Spowodowuje to wyświetlenie w tym miejscu niebieskiej kropki.

10.Teraz kiedy uruchomimy raport znów z tymi samymi parametrami co na początku zobaczymy że wartość sy-subrc jest równa 4, ale co to właściwie oznacza ?

11.Wartość sy-subrc jest aktualizowana każdorazowo po wykonaniu niektórych instrukcji w ABAPie . Aby sprawdzić co oznacza sy-subrc 4 w przypadku insert, pozwólmy zakończyć się programowi poprzez naciśnięcie F8 i wróćmy do perspektywy abapowej naszego raportu.

12.Najedźmy teraz kursorem na insert i kliknijmy F1, następnie wybierzmy INSERT dbtab

13.Po zescrolowniu na dół zobaczymy informacje o sy-subrc mówiącą że nasz wiersz nie jest unikatowy, ale jak to możliwe ? Po porostu nasza tabela którą stworzyliśmy w DDICu podczas ostatniej lekcji ma w kluczu jedno pole: ID i ta wartość musi być unikatowa. Oczywiście po niepoprawnym sy-subrc możemy jedynie wyświetlić użytkownikowi informacje że taki wpis już istnieje, jednak nam zależy również na zalogowaniu tej informacji gdzieś na stałe.

Tworzymy obiekt ballogowy

14.Przejdżmy zatem do transakcji slg0 i kliknijmy na „New Entries”

15.Wypełniamy nazwę obiektu

16.Zapisujemy i dodajemy nasz wpis do transportu

17.Zaznaczamy stworzony obiekt i klikamy na Sub-objects

18.Klikamy znowu na „New Entries”

19.Wypełniamy sub-obiekt i zapisujemy

Używamy balloga w raporcie

20.Zmieńmy teraz nasz program tak aby wyglądał następująco

22. Uruchamiamy nasz program znów z poprzednimi wartościami. Tym razem powinnismy dostać message z informacją o błędzie

23.Przejdźmy teraz do transakcji slg1 i wypełnijmy nazwę naszego obiektu. Warto też zwrócić uwagę na przedział czasowy w jakim wyświetlają się nasze logi, czasami jeżeli nie wyłączamy całkowicie naszej wirtualnej maszyny to data i godzina mogą się różnić od tych ustawionych na naszym systemie. Po wprowadzeniu wartości uruchamiamy program.

24.Finalnie powinniśmy zobaczyć jeden błąd w górnej części programu i po kliknięciu na niego pojawią się nam szczegóły. Od teraz nasze błędne wprowadzenia są już logowane i można do nich wrócić.

To już wszystko w tym artykule poświęconym ballogowi. Od teraz znasz już podstawowy sposób na zalogowanie informacji.


Sprawdź też

Czym jest DDIC ​?

Każdy kto zaczyna swoją przygodę z programowaniem w ABAPie musi poznać DDIC, czym jest i …