30
Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Embed Size (px)

Citation preview

Page 1: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Podstawy projektowania aplikacji biznesowych

w systemie SAP R/3

Page 2: 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

Page 3: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Logiczna struktura systemu

PP MM SD FI HR

ABAP/4

Basis

System Operacyjny

...

Page 4: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Obszary konceptualne SAP R/3

Obszar aplikacji

Obszar Basis

Środowisko projektowe

Page 5: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 6: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 7: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Architektura klient-serwer

SerwerKlient

żądanie

odpowiedź

Page 8: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Typy architektury klient/serwer

K

S

K

S

K

K

S

S

Architektura

jednowarstwowa

Architektura

dwuwarstwowa

Architektura

trójwarstwowa

Page 9: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Architektura systemu R/3

DB

Serwer

bazodanowy

Serwer

aplikacji

Serwer

aplikacji

Serwer

prezentacjiSerwer

prezentacjiSerwer

prezentacjiSerwer

prezentacji

Serwer

prezentacjiprezentacjiSerwer

prezentacjiSerwer

prezentacji

Page 10: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 11: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 12: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 13: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 14: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 15: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 16: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Krok dialogowy - przykładK

rok d

ialo

go

wy

Początek kroku

dialogowego

Dispatcher FIFO

...WP WP

Serwer Bazy Danych

Koniec kroku

dialogowego

Page 17: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 18: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 19: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 20: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 21: Podstawy projektowania aplikacji biznesowych w systemie SAP 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)

Page 22: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 23: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 24: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 25: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Ś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)

Page 26: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 27: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 28: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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

Page 29: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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.

Page 30: Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

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