It is currently 8 June 2025, 20:39 Advanced search

Cancellazione ed inserimento in collection (2)

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

Cancellazione ed inserimento in collection (2)

Postby t.simoncini » 14 January 2016, 16:12

Ritorno sull'argomento discusso qui (viewtopic.php?f=5&t=69591). Visto anche in assistenza (000297-2015).

Il problema è questo (lo riporto per chiarezza).
Tabella CLIENTI con indice univoco sul campo "CODICE".
Classe DO CLIENTE sulla tabella CLIENTI.
Pannello sulla classe CLIENTE.

L'utente:
- sblocca il pannello
- cancella il cliente "001"
- inserisce un nuovo cliente "001"
- tenta di salvare il pannello ma riceve un errore di chiave duplicata sul codice

Questo perché, come spiegava eurekapv, il framework esegue sempre prima gli inserimenti, poi le modifiche e infine le cancellazioni.
Non trovo giusto neanche fare sempre prima le cancellazioni, perché potrei trovarmi, di contro, in casi in cui il DB non mi permette la cancellazione a causa di foreign key di tipo restrict su record ancora da aggiornare.

Non trovo corretto neanche quello scritto da Vittoria nella risposta dell'assistenza:
Se nella tua applicazione un'operazione del genere deve essere consentita devi gestire la cancellazione dei documenti andando effettivamente a cancellare i documenti eliminati prima dell'inserimento di quelli nuovi. Puoi farlo nella fase 0 nell'evento di before save della testata.

Dal momento che i dati presenti in memoria sull'istanza di classe DO sono corretti, credo debba essere compito del framework decidere come riportare le modifiche sul database.
Inoltre, preso come esempio il caso sopra, potrei anche ricevere un errore nel salvataggio e dover annullare l'after save dell'inserimento, avendo però già fatto la cancellazione nella fase 0.
In ogni caso non è pratico.

L'altro sistema, è togliere l'indice univoco e gestire l'univocità dei dati con del codice nella Validate, ma penso sia chiaro che è non è né pratico né elegante.
Soprattutto perché sono casi diffusi.

Ci si può pensare a fare una modifica al framework che gestisca tutte le situazioni correttamente? Oppure è impraticabile?
Grazie in anticipo.
t.simoncini
 
Posts: 1585
Joined: 5 March 2012, 14:00

Re: Cancellazione ed inserimento in collection (2)

Postby d.pierangeli » 12 February 2016, 10:39

Sinceramente non so se si può trovare una soluzione che possa risolvere tutti i casi, però ho creato l'attività NPQ02640 per poterci pensare.
Quando verrà valutata, potrai seguirne l'andamento con Instant Developer Roadmap.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8129
Joined: 30 September 2010, 15:35

Re: Cancellazione ed inserimento in collection (2)

Postby t.simoncini » 12 February 2016, 11:06

Ok. Segnata.
Grazie.
t.simoncini
 
Posts: 1585
Joined: 5 March 2012, 14:00


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 24 guests