Un problema che si può verificare su diverse installazioni di SuiteCRM, può essere quello della saturazione del disco fisso per eccessiva occupazione del DB. A volte non è chiaro come possa verificarsi questo problema di fronte ad una gestione di quantità di dati magari relativamente basse.
Spesso questa problematica si verifica su installazioni che fanno abbondante uso delle regole di Workflow.
Non tutti sanno che ogni elemento sul quale viene eseguita una regola di workflow, genera delle righe in apposite tabelle che servono al sistema per tenere traccia su quali elementi ogni regola è stata eseguita.
Una definizione di regole con condizioni poco stringenti può portare a rieseguire le stesse regole migliaia di volte sullo stesso elemento ed ogni esecuzione genera nuove righe in DB.
I record di tracciamento delle regole di workflow servono a dire ad ogni regola su quali record è stata già eseguita. Eliminando queste righe, le regole di workflow, in base alla loro configurazione, potrebbero essere di nuovo eseguite su tutto.
ATTENZIONE! Quella che segue è una raccomandazione per poter svuotare le tabelle senza andare in contro a gravi problemi, ma è anche una norma di buona configurazione delle regole di workflow del CRM, per evitare migliaia di elaborazioni inutili.
Prima di svuotare le tabelle revisionare tutte le regole! Soprattutto quelle che devono inviare mail e quelle da eseguire “sempre” e su tutti i record senza condizioni di filtro.
Si consiglia di:
– definire sempre filtri precisi per evitare che le regole vengano eseguite anche quando non ce n’è bisogno;
– modificare le regole per l’invio delle mail, in modo che non inviino mail se l’evento si è già verificato.
Ora che abbiamo avvertito delle problematiche possibili e della delicatezza dell’attività descritta in questo articolo, di seguito le istruzioni per svuotale le tabelle di tracciamento.
Le tabelle da svuotare sono : aow_processed e aow_processed_aow_actions
E’ possibile svuotarle completamente tramite l’istruzione TRUNCATE
TRUNCATE TABLE aow_processed
TRUNCATE TABLE aow_processed_aow_actions
Potreste decidere di svuotarle parzialmente, quindi lanciando dei comandi di delete sulla data o sulle singole regole di workflow, oppure potreste creare una regola di cron per una pulizia scadenzata. Le possibilità sono tante, ma la raccomandazione è sempre di stare molto attenti prima di cancellare questi dati.
A disposizione anche un modulo compatibile con le versioni 8 e 7 di SuiteCRM per la definizione di regole schedulate per la pulizia di queste tabelle: sit-scheduled-aow-cleaner