ABAP
ABAP (ang. Advanced Business Application Programming, pierwotnie niem. Allgemeiner Berichts-Aufbereitungs-Prozessor, procesor tworzenia raportów) – język programowania wysokiego poziomu stworzony przez niemiecką firmę SAP.
Pojawienie się |
1983 |
---|---|
Paradygmat | |
Twórca | |
Platforma sprzętowa | |
Strona internetowa |
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ć rozwiązania do zarządzania korporacjami. Oryginalna składnia języka ABAP przypomina składnię języka COBOL, niemniej obecnie SAP dąży do pełnej obiektywizacji 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
edytujABAP jest jednym z wielu specyficznych dla aplikacji językiem czwartej generacji (4GL) (dlatego też czasem oznaczany jest jako ABAP/4). Pierwsze implementacje powstały na początku lat 80. Pierwotnie ABAP 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ń. Do jego pełnego wykorzystania potrzebna jest wiedza o budowaniu relacyjnych baz danych oraz koncepcji programowania obiektowego (ABAP Objects, który debiutował wraz z wersją SAP R/3 4.6).
Obecnie ABAP jest nadal głównym językiem programowania platformy SAP ERP, 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 na technologiach webowe.
Implementacja
edytujWszystkie 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
edytujProsty 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