Microsoft Dynamics CRM 2011 - DeletionStateCode Missing
La nuova versione CRM 2011 porta in sé un certo numero di modifiche, di cui più o meno si è parlato.
Una di cui non si è detto quasi niente non è neppure così banale, per chi sviluppa personalizzazioni.
DeletionStateCode
In CRM 4.0, esiste la colonna DeletionStateCode, su ogni entità, a livello di database, e che ci dice quando un record è stato eliminato. I suoi valori sono:
- 0 indica il record è in stato attivo nel database,
- 2 il record è stato contrassegnato per la rimozione, quando il Deletion Job verrà eseguito
- 1 il record non è utilizzato.
Schedulando il servizio di Deletion, vengono rimossi dalle tabelle tutti i record con DeletionStateCode = 2.
Per fortuna o purtroppo, il servizio spesso non parte o dà problemi o lascia qualche record.
Quando sviluppiamo personalizzazioni in CRM, bisogna tener conto della colonna DeletionStateCode dei record, ad esempio per escludere dalle query quelli che sono "in cancellazione" e non più validi.
Inoltre, la proprietà rende facile il recupero di dati erroneamente cancellati, o determinare chi li ha cancellati.
CRM2011
Nel 2011 CRM, 'DeletionStateCode' non esiste più...
Quando si elimina un record, si elimina e basta.
Non non c'è alcuna traccia del record cancellato.
Questo significa che non occorre includere il controllo del DeletionStateCode nella vostra personalizzazione.
Il problema è che, se si desidera tornare indietro e recuperare i vecchi record, è necessario eseguire un ripristino di una versione di backup del database. E se volete vedere chi ha cancellato cosa, è necessario utilizzare un audit logging.
Sviluppo personalizzazioni
L'impatto sul nuovo è zero, ma una migrazione porta alcuni problemi e accorgimenti da attuare.Sulle personalizzazioni, occorre togliere ogni riferimento al DeletionStateCode dal codice, dai report o dalle query.
Migrazioni
Inoltre, se avete pianificato un aggiornamento da CRM 4.0 al CRM 2011, il consiglio è quello di eseguire il servizio di Deletion manualmente, prima di aggiornare, e controllare che tutti i record con DeletionStateCode = 2 siano stati effettivamente eliminati dal sistema.
Se rimangono alcuni record con lo stato a 2, quando il sistema viene aggiornato, quando si accede in CRM 2011, magicamente riappaiono come record attivi!!
Comments
Post a Comment