Presumo che si ottenga un messaggio dal gateway come ad esempio: (n. Di sessione, UserInput) ed è necessario calcolare le informazioni successive da inviare all'utente?
propongo:
tavolo CurrentState:
Session #
Stato
tabella STATES:
Stato
Titolo
SCELTE tavolo:
Stato
Scelta
Nome
DoCode
NewState
Poi, quando si ottiene il messaggio (Session #, UserInput):
- interrogazione CurrentState utilizzando la Session # per determinare quale stato l'utente è in.
- query CHOICES che utilizzano lo stato e Choice = UserInput per determinare il nuovo stato (e DoCode) in base all'utente i nput.
- Basato su DoCode, è possibile eseguire alcune elaborazioni.
- aggiornare CURRENTSTATE per riflettere il nuovo stato.
- query STATES per ottenere il titolo (ad esempio "Scegli un colore").
- SCELTE query per ottenere le scelte possibili dal nuovo stato (ad esempio (1, "Blue"), (2, "Rosso"), etc.)
- costruire il messaggio (concat Titolo + scelte)
- restituire un messaggio all'utente.
È un modo ragionevole per risolvere il problema?
Non capisco. Il tuo menu è visualizzato su un browser web o su un'applicazione Swing/SWT? – Riduidel
Il browser ussd viene visualizzato sul telefono cellulare quando si invia un codice breve come * 123 #. Fondamentalmente, non posso usare alcuna api per questo scopo. Io stesso devo mantenere i nodi dell'albero del menu. Ma non riesco a trovare un buon design. –