Lezione 4. Gestione di una Conference Room (Prima parte) di Fabrizio "Mater" Gramuglio |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A partire da questa lezione ci concentreremo sulla costruzione di una applicazione
per fissare gli appuntamenti di una Conference Room. Essa dovra' essere
in grado di registrare la data, l’ora, il numero delle persone partecipanti alla conferenza ed
infine di avvisare i partecipanti a mezzo e-mail. Prima di addentrarci nella creazione di questa applicazione concentriamoci sull’elemento menu. Questo elemento è composto da un prompt verso l'utente, capace di ricevere un input, e da un “go to” o da uno “switch”, che permettono di "dirigere" lo sviluppo dell’applicazione. Quando, utilizzando un' applicazione VoiceXML avete sentito la frase “Dica [qualcosa] o prema 1 per [fare qualcosa], dica qualcos'altro o prema 2 per [fare qualcos’altro]” probabilmente vi trovevate in un menu. In questa lezione vedremo come si usa il tag menu, la sua capacità di recepire un input, di gestire la conseguente esecuzione della nostra applicazione, ed il suo comportamento in caso di mancato o errato input.
Le istruzioni contenute dalla 1 alla 7 sono gia' state trattate nelle precedenti lezioni. L'applicazione (di seguito indicata "CON") ci dira' quindi: CON: Welcome to the Cambridge Conference Room Scheduling
System.
choice nextitem="databaseForm">database</choice> L’elemento choice, come abbiamo visto,
permette di specificare delle scelte all’interno del menù (era
stato introdotto dall’elemento enumerate).
Come abbiamo visto, per l’elemento <enumerate/>
non esiste un tag di chiusura, la sintassi prevede semplicemente uno "/" al termine
dell’elemento.
Sarà, ovviamente, possibile che alcuni utenti premano un numero
errato, dicano qualcosa di sbagliato o non rispondano affatto al nostro menu. Il nostro menu dovrà essere in
grado di gestire queste evenienze.
Entrambi i tag noinput e nomatch hanno la stessa sintassi ed in particolare prevedono entrambi l' attributo count che permette di gestire piu' volte la situazione di input assente o errato. Il testo contenuto tra i tag di apertura e di chiusura di noinput e nomatch sarà quello proposto all' utente. Ogni singolo elemento menu deve presentare almeno un elemento nomatch ed un elemento noinput. Nel ns. esempio, dopo due "tentativi" (count 1 e 2) al terzo caso di "nomatch" e al
terzo "noinput" viene nuovamente utilizzato l’attributo
nextitem, questa volta all’interno di un elemento
goto.
Alla linea 11 si era indicato all'applicazione di saltare all’etichetta "databaseForm": <choice nextitem="databaseForm">database</choice> Di seguito riportiamo il codice relativo a tale form (il cui ID viene indicato mediante l'attributo "id") all’interno del quale troviamo l'elemento prompt e alla riga 41 l’invio ad “end”.
Le grammatiche Uno degli aspetti maggiormente interessanti delle "voice-application"
è la loro capacità di catturare input vocali. La differenza fra questa sintassi e quella del menu a scelte multiple sta nel fatto che nel caso del menu la risposta indirizza immediatamente lo sviluppo dell’applicazione spostando l’esecuzione sull' etichetta definita, mentre in questo caso, il programma chiederà il nome dell’utente, lo includerà in un field, e lo ripeterà all’utente come verifica dell' esatta acquisizione.
Siamo arrivati alla linea 50 attraverso la scelta "2" (pressione del tasto) o "without" (imput vocale)
dal nostro menu, la riga 51 dichiara l'elemento field
“you”. La linea 52 contiene la dichiarazione della nostra
grammatica, attraverso l’elemento grammar.
Ogni espressione che compone la grammatica dev' essere separata dalla successiva dalla barra orizzontale ( | ). Qualora l’utente dovesse rispondere con un valore diverso da quelli inclusi nella grammatica o non dovesse rispondere affatto, i due elementi noinput e nomatch sposteranno l’esecuzione all' etichetta "end".
Il form finale proporrà un messaggio di ringraziamento e chiuderà l’applicazione.
Nonostante l’applicazione termini naturalmente alla linea 75 l’elemento exit la chiude alla linea 72. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|