Questo post deriva dal blog: vorrei capire la miglior strategia per sincronizzare i documenti gemelli all’interno della stessa applicazione.
Per documenti gemelli intendo diverse istanze dello stesso record, presenti in videate o pannelli differenti, che risultano quindi completamente slegati tra di loro. Aggiornandone o cancellandone uno gli altri continuano a mantenere (e mostrare) il valore scorretto.
Esempio:
Partiamo da una applicazione, sviluppata su pannelli DO con metodi… standard, quindi master query basate su classi, pannello master e pannelli figli.
Nel form Clienti abbiamo il pannello master clienti, e i pannelli figli fatture_del_cliente, pagamenti_del_cliente, che ovviamente contengono fatture e pagamenti del cliente in riga attiva.
Nel forms Fatture abbiamo il pannello master fatture, e i figli voci_in_fattura e pagamenti_fattura, che contiene solo i pagamenti relativi alla fattura in riga attiva.
Nel form Pagamenti abbiamo un elenco onnicomprensivo di tutti i pagamenti ricevuti.
…e via dicendo.
Intuitivamente, lo stesso pagamento (lo stesso record di pagamento) sarà presente in tre pannelli diversi, ma come tre diverse istanze della medesima classe. Aggiornandone una, le altre restano indipendenti, così come i valori calcolati che da esse dipendono. Questo porta ad una struttura dati coerente a livello database, ma erronea a livello di presentazione dati.
Vorrei capire la strategia migliore per correggere questo comportamento.
Ps: ora sto realizzando (con discreto successo) un bot che prende in ingresso un generico documento, lo cerca all’interno di tutte le collection caricate, e lo aggiorna/rimuove. Nel caso sia un nuovo record, cerca eventuali collection dove andrebbe inserito e lo inserisce. Ma forse esiste una strategia ben più semplice...