Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Corriger une erreur de contrainte de type CHECK_XXX_X_ID_NOT_EMPTY

0000001822     -      20/09/2017

A partir de la version 7.25.62 de MercatorEngine, a été ajoutée une contrainte par table de signalétique (CLI, FOU, STOCK, GEN, …) qui vérifie que la clé primaire n'est pas vide. (C_ID<>'', F_ID <>'', S_ID<>'', G_ID<>'', …)

Voici le script qui est appliqué automatiquement signalétique par signalétique au démarrage de Mercator : (exemple pour la table CLI)

if not exists(select * from sysobjects where name='CHECK_CLI_C_ID_NOT_EMPTY')
           alter table dbo.CLI add constraint CHECK_CLI_C_ID_NOT_EMPTY check (c_id<>'           ')

Conséquence 1 :

Sur un gros dossier, cela peut prendre un certain temps au démarrage, puisque la contrainte va être vérifiée par rapport aux données existantes. Notez que ce délai ne sera subi qu'au premier démarrage de cette nouvelle version.

Conséquence 2 :

Il est possible, lors du premier démarrage de Mercator, d'obtenir un message de violation de contrainte sur

  • CHECK_CLI_C_ID_NOT_EMPTY
  • CHECK_FOU_F_ID_NOT_EMPTY
  • CHECK_STOCK_S_ID_NOT_EMPTY
  • CHECK_GEN_G_ID_NOT_EMPTY
  • CHECK_ANA_A_ID_NOT_EMPTY
  • CHECK_IMM_I_ID_NOT_EMPTY
  • CHECK_PROJ_P_ID_NOT_EMPTY
  • CHECK_TACT_T_ID_NOT_EMPTY
  • CHECK_EMB_E_ID_NOT_EMPTY
  • CHECK_XLEAD_X_ID_NOT_EMPTY
  • CHECK_YPREST_Y_ID_NOT_EMPTY
  • ...

Dans ce cas, (exemple pour le signalétique client - CLI)

  • Soit supprimer la fiche avec c_id vide, en exécutant dans l'onglet "SQL" de l'éditeur de code

    delete from cli where c_id=''
  • Soit la corriger, en exécutant dans l'onglet "SQL" de l'éditeur de CODE

    update cli set c_id='VIDE' where c_id=''