Podstawy projektowania aplikacji biznesowych w systemie SAP R/3
SAP R/3 Zintegrowany zbiór aplikacji zaprojektowanych w celu wspomagania przetwarzania danych w dużych firmach Producent SAP AG SAP Systems Applications and Products for data processing SAP R/3 w większości napisany w ABAP/4
Logiczna struktura systemu... PP MM SD FI HR ABAP/4 Basis System Operacyjny
Obszary konceptualne SAP R/3 Obszar aplikacji Obszar Basis Środowisko projektowe
Kod transakcji Ciąg znaków jednoznacznie identyfikujący transakcję Dopuszczalne znaki: A-Z, 0-9, _ Długość do 20 znaków (najczęściej 4) Wywoływanie z poziomu pola komend tcode tylko z poziomu głównego menu /ntcode nowa transakcja w tym samym oknie /otcode nowa transakcja w nowym oknie System Status
Basis Middleware Warstwa pośrednicząca pomiędzy programami napisanymi w ABAP/4 a systemem operacyjnym Efekt migracji od architektury mainframe systemu R/2 do architektury klientserwer systemu R/3 Zbiór programów umożliwiających działanie aplikacji napisanych w ABAP/4 na różnych platformach
Architektura klient-serwer żądanie Serwer odpowiedź Klient
Typy architektury klient/serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa K K K S S K S S
Architektura systemu R/3 Serwer Serwer prezentacji Serwer prezentacji Serwer prezentacji prezentacji Serwer Serwer prezentacji Serwer prezentacji Serwer prezentacji prezentacji Serwer aplikacji Serwer aplikacji Serwer bazodanowy DB
Warstwy architektury SAP R/3 Warstwa prezentacji: serwer prezentacji SAPGUI, frontend cienki klient Warstwa aplikacji: zbiór programów uruchamianych i zatrzymywanych równocześnie w pliku profilu serwera aplikacji określa się m.in.: liczbę i typ procesów ilość pamięci przeznaczonej dla każdego procesu czas, po jakim użytkownik zostanie automatycznie wylogowany w przypadku braku aktywności programy APAP-owe są wykonywane na serwerze aplikacji (inicjowane na serwerze prezentacji) jest warstwą pośrednią oferującą dostęp do danych
Warstwy architektury SAP R/3 cd. Warstwa bazodanowa serwer bazy danych będący zbiorem aplikacji pośredniczących pomiędzy programami z warstwy aplikacji a RDBMS serwer bazy danych może być zainstalowany na tym samym komputerze, na którym zainstalowano RDBMS lub na odrębnej jednostce
Przykładowe konfiguracje serwerów System centralny Rozproszona prezentacja Architektura dwuwarstwowa Architektura trójwarstwowa SP SP SP SP SA SA SA SA SBD SBD SBD SBD
Architektura serwera aplikacji Z serwera prezentacji Serwer aplikacji Dispatcher Queue FIFO WP WP WP WP WP Work processes Buffers Roll area (extended memory) Do serwera bazy danych
User context i roll area User context obszar pamięci przydzielany na czas pracy w systemie R/3 z informacjami o użytkowniku zawierający m.in.: bieżące ustawienia użytkownika prawa dostępu użytkownika nazwy programów aktualnie wykonywanych przez użytkownika Roll area obszar pamięci przydzielany instancji programu ABAP-owego przez proces roboczy, w którym przetrzymywane są przez czas wykonywania programu następujące informacje: wartości zmiennych dynamicznie przydzielona pamięć bieżący wskaźnik do programu
Krok dialogowy jakakolwiek zmiana ekranu wszystkie działania potrzebne do przejścia pomiędzy dwoma kolejnymi ekranami od momentu żądania użytkownika aż do zakończenia wyświetlania nowego ekranu krok dialogowy może być zainicjowany przez użytkownika jednym z następujących sposobów: wciśnięcie klawisza ENTER wciśnięcie klawisza funkcyjnego (skrótu klawiszowego) wybór przycisku (ikony) wybór opcji z menu
Krok dialogowy Krok dialogowy - przykład Początek kroku dialogowego Dispatcher FIFO Koniec kroku dialogowego WP... WP Serwer Bazy Danych
Roll-in i Roll-out User Context Roll Area Work Process Roll-in Wskaźniki Roll-out Programy ABAP-owe zajmują WP wyłącznie na czas jednego kroku dialogowego: Roll-in na początku kroku dialogowego wskaźniki do User Context i Roll Area są przekazywane do WP przetwarzanie w WP, który korzysta z User Context i Roll Area przesłanie kolejnego ekranu lub zakończenie programu Roll-out usunięcie z WP wskaźników do Roll Area i User Context po przesłaniu ekranu lub zwolnienie Roll Area po zakończeniu programu (User Context pozostaje do momentu wylogowania użytkownika)
Przesyłanie danych do serwera prezentacji Dane pomiędzy serwerami prezentacji i aplikacji przesyłane w określonym formacie SAPGUI wyświetla przesłane dane w zależności od platformy, na której został uruchomiony Zaleta: serwery prezentacji działające na różnych platformach sprzętowoprogramowych mogą łączyć się z tym samym serwerem aplikacji
Składniki procesu roboczego ABAP/4 Interpreter Task Handler Screen Interpreter Database Interface Wszystkie żądania przechodzą przez Task Handlera, który kieruje je do odpowiednich składników procesu roboczego Interpretery interpretują kod programu ABAP-owego Interpreter ABAP-a pełna składnia ABAP-a Interpreter ekranu specjalizowany podzbiór języka ABAP/4 Interfejs do bazy danych obsługuje zadania komunikacji z serwerem bazy danych
Typy procesów Typ Symbol Opis Dialog D Żądania dialogowe Update V Żądanie aktualizacji danych w BD Background B Zadania wykonywane w tle Spool S Żądania spoolera wydruku Enqueue E Żądania logicznej blokady Message M Przesyłanie komunikatów pomiędzy serwerami systemu R/3 Gateway G Przekazywanie komunikatów wewnątrz i na zewnątrz systemu R/3
Tabele zależne i niezależne od mandanta Tabele zależne od mandanta pierwsze pole tabeli: typu CLNT długość 3 nazwa mandt Tabele niezależne od mandanta pierwsze pole tabeli typu innego niż CLNT Umożliwiają niezależną pracę testerów i developerów Możliwe jest tworzenie kopii mandanta Możliwy jest odczyt danych z innego mandanta: select * from tabela client specified where mandt = 'nnn'. tylko dla programów systemowych (aplikacje są zawsze zależne od mandanta)
Tabele zależne od mandanta przykład Użytkownik loguje się do mandantu 100...... SELECT FROM LFA1 WRITE: / LFA1-LIFNR. ENDSELECT.......... Użytkownik wykonuje program Tabela LFA1 MANDT LIFNR 100 201 100 205 150 10 150 11 150 12 300 220 Wynik 201 205
Open SQL Kod programów ABAP-owych jest przenoszalny pomiędzy różnymi systemami baz danych Dostęp do baz danych z poziomu programu ABAP-owego rezlizowany przez Open SQL Open SQL podzbiór i odmiana ANSI SQL Wszystkie fragmenty kodu zapisane w Open SQL-u są przekazywane do interfejsu bazy danych procesu roboczego Interfejs bazy danych przekłada składnię Open SQL-a na składnię SQL danego RDBMS-a
Open SQL zalety Przenoszalność Buforowanie danych na serwerze aplikacji redukcja obciążenia serwera bazy danych redukcja obciążenia łącz pomiędzy serwerem bazy danych a serwerami aplikacji Automatyczna obsługa mandantów po zalogowaniu numer mandanta automatycznie dołączany przez interfejs bazy danych wiele grup projektowych i testowych może pracować na tej samej bazie danych bez wzajemnego ingerowania w pracę innych grup
Środowisko projektowe