Tutorial logger eventi localizzato¶
L’obiettivo di questo tutorial è la configurazione di un logger di eventi e la successiva visualizzazione, tramite griglia dati, dello storico eventi.
Per ciascun campo localizzato dell’evento si vuole visualizzare nella corrispondente colonna il testo tradotto nella lingua dell’utente corrente.
Creazione di un Allarme
Creare un nuovo allarme a livello esclusivo da Allarmi >> Allarme a livello esclusivo, creare una variabile analogica di modello chiamata “Temperature” il cui valore è impostato indicativamente a 20, impostare 0 e 100 rispettivamente per le proprietà Low e High di EURange.
Collegare dinamicamente la variabile alla proprietà Valore di input dell’allarme e impostare il Limite Alto a 60.
Inserire un indicatore lineare per controllare il valore della variabile ed impostare una zona di avvertimento da 60 a 100. Dalla libreria oggetti trascinare nel progetto il widget della Griglia Allarmi.
Configurazione Logger eventi
Creare un database interno da Database >> Database interno che conterrà tutti gli eventi generati, creare poi un nuovo logger eventi da Logger >> Logger degli eventi e alla sua proprietà Database collegare dinamicamente lo store precedentemente creato.
Alla proprietà Tipo di evento collegare dinamicamente Types >> EventTypes >> BaseEventTypes >> ConditionTypes (Types) >> AknowledgeableConditionTypes >> AlarmConditionTypes (Types) per ascoltare gli eventi degli allarmi.

Con un doppio clic su LoggerDegliEventi comparirà l’editor centrale dell’oggetto mostrando tutti i campi dell’evento e permettendo di scegliere cosa storicizzare. In questo caso, si opterà per Time, Message, Severity e gli stati ActiveState_Id, AckedState_Id, ConfirmedState_id e infine ConditionName.
La conferma tramite il pulsante “Apply” genererà una tabella nel database interno (con il nome del logger eventi), e le colonne corrispondenti ai campi che abbiamo selezionato con il tipo di dato relativo.
Dopo aver definito quali campi degli eventi acquisire si può scegliere su quale nodo ascoltare questi eventi tramite la proprietà Sorgente dell’evento.
Per catturare tutti gli eventi provenienti da qualsiasi nodo di progetto lasciare vuota la proprietà. Nel nostro scenario, lasceremo vuota la proprietà per catturare gli allarmi provenienti da qualsiasi nodo di progetto.
Definizione di locales per il logger eventi
Nel campo Locales del logger definire un sottoinsieme dei locale di progetto per storicizzare gli eventi. Se si opta di storicizzare gli eventi per più locale, occorre inserire l’elenco di locale.
Quando il campo viene lasciato vuoto, gli eventi sono storicizzati con tutti i locale di progetto. Il nome delle colonne localizzate hanno un suffisso definito come nomeColonna_locale ad esempio Messagge_it-IT, Message_en-US, Message_de-DE.
Per l’esempio si decide di lasciare questo campo vuoto, così da poter utilizzare tutti i locale di progetto.
Configurazione griglia dati
Inserire a progetto una griglia di dati per la storicizzazione di tutti gli allarmi, da MainWindow >> Controlli dati >> Griglia dati, con il suo pulsante di aggiornamento. Trascinare il LoggerDegliEventi1 all’interno della griglia dati per autocompletarla.
Parametrizzazione della query nella griglia
Affinché i campi localizzati vengano visualizzate nella lingua dell’utente corrente, occore parametrizzare il campo query della griglia inserendo un formatattore di stringhe con un identificatore in quanto i campi di tipo localized text hanno un suffisso dipendente dal locale in cui vengono storicizzati dal logger.
La parametrizzazione della query è neccessaria affinché si possa visualizzare a runtime il valore di un campo localizzato nello store.
Un parametro localizzato, ad esempio Message, presenta per ogni locale una colonna nello store. Queste colonne hanno un formato parametrizzabile dunque si può utilizzare il formattatore di stringhe per ottenere la query per l’utente corrente.
Nel campo Query quindi creare un collegamento dinamico avanzato, quindi creare un formattatore di stringhe. Come formato inserire la seguente query
SELECT ConditionName, Time, Severity, ActiveState_Id, AckedState_Id, ConfirmedState_Id, {0:sql_identifier} AS Message FROM "LoggerDegliEventi1"
Nota
LoggerDegliEventi1 presente nella clausola FROM è il nome della tabella del logger di eventi
In corrispondenza del segnaposto {0:sql_identifier} concatenare un secondo formattatore di stringhe con il seguente formato:
Creare ora un nuovo collegamento dinamico tra il segnaposto del secondo formattatore di stringhe {0} e {Session}.User.LocaleIds[0] in modo tale che al cambio di utente a tempo di esecuzione, la query venga eseguita in base al locale dell’utente corrente.
Configurazione colonne della griglia
Con la query dell’operazione precedente è stato creato un alias SQL per la colonna localizzata Message. Quindi nonostante si faccia riferimento allo stesso nome Message, in base al locale dell’utente corrente si utilizzerà la colonna Message_it-IT o Message_en-US.
Vanno quindi contestualmente modificate le colonne della griglia dati ottenute in automatico trascinando l’oggetto LoggerDegliEventi1 sulla griglia stessa.
Si proceda inizialmente con la cancellazione di una delle due colonne localizzate, per esempio quella di Message_en-US. Successivamente si prenda la colonna rimanente, nel caso di questo esempio Message_it-IT e si modifichi le proprietà DataItemTemplate > Testo e Ordina per dall’attuale {Item}.Message_it-IT a {Item}.Message.
Esecuzione del progetto
Prima di eseguire il progetto, inserire due utenti con locale differenti (nel nostro caso Alice avrà il locale it-IT e John en-US) e alcuni messaggi degli allarmi tradotti nel editor di traduzioni e osservare che al login degli utenti, la griglia dati cambia il messaggio visualizzato a seconda della localizzazione dell’utente attivo.
Scarica il progetto di esempio da qui
.
Vedi anche
Concetti correlati
Procedure correlate