CMDBuild Forum

Come Cancellare un attributo Reference?

Salve,

quando provo a cancellare un attributo di tipo Reference mi segnala un errore anche se le 2 classi coinvolte non contengono dati.

L'errore è Non è possibile cancellare classi o attributi di tabelle o domini contenenti dati

Inizialmente le 2 classi per le quali ho creato un dominio di cardinalità 1:N contenevano un record ciascuna, ma quando poi dal messaggio ho visto che dovevo cancellare prima tutti i dati ho proceduto in tal senso, pero' nonostante tutto continuo ad avere lo stesso errore.

E' un attuale limite della piattaforma o ci può essere un altro tipo di problema?

Grazie

Il motivo è che CMDBuild gestisce il versioning completo di tutte le modifiche e cancellazioni apportate alle varie schede, mostrando poi ogni "versione" nel TAB "Storia" della singola scheda e consentono di predisporre report storici su quei dati.

La gestione di questa funzionalità richiede che le cancellazioni vengano effettuate solamente in modo "logico", mantenendo cioè le schede nel database ed utilizzando un apposito flag per distinguerle (colonna "Status") dai dati attivi.

Nel suo caso ha due alternative:

  • mantenere fisicamente il campo reference e semplicemente impostarlo da interfaccia come non attivo
  • cancellare anche i dati storicizzati, tramite comandi SQL (in particolare li trova nelle tabelle con suffisso "_history" e può eliminarli con il comando "truncate")

Ovviamente tutti gli interventi diretti sul database vanno considerati a "rischio e pericolo" di chi li esegue, potendo andare in conflitto (non in questo caso il "truncate" sulla sola tabella "storica") con i criteri di coerenza dei dati previsti da CMDBuild.

Tutto Chiaro, grazie.