Sei sulla pagina 1di 7

Capitolo 10

Field-Symbols e Messaggi di errore

10.1 I Field-Symbols: definizione di base


Finora per tutti gli oggetti che abbiamo definito sono stati fissati la lunghezza ed il carattere. Ora si
rende necessario lutilizzo di funzioni meno specifiche in grado di leggere anche solo una parte di
un determinato oggetto; questo possibile attraverso i Field Symbols, i quali non sono altro che
campi definiti senza lunghezza e tipo di carattere, in grado di occupare una minima parte di
memoria.
Per definire un Field Symbol si devono usare comandi di questo tipo:

data CAMPO value X.


field-symbols <NOME>.
assign CAMPO to <NOME>.

Figura 105

149
Il nome del Field Symbol deve essere rinchiuso allinterno dei due simboli di minore-maggiore; il
comando assign rende possibile lutilizzo dei field-symbols come delle semplicissime data,
facilitando notevolmente il nostro lavoro.

Per capire come funziona un Field Symbol leggiamo la videata di figura 105. Con questo
programma vogliamo caricare sul nostro field symbol OUTPUT la tabella del database
CUSTOMERS. Per fare tutto ci assegnamo una alla volta le righe della nostra tabella (comando
assign component allinterno di un ciclo do) facendo riferimento allindice della tabella stessa (sy-
index).
Come risultato finale si pu considerare la figura 106, in cui abbiamo a video i dati richiesti.

Figura 106

10.2 Lettura di record con i field-symbols


Prendiamo ora ad esame questaltro esempio, in cui viene letto un record esterno (riga 12, figura
107) che comprende una serie di nomi e codici in successione. Il programma legge soltanto una
parte del record associandola al nostro field symbols <ENTRY>; in ultimo lancia il comando di
scrittura.
Tutti questi passaggi sono inclusi in un ciclo do / enddo; luscita da questo ciclo subordinata alla
lettura completa del record definito alla riga 12.

Nella figura 108 si pu vedere il risultato dellesercizio.

150
Figura 107

Figura 108

151
10.3 Caricamento di tabelle con i field-symbols
Naturalmente anche possibile caricare una tabella del database in un field symbol e far scrivere al
programma soltanto alcuni campi della nostra tabella. Ad esempio se noi volessimo scrivere i campi
CARRID, CONNID, FLDATE della tabella SBOOK, dovremmo scrivere un programma di questo
tipo:

Figura 109

Come si pu vedere dalle righe 4 e 5 del programma, la definizione del field symbol leggermente
diversa rispetto a quella a cui siamo abituati: necessario aggiungere alcuni comandi (structure e
default) in modo da associare ad <SB> la struttura di base della tabella SBOOK. Inoltre si deve
anche definire (riga 2) il valore di default di appoggio SBOOK_WA (WA: Work Area), che useremo
come area di lavoro temporanea.
In ultimo per scrivere a video i dati richiesti il comando da utilizzare simile a quello precedent: si
deve aggiungere il campo richiesto, ovvero scriviamo <SB>-CARRID (riga 8).

152
Figura 110

10.4 Invio di un messaggio da un programma


Una possibilit molto interessante quella di implementare un determinato programma attraverso
linvio di messaggi che vadano a dialogare con lutente. Tali messaggi sono in genere catalogati in
base alla loro severit, ovvero in base a quanto seriamente essi interrompono le operazioni del
nostro sistema. I principali tipi di messaggi sono:

A ABNORMAL END Termina il programma e mostra il messaggio sullo


schermo del video. Non si hanno possibilit di correggere
i dati utilizzati.
E ERROR Interrompe il flow logic in processi PAI e non permette
allutente di inserire nuovi dati.
W WARNING Viene bloccato il processo in corso ed appare un
messaggio che permette diverse possibilit di uscita.
I INFORMATION Viene lanciato un messaggio puramente informativo, che
interrompe solo momentaneamente i processi in corso.
S SUCCESS Anchesso un messaggio informativo. La differenza
che appare nella schermata successiva.

153
Un semplice esempio quello riassunto dal programma della videata di figura 111, qui sotto
riportata (si consideri in particolare la riga 19).

Figura 111

Figura 112

154
Per creare un messaggio (ad esempio i003) si deve completare la riga iniziale del programma con
listruzione message-id z0 e cliccare due volte sul messaggio stesso (riga 19), a quel punto si apre la
schermata di definizione del messaggio, come da figura 112.
Dopo aver salvato si pu mandare in esecuzione il programma e verificare la funzionalit del
messaggio inserendo dei valori non validi allinterno della parameters creata (figura 113).

Figura 113

Osservazione: verificare il diverso comportamento del programma con o senza listruzione at


selection-screen della riga 14.

155