Cerca
  • marco ferrari

Usare le notifiche al posto dei messaggi

Nel vecchio NAV, quando volevamo avvertire l’utente di qualche cosa, usavamo l’istruzione di Message oppure quella di Confirm, se per caso richiedevamo una conferma da parte sua. Oggi questi metodi sono obsoleti, soprattutto nel primo caso, in cui si desidera semplicemente informare l’utente di qualche cosa.


Nel linguaggio AL è stato introdotto un nuovo tipo di dato, chiamato Notification, tramite il quale è possibile fare apparire i messaggi nella barra colorata sopra la pagina, non obbligando così l’utente a premere Ok davanti al messaggio informativo.

Vediamo con un esempio pratico come utilizzare questa nuova modalità di notifica.


Supponiamo, come nell’esempio sopra, di voler mostrare all’utente un messaggio informativo quando, inserendo il cliente di vendita in un ordine, questo abbia più di un indirizzo di spedizione associato. La soluzione, molto semplice, consiste nel programmare il trigger OnAfterValidate del campo Sell-to Customer No. della tabella Sales Header scrivendo il codice in figura

Come si nota, il codice è molto semplice. La variabile Notify viene richiamata due volte: nella prima istruzione viene impostato il messaggio da mostrare all’utente tramite il metodo Message, nella seconda viene richiamato il metodo Send che lo fa apparire nella barra della pagina.


Gestire le azioni

Le notifiche hanno anche un’altra caratteristica interessante, il metodo AddAction, tramite il quale possiamo gestire delle azioni interattive all’interno della notifica stessa.


Tornando all’esempio sopra, supponiamo di voler aggiungere la possibilità per l’utente di selezionare un indirizzo di spedizione dall’elenco, modificando poi l’ordine preesistente, come nell’immagine sotto:

Per poter gestire le azioni, dobbiamo creare una codeunit che contenga una funzione da richiamare col metodo AddAction dal trigger del campo, come qui sotto

Il metodo AddAction richiede il messaggio da mostrare (‘Scegline uno’), l’ID della codeunit contenente la funzione, e una stringa con il nome della funzione da richiamare.


Per poter passare dei parametri alla funzione, dobbiamo usare il metodo SetData, contenente una stringa identificativa del parametro e il valore da passare. Nell’esempio sopra abbiamo passato due parametri: il numero del cliente (usato dalla funzione per poter aprire la lista degli indirizzi di spedizione) e il numero dell’ordine da aggiornare con l’indirizzo selezionato dall’utente. La funzione nella codeunit che deve gestire l'azione deve avere una variabile di tipo Notification come parametro

Per poter leggere i parametri, dobbiamo usare il metodo GetData, che restituisce i valori passati dalla funzione chiamante tramite il metodo SetData visto prima.


Con questi due valori possiamo quindi aprire l’elenco degli indirizzi di spedizione e aggiornare l’ordine con quello selezionato dall’utente.


Conclusioni

Rispetto al passato, questo metodo non è solo più elegante, ma è anche molto più efficiente, in quanto evita la fastidiosa apparizione del messaggio di Confirm che veniva usato in passato e che era peraltro foriero di diversi problemi, trattandosi di un messaggio modale e dunque bloccante.

103 visualizzazioni0 commenti

Post recenti

Mostra tutti