Upload
dinhdang
View
235
Download
3
Embed Size (px)
Citation preview
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 mainframesystemu R/2 do architektury klient-serwer systemu R/3
Zbiór programów umożliwiających działanie aplikacji napisanych w ABAP/4 na różnych platformach
Architektura klient-serwer
SerwerKlient
żądanie
odpowiedź
Typy architektury klient/serwer
K
S
K
S
K
K
S
S
Architektura
jednowarstwowa
Architektura
dwuwarstwowa
Architektura
trójwarstwowa
Architektura systemu R/3
DB
Serwer
bazodanowy
Serwer
aplikacji
Serwer
aplikacji
Serwer
prezentacjiSerwer
prezentacjiSerwer
prezentacjiSerwer
prezentacji
Serwer
prezentacjiprezentacjiSerwer
prezentacjiSerwer
prezentacji
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 ABAP-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
SA
SBD
SA
SBD
SP
SP
SA
SBDSBD
SA
SP
Architektura serwera aplikacji
Serwer aplikacji
Dispatcher
Buffers
Work
processes
Queue
FIFO
Roll area
(extended memory)
WP WP WP WP WP
Z serwera prezentacji
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 - przykładK
rok d
ialo
go
wy
Początek kroku
dialogowego
Dispatcher FIFO
...WP WP
Serwer Bazy Danych
Koniec kroku
dialogowego
Roll-in i Roll-out
Programy ABAP-owe zajmują WP wyłącznie na czas jednego kroku dialogowego: Roll-in – na początku kroku
dialogowego wskaźniki do UserContext 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 UserContext po przesłaniu ekranu
lub zwolnienie Roll Area po zakończeniu programu (User Contextpozostaje do momentu wylogowania użytkownika)
User Context
Roll Area
Work Process
WskaźnikiRoll-in
Roll-out
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ętowo-programowych mogą łączyć się z tym samym serwerem aplikacji
Składniki procesu roboczego
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
Task Handler
ABAP/4 Interpreter
Screen Interpreter
Database Interface
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
MANDT LIFNR
100 201
100 205
150 10
150 11
150 12
300 220
Tabela LFA1
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 OpenSQL-u są przekazywane do interfejsu bazy danych procesu roboczego
Interfejs bazy danych przekłada składnię OpenSQL-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
Obiekt projektowy – cokolwiek stworzone przez developera (program, ekran, tabela, perspektywa, struktura, model danych, komunikat, moduł include itp.)
Narzędzia środowiska projektowego: Object Navigator
Edytor ABAP
Słownik
Modeler danych
Edytor funkcji
Malarz ekranu
Malarz menu
Debugger ABAP
Śledzenie SQL
Analiza czasu wykonania
Repozytorium
inne
Wszystkie obiekty projektowe są przenoszalne (co m.in. oznacza, że w łatwy sposób można je przenieść z systemu developerskiego do systemu produkcyjnego)
Typy programów
Podstawowe: raporty
○ zadanie – odczyt danych z bazy i wyświetlenie ich na urządzeniach we/wy
○ co najwyżej tylko dwa ekrany: wyboru danych (opcjonalny) i wynikowy z listą danych wyselekcjonowanych przez program
programy dialogowe (transakcje)
○ elastyczniejsze, ale bardziej skomplikowane niż raporty
○ dowolna liczba ekranów
○ sekwencja ekranów może się dynamicznie zmieniać podczas wykonywania programu
○ każdy ekran może zawierać różne pola, przyciski i inne
Składniki raportu ABAP-owego
i obiekty wykonywalne
Wymagane: kod źródłowy
atrybuty
Wszystkie obiekty projektowe wraz ze składnikami przechowywane są w odpowiednich tabelach bazy danych
Programy ABAP-owe są interpretowane (nie są kompilowane)
Pierwsze uruchomienie programu wiąże się z utworzeniem obiektu wykonywalnego
Obiekt wykonywalny jest formą programu poddaną preprocesingowi, która do wykonania nadal jednak wymaga środowiska systemu R/3
Po zmianie kodu źródłowego nowy obiekt wykonywalny zostanie automatycznie wygenerowany przy następnym wywołaniu tego programu
Atrybuty
Elementy
tekstowe
Doku-
mentacja
Warianty
Kod
źródłowy
Konwencje nazewnicze
Obiekty użytkownika muszą mieć nazwy
spełniające reguły określone przez SAP,
tzw. zakres nazw użytkownika
Dla programów zakres nazw określa, że
nazwa rozpoczyna się od liter: y albo z
DDIC – Data Dictionary
Narzędzie środowiska projektowego ABAP służące do tworzenia i przechowywania takich obiektów jak: tablice, struktury, perspektywy.
DDIC niejako pośredniczy między środowiskiem projektowym a bazą danych, dla danego obiektu, który został w zdefiniowany lub zmodyfikowany dopiero aktywacja powoduje wygenerowanie odpowiedniego kodu i wysłanie go do RDBMS
Uwaga! Nie należy modyfikować tabel i innych obiektów z poziomu RDBMS, ponieważ DDIC nie jest w stanie samo się zaktualizować, co wywoła brak synchronizacji z bazą danych, błędy aplikacji a nawet utratę danych.
Tabele i struktury w R/3
Tabela składa się ze zbioru wierszy, a te z kolei ze zbioru kolumn (zazwyczaj liczba kolumn jest identyczna w każdym wierszu)
Nazwy tabel muszą być unikalne w całym systemie
Widok tabeli w DDIC odpowiada opisowi tabeli w bazie danych, a nie bezpośredniemu widokowi bazy danych
Struktura – opis grupy pól (nazwa, kolejność, typy danych i długość)
Nazwy struktur muszą być unikalne w całym systemie i nie mogą być takie same jak nazwy tabel w programie używane do przydzielenia pamięci grupie pól
w tabeli używane do opisu zbioru pól
Zasadnicza różnica pomiędzy tabelą i strukturą jest taka, że: tabela jest opisem układu pól odpowiedniej fizycznej tabeli bazy danych
struktura jest opisem układu pól, który nie ma odpowiednika w bazie danych