Condizioni di notifica
Questo evento viene notificato ad una istanza del documento quando un client di sincronizzazione deve o richiede di essere re-sincronizzato. In particolare questo succede quando:
- Il client è da molto tempo che non esegue la sincronizzazione quindi non è possibile effettuarla in modo differenziale.
- Il client ha richiesto esplicitamente la resincronizzazione utlizzando il metodo ResyncClass.
Utilizzo consigliato
Lo scopo di questo evento è quello di inserire filtri QBE sulle proprietà del documento. Infatti subito dopo l'evento il framework esegue una LoadCollectionByExample per caricare i documenti da inviare al client. Solitamente il filtro serve per selezionare i documenti relativi al dominio del client.
Argomenti
Collection | E' una collection di documenti da inviare al client, se si desidera farlo in maniera manuale. In tal caso impostare il parametro Skip a true. |
Client Domain | E' la stringa che identifica il dominio del client. Viene decisa dall'evento OnSynchronize dell'applicazione quando inizia la fase di sincronizzazione stessa e serve per parzializzare i documenti da inviare. |
Last Sync | E' la data e ora di ultima sincronizzazione del client. Può essere utile per inserire ulteriori filtri in caso di tabelle di tipo storico. |
Skip | Parametro booleano di output. Se lo si imposta a true, il framework non caricherà la collection di documenti da inviare ma lo dovrà fare il codice dell'evento. |
Document Number | Parametro intero di output. Deve essere valorizzato al numero di documenti ancora da sincronizzare se PreCount è true e la sincronizzazione è personalizzata. |
Esempio di codice
// ***************************************************************************
// Evento notificato al documento quando un client deve essere resincronizzato
// ***************************************************************************
event Ordini.OnResyncClient(
IDCollection Collection of IDDocument
string ClientDomain
date time LastSync
inout boolean Skip
)
{
// Scelgo solo gli ordini dell'impiegato che sta usando il client
Idimpiegato = convert(ClientDomain)
}
// Evento notificato al documento quando un client deve essere resincronizzato
// ***************************************************************************
event Ordini.OnResyncClient(
IDCollection Collection of IDDocument
string ClientDomain
date time LastSync
inout boolean Skip
)
{
// Scelgo solo gli ordini dell'impiegato che sta usando il client
Idimpiegato = convert(ClientDomain)
}
Se si decide di personalizzare completamente la resincronizzazione impostando skip a true, si deve tenere conto delle seguenti note:
- Se la proprietà PreCount è true, allora occorre valorizzare il parametro di uscita Document Number al numero totale di doucmenti da resincronizzare per questa classe.
- Se la proprietà MaxDocuments è valorizzata, allora la sincronizzazione è parziale e si deve recuperare solo il numero di documenti indicato.
- In questo caso è bene guardare anche la proprietà LastDocument che contiene il DNA dell'ultimo documento già sincronizzato di questa classe. Solo i documenti successivi dovranno essere recuperati.
Ultima modifica: 24/03/2021 / Validità: da 10.5.4660