It is currently 22 April 2025, 3:26 Advanced search

Come clonare Do o Collection

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Come clonare Do o Collection

Postby A.Piunti » 1 September 2018, 13:09

Salve,
qual è il modo migliore per clonare Documenti e\o Collection in indecloud?

Ho eseguito qualche prova con le semplici uguaglianze, ma in questo modo vengono copiati con referenza
Image

Succesivamente ho provato ad utilizzare la funzione duplicate(),
ma in questo caso nella collection del documento duplicato trovo un solo record anzichè due
Image

Se avessi un Documento A con due collection B e C dello stesso tipo
in che modo posso copiare il contenuto di B in C?

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

Re: Come clonare Do o Collection

Postby m.sirri » 4 September 2018, 10:30

Perché devi copiare il contenuto di B in C?
Ad ogni modo la duplicate ti fa quell'effetto perché i documenti Detail non hanno la pk valorizzata: se ce l'avessero ne verrebbero inseriti due nella collection clonata.

Per creare dei cloni dei documenti di una collection puoi ciclare sulla collection e duplicare ogni singolo documento e aggiugnere il clone alla nuova collection.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Come clonare Do o Collection

Postby A.Piunti » 6 September 2018, 9:11

m.sirri wrote:Perché devi copiare il contenuto di B in C?

Perchè a seconda di un parametro la collection C può essere uguale a B o avere altro al suo interno...

Utilizzando il duplicate() ho notato che per il nuovo documento scatta l'onInserting, dico bene?

Nell onInserting del DO A ho
Code: Select all
if (this.inserted && !this.isSynchronizing() && app.runsLocally()) {
this.qty=0;
...
}


duplicandolo la proprietà qty viene sovrascritta.
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20

Re: Come clonare Do o Collection

Postby m.sirri » 6 September 2018, 9:18

Non puoi farlo solo se this.qty è undefined?
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Come clonare Do o Collection

Postby A.Piunti » 6 September 2018, 9:30

m.sirri wrote:Non puoi farlo solo se this.qty è undefined?

Si, l'evento è stato utilizzato per inizializzare le proprietà del Do
Image

dovrei riscrivere ogni riga:
Code: Select all
this.id = this.id || App.Utils.generateUID36(app);
this.counter = this.counter || 0;


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

Re: Come clonare Do o Collection

Postby m.sirri » 6 September 2018, 9:52

In alternativa alla duplicate puoi fare:
var d = App.Classe.fromJSON(doc.intoJSON());
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Come clonare Do o Collection

Postby A.Piunti » 6 September 2018, 10:32

Ottimo, nel mio caso risulta pià "comodo" utilizzare il JSON anzichè il duplicate.

Una curiosità, il fatto che non viene riportato lo stato di inserted è voluto?

@edit: forzando poi io lo stato di inserted a true, riscatta l'oninserting e mi ritrovo nella stessa situaizone del duplicate
Attachments
json.PNG
json.PNG (32.55 KiB) Viewed 4932 times
User avatar
A.Piunti
 
Posts: 317
Joined: 1 January 2015, 13:20

Re: Come clonare Do o Collection

Postby m.sirri » 6 September 2018, 11:45

Dipende dalle options del metodo intoJSON: se imposti l'opzione skipStatus=false dovrebbe copiarti anche lo stato, ma l'evento dovrebbe scattarti lo stesso.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 11 guests

cron