Come riavviare una sessione utente da AL

Salve lettore, in questo articolo vorrei illustrarti un modo per automatizzare il processo di aggiornamento della pagina (sessione utente) all’interno di un tuo applicativo in AL.

A volte, capita, che ci sono operazioni che, per avere effetto, deve poter essere riavviata la sessione utente. Ad esempio, in Business Central ne abbiamo un esempio quando si cambia il badge società dalla pagina informazioni società. Quando si chiude la pagina, un messaggio di conferma ci chiederà se vogliamo riavviare la sessione oppure no. Solitamente capita se dobbiamo fare dei cambiamenti grafici al client o alle pagine.

Ma se volessimo implementare l’aggiornamento in una nostra applicazione come potremmo fare?

Possiamo utilizzare la variabile complessa SessionSettings per riavviare la sessione. SessionSettings, come detto, è un oggetto complesso che accede alle informazioni dell’utente memorizzate nella tabella User Personalization. Per approfondire puoi consultare la guida.

Vediamo con un esempio come utilizzarlo. Immaginiamo di aggiungere una action alla scheda articolo chiamata ‘Aggiorna pagina’ che esegue il riavvio della sessione utente. Vediamo nell’esempio seguente il codice per farlo.

Come si può vedere, tramite la funzione RequestSessionUpdate facciamo la forzatura dell’aggiornamento della sessione utente.

Utilizza RequestSessionUpdate per fare il riavvio della sessione utente del client, ma ricorda che:

  1. non è una funzione che sostituisce SELECTLATESTVERSION la quale si occupa di cancellare tutti i record non bloccati dalla cache del client, garantendo così la lettura dei dati più recenti. Il metodo cancella anche la cache della sessione client corrente per le stringhe CaptionClassTranslate. Le stringhe verranno quindi rivalutate dal trigger del metodo CaptionClassTranslate nella codeunit 42.
  2. Non eseguire altro codice AL dopo la chiamata a RequestSessionUpdate poiché, aggiornando la sessione utente, i valori precedenti verranno persi.

Spero che questo articolo ti abbia dato una conoscenza in più per lo sviluppo delle tue prossime app in Microsoft Business Central.

Lascia una risposta