ABAP

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

ABAP (ang. Advanced Business Application Programming Objects, pierwotnie niem. Allgemeiner Berichts-Aufbereitungs-Prozessor, procesor tworzenia raportów) – język programowania wysokiego poziomu stworzony przez niemiecką firmę SAP AG.

Język ABAP pierwotnie używany był do tworzenia prostych raportów, aktualnie – ABAP Objects jest językiem programowania platformy SAP NetWeaver 7.0, która pozwala tworzyć kompleksowe rozwiązania do zarządzania korporacjami. Oryginalna składnia języka ABAP przypomina składnię języka COBOL, niemniej obecnie SAP AG dąży do pełnej obiektyzacji aplikacji napisanych w ABAP Objects. ABAP Objects jest uzupełniany takimi technologiami, jak: Dynpro, Web Dynpro czy Business Server Pages, które służą do prezentacji danych.

Historia[edytuj | edytuj kod]

ABAP jest jednym z wielu specyficznych dla aplikacji językiem czwartej generacji 4GL (dlatego też czasem oznaczany jest jako ABAP/4). Pierwsze implementacje to początek lat 80. Pierwotnie był językiem tworzenia raportów w systemie SAP R/2, platformy która umożliwiała wielkim korporacjom budowanie aplikacji typu mainframe do zarządzania materiałami i finansami, a także księgowością finansową.

ABAP był jednym z pierwszych języków, który zawierał ideę logicznych baz danych (LDB), która dostarcza wysokiego poziomu abstrakcji nad bazą danych.

Język ten użyty został do stworzenia platformy SAP R/3. Używany jest także przez klientów SAP do rozszerzania standardu tej platformy, a także do tworzenia własnych, specyficznych rozwiązań.

Język ten jest nieskomplikowany i łatwy do nauczenia się. Jednak do jego pełnego wykorzystania potrzebna jest wiedza o budowaniu relacyjnych baz danych oraz koncepcji programowania obiektowego (ABAP Objects, który ujrzał światło dzienne wraz z wersją SAP R/3 4.6)).

Obecnie ABAP jest nadal wiodącym językiem programowania platformy SAP R/3, jednak w ostatnich wydaniach systemu (NetWeaver) kooperuje on z językiem Java. Używany jest także jako język skryptów wykonywanych po stronie serwera w technologii BSP (ang. Business Server Pages) do tworzenia rozwiązań biznesowych opartych o technologie webowe.

Implementacja[edytuj | edytuj kod]

Wszystkie programy ABAP rezydują w bazie danych systemu SAP. Nie są przechowywane w oddzielnych plikach jak w językach Java czy C++. W bazie danych wszystkie programy ABAP istnieją w dwóch formach: kodu źródłowego, który może być edytowany i przeglądany w tzw. ABAP Workbench oraz wygenerowanego kodu, binarnej reprezentacji porównywalnej do kodu Java.

Programy ABAP uruchamiane są pod kontrolą tzw. runtime system, który jest częścią jądra systemu SAP. Runtime system odpowiedzialny jest za przetwarzanie instrukcji ABAP, kontrolowanie logiki przepływu ekranów oraz reagowanie na akcje użytkownika (np wciśnięcie przycisku na ekranie).

Kluczowym elementem języka ABAP jest interfejs bazodanowy, który zamienia niezależne od użytej bazy danych instrukcje ABAP (Open SQL) na instrukcje zrozumiałe i natywne dla zastosowanego systemu bazodanowego (Native SQL). Interfejs bazodanowy przejmuje całą komunikację z relacyjną bazą danych w imieniu programów ABAP; zawiera także szereg dodatkowych funkcji jak buforowanie najczęściej używanych danych w pamięci lokalnej serwera aplikacji.

Zastosowanie Open SQL pozwala na wyodrębnienie 2 i 3 warstwy w systemie SAP, czyli warstwy aplikacji – programy ABAP, oraz warstwy bazy danych. Dodatkowa, trzecia warstwa, to warstwa prezentacji, która ma na celu wyświetlenie wyników działania z programem ABAP oraz dawać możliwość komunikacji użytkownika z programem.

Przykład[edytuj | edytuj kod]

Prosty program:

************************
** Raport przykładowy **
************************
 
* Gwiazdka w pierwszej kolumnie rozpoczyna komentarz jednowierszowy.
* Każde wyrażenie musi kończyć się kropką; podział na wiersze może
* być inny niż proponowany niżej.
 
REPORT przykladowy. " cudzysłów czyni komentarzem kolejne znaki wiersza
 
DATA: " deklaracja zmiennych
  text    TYPE STRING,
  counter TYPE I VALUE 0,
  str     TYPE STRING.
 
WRITE 'Witaj świecie!'.
 
* wszystkie operatory muszą być oddzielone spacjami od argumentów, podobnie nawiasy
IF 0 = 1. " instrukcja warunkowa
  WRITE / 'Ten napis nie zostanie wyświetlony!'.
ENDIF.
 
WHILE counter LT 5. " pętla warunkowa
  str = counter.         " konwersja (rzutowanie)
  CONCATENATE 'Cześć, jestem iteracją nr ' str INTO text SEPARATED BY space.
* użycie separatora jest konieczne, gdyż końcowe spacje ciągów są ignorowane
  WRITE / text.          " ukośnik jest znakiem nowego wiersza
  ADD 2 TO counter.      " przypisanie z wykorzystaniem wyrażeń
  counter = counter - 1. " przypisanie z wykorzystaniem operatorów
ENDWHILE.

Wynik działania programu na ekranie:

Program PRZYKLADOWY

Witaj świecie!
Cześć, jestem iteracją nr 0
Cześć, jestem iteracją nr 1
Cześć, jestem iteracją nr 2
Cześć, jestem iteracją nr 3
Cześć, jestem iteracją nr 4

Linki zewnętrzne[edytuj | edytuj kod]