Een constraintfout van het type CHECK_XXX_X_ID_NOT_EMPTY corrigeren

0000001822     -      20-09-2017

Vanaf versie 7.25.62 van MercatorEngine is er per informatiebestandstabel (CLI, FOU, STOCK, GEN, …) een constraint toegevoegd die controleert of de primaire sleutel niet leeg is (C_ID<>'', F_ID <>'', S_ID<>'', G_ID<>'', …).

Hierna volgt het script dat in elk informatiebestand automatisch wordt toegepast bij het opstarten van Mercator: (voorbeeld voor tabel 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<>'           ')

Gevolg 1

Bij een groot dossier kan het opstarten enige tijd in beslag nemen, want de constraint moet worden gecontroleerd op basis van de bestaande gegevens. Merk op dat deze vertraging enkel voorkomt bij de eerste opstart van deze nieuwe versie.

Gevolg 2

Bij de eerste opstart van Mercator is het mogelijk dat er een bericht verschijnt van constraintinbreuk op

  • 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
  • ...

In dat geval moet u (voorbeeld voor klanteninformatiebestand - CLI):

  • ofwel de fiche met de lege c_id schrappen door op het "SQL" tabblad van de code-editor het commando

    delete from cli where c_id=''
    uit te voeren;
  • ofwel de fiche te corrigeren door op het "SQL" tabblad van de code-editor het commando

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

    uit te voeren.