SAP ABAP - Moduli funzionali

I moduli funzione costituiscono una parte importante di un sistema SAP, perché per anni SAP ha modulare il codice utilizzando moduli funzione, consentendo il riutilizzo del codice, da soli, dai loro sviluppatori e anche dai loro clienti.

I moduli funzionali sono sottoprogrammi che contengono una serie di istruzioni riutilizzabili con parametri di importazione ed esportazione. A differenza dei programmi Include, i moduli funzione possono essere eseguiti indipendentemente. Il sistema SAP contiene diversi moduli funzione predefiniti che possono essere richiamati da qualsiasi programma ABAP. Il gruppo di funzioni agisce come una sorta di contenitore per un numero di moduli di funzione che logicamente dovrebbero appartenere insieme. Ad esempio, i moduli funzionali per un sistema di gestione delle retribuzioni delle risorse umane sarebbero riuniti in un gruppo di funzioni.

Per vedere come creare moduli funzione, è necessario esplorare il generatore di funzioni. È possibile trovare il generatore di funzioni con codice transazione SE37. Basta digitare una parte del nome di un modulo funzione con un carattere jolly per dimostrare il modo in cui è possibile cercare i moduli funzione. Digita * importo * e quindi premi il tasto F4.

I risultati della ricerca verranno visualizzati in una nuova finestra. I moduli funzionali vengono visualizzati nelle righe con sfondo blu e i loro gruppi funzione in righe rosa. È possibile esaminare ulteriormente il gruppo di funzioni ISOC utilizzando la schermata Object Navigator (Transaction SE80). È possibile visualizzare un elenco di moduli funzione e anche altri oggetti contenuti nel gruppo di funzioni. Consideriamo il modulo funzione SPELL_AMOUNT. Questo modulo funzione converte le cifre numeriche in parole.

Creazione di un nuovo programma

Step 1 - Vai alla transazione SE38 e crea un nuovo programma chiamato Z_SPELLAMOUNT.

Step 2- Immettere un codice in modo che sia possibile impostare un parametro in cui è possibile immettere un valore e trasmetterlo al modulo funzione. L'elemento di testo text-001 qui legge "Immettere un valore".

Step 3- Per scrivere il codice per questo, usa CTRL + F6. Successivamente, viene visualizzata una finestra in cui "FUNZIONE DI CHIAMATA" è la prima opzione in un elenco. Immettere "spell_amount" nella casella di testo e fare clic sul pulsante continua.

Step 4- Parte del codice viene generato automaticamente. Ma dobbiamo migliorare l'istruzione IF per includere un codice per SCRIVERE un messaggio sullo schermo per dire "Il modulo funzione ha restituito un valore di: sy-subrc" e aggiungere l'istruzione ELSE in modo da scrivere il risultato corretto quando la funzione Il modulo ha successo. Qui, una nuova variabile deve essere impostata per contenere il valore restituito dal modulo funzione. Chiamiamola come "risultato".

Di seguito è riportato il codice:

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- La variabile restituita dal modulo funzione si chiama IN_WORDS. Imposta la variabile corrispondente nel programma chiamata "risultato". Definire IN_WORDS utilizzando l'istruzione LIKE per fare riferimento a una struttura chiamata SPELL.

Step 6- Salvare, attivare ed eseguire il programma. Immettere un valore come mostrato nella seguente schermata e premere F8.

Il codice precedente produce il seguente output:

Spelling the Amount 
Amount in words is: 
FIVE THOUSAND SIX HUNDRED EIGHTY