SAP ABAP - Sintassi di base

Dichiarazioni

Il programma sorgente ABAP è costituito da commenti e istruzioni ABAP. Ogni istruzione in ABAP inizia con una parola chiave e termina con un punto, e ABAP fa distinzione tra maiuscole e minuscole "Non".

La prima riga non di commento in un programma inizia con la parola REPORT. Il Report sarà sempre la prima riga di qualsiasi programma eseguibile creato. L'istruzione è seguita dal nome del programma creato in precedenza. La linea viene quindi terminata con un punto.

La sintassi è:

REPORT [Program_Name]. 
 
[Statements…].

Ciò consente all'istruzione di occupare tutte le righe necessarie nell'editor. Ad esempio, il RAPPORTO potrebbe avere questo aspetto:

REPORT Z_Test123_01.

Le istruzioni sono costituite da un comando e da eventuali variabili e opzioni, che terminano con un punto. Finché il punto compare alla fine della dichiarazione, non sorgeranno problemi. È questo periodo che segna dove finisce l'affermazione.

Scriviamo il codice.

Nella riga sotto l'istruzione REPORT, digita semplicemente questa istruzione: Scrivi "Tutorial ABAP".

REPORT Z_Test123_01.

Write 'This is ABAP Tutorial'.

Four things to consider while writing statements -

  • L'istruzione write scrive tutto ciò che è tra virgolette nella finestra di output.

  • L'editor ABAP converte tutto il testo in maiuscolo tranne le stringhe di testo, racchiuse tra virgolette singole.

  • A differenza di alcuni linguaggi di programmazione meno recenti, ABAP non si preoccupa del punto in cui un'istruzione inizia su una riga. Puoi trarne vantaggio e migliorare la leggibilità del tuo programma utilizzando il rientro per indicare i blocchi di codice.

  • ABAP non ha restrizioni sul layout delle istruzioni. In altre parole, è possibile inserire più istruzioni su una singola riga oppure una singola istruzione può estendersi su più righe.

Notazione dei due punti

Le istruzioni consecutive possono essere concatenate se l'inizio di ciascuna istruzione è identico. Questo viene fatto con l'operatore due punti (:) e le virgole, che vengono utilizzati per terminare le singole istruzioni, proprio come i punti terminano le istruzioni normali.

Di seguito è riportato un esempio di un programma che potrebbe salvare alcune battute sui tasti:

WRITE 'Hello'. 
WRITE 'ABAP'. 
WRITE 'World'.

Usando la notazione dei due punti, potrebbe essere riscritto in questo modo:

WRITE: 'Hello', 
       'ABAP', 
       'World'.

Come qualsiasi altra dichiarazione ABAP, il layout non ha importanza. Questa è un'affermazione altrettanto corretta -

WRITE: 'Hello', 'ABAP', 'World'.

Commenti

I commenti in linea possono essere dichiarati ovunque in un programma con uno dei due metodi:

  • I commenti a riga intera sono indicati inserendo un asterisco (*) nella prima posizione della riga, nel qual caso l'intera riga è considerata dal sistema come un commento. I commenti non devono essere interrotti da un punto perché potrebbero non estendersi su più di una riga -

* This is the comment line
  • I commenti di riga parziale sono indicati inserendo virgolette doppie (") dopo un'istruzione. Tutto il testo che segue le virgolette doppie viene considerato dal sistema come un commento. Non è necessario terminare i commenti di riga parziale di un punto perché potrebbero non estendersi per più di una riga -

WRITE 'Hello'. "Here is the partial comment

Note - Il codice commentato non è in maiuscolo dall'editor ABAP.

Soppressione degli spazi vuoti

Il comando NO-ZERO segue l'istruzione DATA. Sopprime tutti gli zeri iniziali di un campo numerico contenente spazi. L'output è generalmente più facile da leggere per gli utenti.

Esempio

REPORT Z_Test123_01. 

DATA: W_NUR(10) TYPE N.
      MOVE 50 TO W_NUR.
      WRITE W_NUR NO-ZERO.

Il codice precedente produce il seguente output:

50

Note - Senza il comando NO-ZERO, l'output è: 0000000050

Righe vuote

Il comando SKIP aiuta a inserire righe vuote nella pagina.

Esempio

Il comando del messaggio è il seguente:

WRITE 'This is the 1st line'. 
SKIP. 
WRITE 'This is the 2nd line'.

Il comando di messaggio precedente produce il seguente output:

This is the 1st line 
This is the 2nd line

Possiamo usare il comando SKIP per inserire più righe vuote.

SKIP number_of_lines.

L'output sarebbe diverse righe vuote definite dal numero di righe. Il comando SKIP può anche posizionare il cursore su una riga desiderata della pagina.

SKIP TO LINE line_number.

Questo comando viene utilizzato per spostare dinamicamente il cursore su e giù nella pagina. Di solito, un'istruzione WRITE si verifica dopo questo comando per inserire l'output sulla riga desiderata.

Inserimento di linee

Il comando ULINE inserisce automaticamente una linea orizzontale attraverso l'output. È anche possibile controllare la posizione e la lunghezza della linea. La sintassi è piuttosto semplice:

ULINE.

Esempio

Il comando del messaggio è il seguente:

WRITE 'This is Underlined'.
ULINE.

Il codice precedente produce il seguente output:

This is Underlined (and a horizontal line below this).

Messaggi

Il comando MESSAGE visualizza i messaggi definiti da un ID messaggio specificato nell'istruzione REPORT all'inizio del programma. L'ID messaggio è un codice di 2 caratteri che definisce a quale serie di 1.000 messaggi accederà il programma quando viene utilizzato il comando MESSAGGIO.

I messaggi sono numerati da 000 a 999. Ad ogni numero è associato un testo di messaggio fino a un massimo di 80 caratteri. Quando viene chiamato il numero del messaggio, viene visualizzato il testo corrispondente.

Di seguito sono riportati i caratteri da utilizzare con il comando Messaggio:

Messaggio genere Conseguenze
E Errore Viene visualizzato il messaggio e l'applicazione si interrompe nel punto corrente. Se il programma è in esecuzione in modalità background, il lavoro viene annullato e il messaggio viene registrato nel registro lavori.
W avvertimento Viene visualizzato il messaggio e l'utente deve premere Invio affinché l'applicazione continui. In modalità background, il messaggio viene registrato nel registro lavori.
io Informazione Si apre una finestra pop-up con il testo del messaggio e l'utente deve premere Invio per continuare. In modalità background, il messaggio viene registrato nel registro lavori.
UN Abend Questa classe di messaggio annulla la transazione che l'utente sta attualmente utilizzando.
S Successo Ciò fornisce un messaggio informativo nella parte inferiore dello schermo. Le informazioni visualizzate sono di natura positiva e servono solo per il feedback degli utenti. Il messaggio non ostacola in alcun modo il programma.
X Interrompi Questo messaggio interrompe il programma e genera un breve dump ABAP.

I messaggi di errore vengono normalmente utilizzati per impedire agli utenti di fare cose che non dovrebbero fare. I messaggi di avviso vengono generalmente utilizzati per ricordare agli utenti le conseguenze delle loro azioni. I messaggi informativi forniscono agli utenti informazioni utili.

Esempio

Quando creiamo un messaggio per il messaggio ID AB, il comando MESSAGGIO - MESSAGGIO E011 restituisce il seguente output:

EAB011 This report does not support sub-number summarization.