Verificare velocemente se un record è stato modificato
Salve lettore, in questo articolo voglio spiegarti un approccio che potresti utilizzare per verificare se un record è stato modificato oppure no.
E’ noto che in tabelle con molti campi, l’operazione di verifica di cambiamento di un record è parecchio tediosa e lunga poiché dovresti passare campo per campo l’istruzione IF xRec.NomeCampo <> Rec.NomeCampo THEN …
Se non ti interessa monitorare un campo in particolare, ma vuoi solamente sapere se il record è stato modificato oppure no, puoi utilizzare l’istruzione FORMAT. Notoriamente questa istruzione la utilizzi per formattare date o per inserire valori non stringa in campi di testo. Puoi però utilizzarlo anche mettendo nel parametro la variabile Rec, se in una pagina o in una tabella, od utilizzarlo in altri contesti ad esempio in codeunit o report.
Vediamo questo scenario, sviluppiamo un’estensione della pagina “Customer Card” dove inseriamo due action, una che modifica il campo Name del cliente e cerca le differenze, un’altra dove cerca solo le differenze. In entrambe le action inoltre verrà mostrato il record dopo la chiamata FORMAT(Rec).
Partiamo con la pagina. Inserite le due action, per comodità ho fatto una funzione che a seconda di un parametro (ModifyRec) modifica il campo Name aggiungendo il carattere 1 se impostato a true.
Ora clicchiamo sul tasto dove non viene fatta la modifica del campo nome e vediamo che succede.
Ora invece clicchiamo sulla action dove verrà inserito il carattere 1 all’interno del campo Name e vediamo che cosa succede.
Questo semplice esempio ci ha mostrato come possiamo verificare se un record è stato modificato o meno. Da notare, grazie alla visualizzazione di FORMAT(Rec) attraverso un Message, come il sistema ci espone il record, tutti i valori dei campi separati da spazi. Volendo, quindi, potresti anche manipolare questa stringa, affinché tu possa mettere qualche carattere di separazione tra un valore e l’altro tramite la funzione CONVERTSTR.
Spero che questo articolo ti abbia dato una nozione di programmazione in più affinché tu possa apprendere in maniera esaustiva le potenzialità che offre Business Central.