Scopo
Questa funzione serve per chiedere ad una sessione, che sta usando i metodi StartPhase e TrackPhase, la percentuale di completamento di quello che sta facendo.
Sintassi
float perc = getSessionProgress("nome sessione", abort)
Argomenti
Nome Sessione | Nome della sessione di cui si vuole conosce la percentuale di avanzamento o che si vuole interrompere |
Abort | Se impostato a True la sessione viene informata che è stato richiesto di interrompere quello che sta facendo. |
Valore di ritorno
Viene ritornato un numero decimale compreso tra 0 e 1 corrispondente alla percentuale di completamento della sessione.
Se la sessione non sta usando i metodi StartPhase e TrackPhase viene restituito 0; se invece la sessione non esiste viene restituito -1.
Esempio di codice
// ****************************************************************************
// Evento notificato dal pannello dopo aver recuperato i dati della master query
// ****************************************************************************
event SessionMonitor.ServerSessionsLog.AfterFind(
int Command // Questo argomento è stato introdotto a partire dalla versi...
)
{
for each row in ServerSessionsLog
{
record NomeOggetto
int IDServerSessionLog //
string NomeSessione //
string QueryString //
date time StartTime //
date time EndTime //
string Termina // C"Termina"
string Debug // C"Debug"
int DebugSize // Blob Size (Debug File Server Session Log)
string Progress // C""
//
// Se la sessione non è ancora terminata
if (NomeOggetto.EndTime == null)
{
float p = getSessionProgress(NomeOggetto.NomeSessione, ...)
//
// Aggiorno il suo stato di avanzamento
if (p > 0)
{
NomeOggetto.Progress = toString(round(p * 100, 1)) + " %"
}
else
{
NomeOggetto.Progress = ""
}
}
}
ServerSessionsLog.undoChanges()
}
// Evento notificato dal pannello dopo aver recuperato i dati della master query
// ****************************************************************************
event SessionMonitor.ServerSessionsLog.AfterFind(
int Command // Questo argomento è stato introdotto a partire dalla versi...
)
{
for each row in ServerSessionsLog
{
record NomeOggetto
int IDServerSessionLog //
string NomeSessione //
string QueryString //
date time StartTime //
date time EndTime //
string Termina // C"Termina"
string Debug // C"Debug"
int DebugSize // Blob Size (Debug File Server Session Log)
string Progress // C""
//
// Se la sessione non è ancora terminata
if (NomeOggetto.EndTime == null)
{
float p = getSessionProgress(NomeOggetto.NomeSessione, ...)
//
// Aggiorno il suo stato di avanzamento
if (p > 0)
{
NomeOggetto.Progress = toString(round(p * 100, 1)) + " %"
}
else
{
NomeOggetto.Progress = ""
}
}
}
ServerSessionsLog.undoChanges()
}
- Se viene impostato a True il parametro Abort la prossima volta che la sessione controllerà il valore di ritorno della funzione TrackPhase potrà interrompere il proprio lavoro.
- N.B. Abortire una sessione non la fa terminare: la si informa soltanto che si desidera l'interruzione di quello che sta facendo.
Ultima modifica: 25/10/2016 / Validità: da 9.5.4160