It is currently 8 June 2025, 13:34 Advanced search

Sync e generazione nuovo DO lato server

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Sync e generazione nuovo DO lato server

Postby A.Piunti » 13 January 2021, 18:10

Salve,
in un app offline ho due Do A e B.
Per il DO A è attiva la sincronizzazione mentre per il DO B no

Quando l'utente salva il DO A con stato PUBBLICATO, lato server dovrei creare il DO B.

Per far questo ho inserito nell'onSave del DO A il seguente codice:

Code: Select all
if (options.phase === App.Document.savePhases.afterSave && !app.runsLocally() && this.updated) {
    //
    //Verifico se la survey abbia cambiato lo stato in pubblicato
    if (this.Stato === App.DB.vlWhsStato.Published &&
        this.getOriginalValue(App.GEBE.A.Stato) !== App.DB.vlWhsStato.Published) {
      yield this.saveToPortfolio();
      //
    }
  }


la funzione saveToPortfolio() al suo interno genera il DO B passando "this" ad una seconda funzione.

E' un metodo corretto o ci sono soluzioni migliori?
Nel caso ci siano errori nella funzione saveToPortfolio() l'intera transazione viene annullata?
Il DO A tornerebbe allo stato originale?

Grazie
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20

Re: Sync e generazione nuovo DO lato server

Postby m.sirri » 14 January 2021, 16:22

Il codice mi sembra corretto.
Se il metodo saveToPortfolio genera eccezione la transazione del db viene rollbackata e il salvataggio si interrompe.
I documenti coinvolti non cambiano stato. Non tornano in stato originale.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Sync e generazione nuovo DO lato server

Postby A.Piunti » 14 January 2021, 16:42

Ciao Matteo,
il DO A ha una struttura Master Detail e la procedura savePortfolio copia parte di questa nel Do B e corrispondenti Detail.

C'e' modo di sapere quando tutti i record collegati al DO A sono stati sincronizzati?

Nell'After Save del DO A, lato server, non ho la certezza che tutti i dati detail siano gia' stati sincronizzati e se in saveToPortfolio() recupero un detail di A con la loadCollection probabilmente
non avro' i dati corretti.
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 11 guests