SAP ABAP - moduły funkcyjne
Moduły funkcyjne stanowią znaczną część systemu SAP, ponieważ SAP od lat ma modularyzowany kod z wykorzystaniem modułów funkcyjnych, co pozwala na jego ponowne wykorzystanie samodzielnie, przez ich twórców, a także przez klientów.
Moduły funkcyjne to podprogramy zawierające zestaw instrukcji wielokrotnego użytku z parametrami importowania i eksportowania. W przeciwieństwie do programów włączających, moduły funkcyjne mogą być wykonywane niezależnie. System SAP zawiera kilka predefiniowanych modułów funkcyjnych, które można wywołać z dowolnego programu ABAP. Grupa funkcyjna działa jako rodzaj kontenera dla wielu modułów funkcyjnych, które logicznie należałyby do siebie. Na przykład moduły funkcyjne systemu kadrowo-płacowego zostałyby połączone w grupę funkcyjną.
Aby dowiedzieć się, jak tworzyć moduły funkcyjne, należy zapoznać się z konstruktorem funkcji. Możesz znaleźć konstruktora funkcji z kodem transakcji SE37. Wystarczy wpisać część nazwy modułu funkcyjnego z symbolem wieloznacznym, aby zademonstrować sposób wyszukiwania modułów funkcyjnych. Wpisz * amount *, a następnie naciśnij klawisz F4.
Wyniki wyszukiwania zostaną wyświetlone w nowym oknie. Moduły funkcyjne są wyświetlane w wierszach na niebieskim tle, a ich grupy funkcyjne na różowych. Możesz dokładniej przyjrzeć się grupie funkcyjnej ISOC, korzystając z ekranu nawigatora obiektów (Transaction SE80). Możesz zobaczyć listę modułów funkcyjnych, a także innych obiektów znajdujących się w grupie funkcyjnej. Rozważmy moduł funkcji SPELL_AMOUNT. Ten moduł funkcyjny przekształca cyfry na słowa.
Tworzenie nowego programu
Step 1 - Przejdź do transakcji SE38 i utwórz nowy program o nazwie Z_SPELLAMOUNT.
Step 2- Wprowadź kod, aby można było ustawić parametr, w którym można wprowadzić wartość i przekazać ją do modułu funkcyjnego. Element tekstowy text-001 tutaj brzmi „Wprowadź wartość”.
Step 3- Aby napisać odpowiedni kod, użyj CTRL + F6. Następnie pojawi się okno, w którym „CALL FUNCTION” jest pierwszą opcją na liście. Wpisz „spell_amount” w polu tekstowym i kliknij przycisk Kontynuuj.
Step 4- Część kodu jest generowana automatycznie. Ale musimy rozszerzyć instrukcję IF, aby zawierała kod do NAPISANIA komunikatu na ekranie, mówiącego „Moduł funkcji zwrócił wartość: sy-subrc” i dodać instrukcję ELSE, aby zapisać poprawny wynik, gdy funkcja moduł się powiódł. Tutaj należy ustawić nową zmienną, aby przechowywać wartość zwróconą z modułu funkcji. Nazwijmy to „wynikiem”.
Poniżej znajduje się kod -
REPORT Z_SPELLAMOUNT.
data result like SPELL.
selection-screen begin of line.
selection-screen comment 1(15) text-001.
parameter num_1 Type I.
selection-screen end of line.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = num_1
IMPORTING
IN_WORDS = result.
IF SY-SUBRC <> 0.
Write: 'Value returned is:', SY-SUBRC.
else.
Write: 'Amount in words is:', result-word.
ENDIF.
Step 5- Zmienna zwracana przez moduł funkcji nosi nazwę IN_WORDS. Ustaw odpowiednią zmienną w programie o nazwie „wynik”. Zdefiniuj IN_WORDS, używając instrukcji LIKE, aby odwołać się do struktury o nazwie SPELL.
Step 6- Zapisz, aktywuj i uruchom program. Wprowadź wartość, jak pokazano na poniższym zrzucie ekranu, i naciśnij klawisz F8.
Powyższy kod daje następujące dane wyjściowe -
Spelling the Amount
Amount in words is:
FIVE THOUSAND SIX HUNDRED EIGHTY