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