Wyślij zapytanie Dołącz do Sii

Aplikacje standardowe SAP Fiori to portfolio dostępnych aplikacji, w których na starcie otrzymujemy określoną funkcjonalność. Bardzo często są w nich przygotowane fragmenty kodu lub opcje do aktywowania, umożliwiające dostosowanie ich jeszcze bardziej pod potrzeby biznesowe. Te specjalne fragmenty to tzw. rozszerzenia (ang. enhancements), o których będzie mowa w tym artykule.

Kiedy otrzymujemy zadanie rozszerzenia funkcjonalności standardowej aplikacji SAP Fiori, istnieje kilka aspektów, które warto sprawdzić przed przystąpieniem do pracy. Jeśli planujemy dodać nowe pole, istnieje możliwość, że jest ono już dostępne do dodania na poziomie serwisu, a informacja o tym może być zawarta w dokumentacji. Spróbujmy odrobinę usystematyzować miejsca, które warto sprawdzić, aby mieć pewność, że nasz wybór jest optymalny.

Dla przykładu użyjemy standardowej aplikacji „Revise Payment Proposals” i spróbujemy dodać nowe pole, takie jak Item text w oparciu o analizę Rogera Sainsbury’ego.

Rodzaje rozszerzeń

Personalizacja

Czasami zdarza się, że pole, które chcemy dodać, jest już dostępne w opcjach personalizacyjnych (ustawieniach widoku). Wystarczy wówczas pamiętać o sprawdzeniu tego w ustawieniach aplikacji.

Przycisk ustawienia aplikacji SAP Fiori
Ryc. 1 Przycisk ustawienia aplikacji SAP Fiori 
Lista dostępnych pól w ustawieniach
Ryc. 2 Lista dostępnych pól w ustawieniach

Dostosowanie (ang. customizing)

W niektórych aplikacjach Fiori dostosowanie może być łatwe poprzez użycie transakcji SPRO – pole włącz/wyłącz. Istnieje też możliwość przejścia do opcji SPRO w uproszczony sposób. Aby odblokować możliwość korzystania z funkcji ok_code w aplikacji, należy uruchomić „GUI Actions and Settings”:

Dostępne opcje menu dla listy ‘More’
Ryc. 3 Dostępne opcje menu dla listy „More”

Następnie zaznaczamy opcję „Show OK Code Field”:

Przycisk ustawienia aplikacji SAP Fiori
Ryc. 4 Przycisk ustawienia aplikacji SAP Fiori

W ten sposób otrzymujemy dostęp do SPRO bez konieczności instalacji natywnego front-endu SAPGUI front-end oraz unikając ograniczeń związanych z pobieraniem nowych plików i autoryzacją na komputerach korporacyjnych.

Ekran transakcji SPRO
Ryc. 5 Ekran transakcji SPRO

Adaptacja typu run-time (RTA)

RTA to funkcjonalność, która umożliwia przypisanie super użytkownika, zdolnego do dokonywania podstawowych zmian w aplikacji Fiori. Te zmiany zostaną zastosowane dla wszystkich użytkowników, w przeciwieństwie do personalizacji, która pozwala na dostosowanie zmiany tylko dla danego użytkownika.

Aby skorzystać z adaptacji typu run-time, użytkownik musi być przypisany do roli SAP_UI_FLEX_KEY_USER w Gateway’u na front-endzie. Wówczas opcja Adapt UI zostanie udostępniona w Launchpadzie Fiori. Niestety, na dzień dzisiejszy ta opcja  jest dostępna tylko w aplikacjach wykorzystujących kontrolki SmartForms oraz ObjectPage, na przykład w aplikacji „Purchase Requisition Item Factsheet”.

Przycisk ustawienia aplikacji SAP Fiori
Ryc. 6 Przycisk ustawienia aplikacji SAP Fiori

Na przedstawionym wyżej przykładzie, można użyć Trybu Adaptacji UI do wprowadzenia zmian bez użycia kodu.

Jeśli żadne z powyższych rozwiązań nie pozwala nam na dokonanie potrzebnych zmian w standardowej aplikacji Fiori, pozostają nam dwie bardziej rozbudowane metody – na front-endzie (SAP WEB IDE) lub na back-endzie (serwis ODATA).

Rozszerzenia Fiori za pomocą SAP WEB IDE

W pierwszej kolejności warto sprawdzić dokumentację standardowej aplikacji Fiori w poszukiwaniu tzw. „extension poits” lub „hooks”.

Sekcja rozszerzeń dokumentacji aplikacji „Revise Payment Proposals”
Ryc. 7 Sekcja rozszerzeń dokumentacji aplikacji „Revise Payment Proposals”

Jeśli zdecydujemy się na taką zmianę, możemy ją wykonać na poziomie SAP WEB IDE, np. poprzez zamianę widoku.

Widok opcji rozszerzeń dla zastąpienia oryginalnego widoku w SAP WEB IDE
Ryc. 8 Widok opcji rozszerzeń dla zastąpienia oryginalnego widoku w SAP WEB IDE

Gdy zdecydujemy się zastąpić widok (na przykład „S3”), powstanie wówczas nowy projekt z końcówką „Extension”, który zawiera kopię standardowego widoku.

Lista plików rozszerzonej wersji aplikacji
Ryc. 9 Lista plików rozszerzonej wersji aplikacji

W nowym projekcie, w pliku manifest.json znajdzie się dodatkowy kod łączący oryginalną aplikację z naszą nową, rozszerzoną.

Fragment kodu w pliku manifest.json w aplikacji rozszerzonej
Ryc. 10 Fragment kodu w pliku manifest.json w aplikacji rozszerzonej

Jeśli w przyszłości postanowimy usunąć tę poprawkę, wystarczy usunąć dodatkowy kod, a aplikacja powróci do oryginalnego widoku.

Za pomocą WEB IDE możemy również zmienić tłumaczenia tekstów, na przykład dla nowo wprowadzonego pola. Podczas tworzenia projektu typu „extension” w Web IDE jest opcja „i18n Resource Text Customization”.

Widok opcji rozszerzeń dla zastąpienia pliku z tłumaczeniami w SAP WEB IDE
Ryc. 11 Widok opcji rozszerzeń dla zastąpienia pliku z tłumaczeniami w SAP WEB IDE

Gdy wybierzemy tę opcję, plik i18n oraz pliki ze standardowej wersji aplikacji zostaną skopiowane do aplikacji z rozszerzeniem:

Widok plików z tekstami tłumaczeń w aplikacji SAP WEB IDE
Ryc. 12 Widok plików z tekstami tłumaczeń w aplikacji SAP WEB IDE

Wówczas możemy dodać dodatkowe pole dla wprowadzonej przez nas kolumny.

Fragment kodu w pliku i18n odpowiedzialny za tłumaczenie tekstu nowej kolumny
Ryc. 13 Fragment kodu w pliku i18n odpowiedzialny za tłumaczenie tekstu nowej kolumny

Po dokonaniu zmian, pamiętajmy o wykonaniu deploy’a („deploy as a new app”). W ten sposób rozszerzona aplikacja pojawi się jako nowa aplikacja BSP:

Widok aplikacji BSP po zlokalizowaniu w systemie SAP
Ryc. 14 Widok aplikacji BSP po zlokalizowaniu w systemie SAP

Aby uruchomić rozszerzoną aplikację, konieczne jest również odpowiednie skonfigurowanie mapowania kafelka oraz elementu docelowego (Tile and Target Mapping) w katalogu Fiori.

Widok do konfiguracji kafelkow SAP Fiori Launchpad
Ryc. 15 Widok do konfiguracji kafelków SAP Fiori Launchpad

Mając na uwadze, że w obiekcie semantycznym konieczne jest użycie odmiennej nazwy niż w przypadku aplikacji standardowej:

Miejce konfiguracji obiektu semantycznego rozszerzonej wersji aplikacji
Ryc. 16. Miejsce konfiguracji obiektu semantycznego rozszerzonej wersji aplikacji

Podczas tworzenia mapowania docelowego (Target Mapping), adres URL powinien zawierać nazwę nowej aplikacji BSP (można ją odnaleźć również za pomocą transakcji SICF). Natomiast nazwa komponentu może być odnaleziona w pliku Component.js projektu rozszerzonego:

Fragment kodu z pliku component.js wskazujący nazwę rozszerzonej aplikacji
Ryc. 17 Fragment kodu z pliku component.js wskazujący nazwę rozszerzonej aplikacji

Aby przeprowadzić test, pamiętajmy o uruchomieniu kafelka z nową rozszerzoną aplikacją.

Rozszerzenia standardowych usług ODATA

Zgodnie z metodologią Sebastiana Gaera, dodawanie nowego pola w serwisie ODATA składa się z trzech kroków:

  1. Najpierw rozszerzamy odpowiednią strukturę ABAP DDIC poprzez komendę APPEND STRUCTURE.
  2. Następnie rozszerzamy ODATA Entity w Gateway Model Providerze.
  3. Na końcu wypełniamy dane rozszerzonego pola w Gateway Data Providerze.

W aplikacji „Revise Payment Proposals” istnieje możliwość dodawania „custom fields”:

Fragment dokumentacji aplikacji „Revise Payment Proposals” dotyczący „customer fields”
Ryc. 18 Fragment dokumentacji aplikacji „Revise Payment Proposals” dotyczący „customer fields”

Najpierw tworzymy i aktywujemy własne pole w słowniku – ZZSGTXT.

Okienko wyboru „Data element” w systemie SAP
Ryc. 19 Okienko wyboru „Data element” w systemie SAP

Pole to dodajemy do struktury ze standardowej aplikacji:

Widok struktury ze wskazaniem na nowo dodane pole
Ryc. 20 Widok struktury ze wskazaniem na nowo dodane pole

W drugim kroku, pakiet „ODATA_REVISE_PAYMENT_PROPOSAL” zawiera zarówno klasę Model Provider, jak i Data Provider dla danego serwisu ODATA.

Widok dostępnych klas w aplikacji „Revise Payment Proposal”
Ryc. 21 Widok dostępnych klas w aplikacji „Revise Payment Proposal”

Dodajemy nowe pole dla enitity „PaytProposalInvoice”.

Widok dostępnych Entity Sets w aplikacji
Ryc. 22 Widok dostępnych Entity Sets w aplikacji
Widok nowo dodanego property dla danego Entity Set „PaytProposalInvoice”
Ryc. 23 Widok nowo dodanego property dla danego Entity Set „PaytProposalInvoice”

Przegenerowujemy obiekty typu run-time poprzez kliknięcie przycisku:

Fragment Interfejsu transakcji SEGW ze wskazaniem na przycisk regenerującego serwis
Ryc. 24 Fragment Interfejsu transakcji SEGW ze wskazaniem na przycisk regenerującego serwis

W rezultacie klasa MPC o nazwie CL_FAP_REVISE_PAYMENT_MPC dostaje kilka dodatkowych linii kodu:

Fragment kodu z metody „DEFINE_PAYTPROPOSALINVOICE” wskazujący nowo dodane property
Ryc. 25 Fragment kodu z metody „DEFINE_PAYTPROPOSALINVOICE” wskazujący nowo dodane property

Następnie, aby w kroku trzecim wprowadzić dane do nowego pola, musimy zlokalizować metodę: CL_FAP_REVISE_PAYMENT_DPC_EXT->PAYTPROPOSALINVO_GET_ENTITYSET.

Ta metoda jest już zredefiniowana i na samym końcu posiada rozszerzenie (enhancement), do którego możemy dodać kod pobierający tekst z pola BSEG-SGTXT i przekazujący go do tabeli et_entityset (zawiera ona dane dla całego zbioru entity).

Na sam koniec, pamiętajmy także o dodaniu nowej kolumny w widoku na front-endzie, aby dane z nowego pola prawidłowo się wyświetlały:

Fragment kodu z widoku wskazujący nowododaną kolumnę do tabeli z rozszerzonym polem
Ryc. 26 Fragment kodu z widoku wskazujący nowododaną kolumnę do tabeli z rozszerzonym polem

Podsumowanie

Serwis ODATA może być modyfikowany również przy użyciu BAdI (Business add-ins), jednak te dodatki nie są dostępne dla wszystkich standardowych aplikacji SAP Fiori. Widoki Fiori mogą być również stworzone na poziomie back-endu za pomocą ‘CDS Views’, a wtedy do rozszerzeń aplikacji można używać adnotacji (annotations) po stronie back-endu i front-endu. O tym jednak opowiemy w oddzielnym artykule.

Podsumowując, rozszerzanie standardowych aplikacji Fiori jest możliwe na wiele różnych sposobów i zależą one dość mocno od opcji jakie zostały nam udostępnione przez firmę SAP. W skrajnych przypadkach możemy po prostu wykonać rozszerzenie całej aplikacji.

***

Jeśli interesuje Cię tematyka SAP, zajrzyj koniecznie do innych artykułów naszych ekspertów.

5/5 ( głosy: 6)
Ocena:
5/5 ( głosy: 6)
Autor
Avatar
Marek Sroka

Od 2017 pracuje jako ABAP developer, a od 2019 roku jako Fiori Developer. Prywatnie Tato dwójki dzieci i hobbystycznie kompozytor muzyki filmowej

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

Pokaż więcej artykułów

Bądź na bieżąco

Zasubskrybuj naszego bloga i otrzymuj informacje o najnowszych wpisach.

Otrzymaj ofertę

Jeśli chcesz dowiedzieć się więcej na temat oferty Sii, skontaktuj się z nami.

Wyślij zapytanie Wyślij zapytanie

Natalia Competency Center Director

Get an offer

Dołącz do Sii

Znajdź idealną pracę – zapoznaj się z naszą ofertą rekrutacyjną i aplikuj.

Aplikuj Aplikuj

Paweł Process Owner

Join Sii

ZATWIERDŹ

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?