A volte un programma ABAP/4 necessita di essere referenziato in maniera indiretta. Ciò si ottiene utilizzando dei campi definiti simbolici che assumono dinamicamente le caratteristiche e il contenuto di altri campi. Praticamente un campo simbolico rappresenta un nuovo nome assegnato dinamicamente ad altri campi definiti in un programma ABAP/4. Ad esempio, un programma potrebbe creare un estratto ed effettuare il SORT relativamente ad un campo definito dall’utente come PARAMETERS:

In pratica si dovrebbe testare tutti i possibili valori di NOMESORT per stabilire quail campi effettuare la selezione.
Utilizzando i campi simbolici il problema si risolve in maniera molto più flessibile ed elegante come segue:
PARAMETERS NOMESORT(06).
FIELD-SYMBOLS: <S>.
ASSIGN (NOMESORT) TO <S>.
SORT BY <S>.
Il campo simbolico <S> è definito come FIELD-SYMBOLS e tramite l’istruzione ASSIGN assume caratteristiche e contenuto del campo il cui nome è contenuto nel parametro NOMESORT, pertanto il campo di SORT risulta dinamicamente definito dal valore assegnato al campo simbolico <S> senza bisogno di effettuare l’istruzione di CASE seguita da tutte le possibili valorizzazioni che si prevedono per il parametro NOMESORT.
Effettuando l’istruzione:
ASSIGN NOMESORT TO <S>.
(Senza chiudere tra parentesi NOMESORT.)
il FIELD-SYMBOLS NOMESORT assume le caratteristiche e il contenuto del parametro NOMESORT e non del campo il cui nome è memorizzato in NOMESORT.
Combinando questi due differenti utilizzi dei campi simbolici è spesso possibile ridurre notevolmente il numero di istruzioni di un programma ottenendo programmi più razionali ed efficienti.
Per ulteriori approfondimenti si rimanda all’uso dell’help in linea fornito da SAP. |