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

Modifications dans la sauvegarde de certaines grilles à partir de la version 10.1

0000002723     -      28/07/2017

Mercator 10.1 contient une fonctionnalité de suivi des modifications dans les signalétiques, en ce compris certaines grilles qui en dépendent. Cela a imposé une modification importante dans la manière dont Mercator sauvegarde les données de ces grilles :

  • ARTFOU = SigGrids.ArtFou
  • TARCLI = SigGrids.TarCli
  • TARPREST = SigGrids.TarPrest
  • ARTLIENS = SigGrids.ArtLiens
  • ANALIENS = SigGrids.AnaLiens
  • IMMDATA = SigGrids.ImmData

Précédemment, lors de la sauvegarde d’une fiche, Mercator supprimait tous les enregistrements de ces grilles et ensuite les recréait. Maintenant, Mercator procède via la séquence « delete / update / insert », plus proche de la réalité, après un bulk du contenu de la grille vers une table SQL temporaire.

Par exemple, pour l'onglet "Fournisseurs" de la fiche "Articles" : 

delete ARTFOU where (id_art=@id) and not exists(select * from #artfou_tmp where (artfou.id_art=#artfou_tmp.id_art) and (artfou.id_artfou=#artfou_tmp.id_artfou)) 

update ARTFOU set ID_FOU=#artfou_tmp.ID_FOU,REF_FOU=#artfou_tmp.REF_FOU,PRIX=#artfou_tmp.PRIX,REMISE=#artfou_tmp.REMISE,ID_DEV=#artfou_tmp.ID_DEV,N_DEC=#artfou_tmp.N_DEC,PRINCIPAL=#artfou_tmp.PRINCIPAL,condit_v=#artfou_tmp.condit_v,condit_a=#artfou_tmp.condit_a,COL_TARI=#artfou_tmp.COL_TARI,Q_EGAL=#artfou_tmp.Q_EGAL,Q1=#artfou_tmp.Q1,Q2=#artfou_tmp.Q2,PRIX1=#artfou_tmp.PRIX1,PRIX2=#artfou_tmp.PRIX2,REM1=#artfou_tmp.REM1,REM2=#artfou_tmp.REM2 from #artfou_tmp where (artfou.id_art=#artfou_tmp.id_art) and (artfou.id_artfou=#artfou_tmp.id_artfou) 

insert into ARTFOU (ID_ART,ID_FOU,REF_FOU,PRIX,REMISE,ID_DEV,N_DEC,ID_ARTFOU,PRINCIPAL,condit_v,condit_a,COL_TARI,Q_EGAL,Q1,Q2,PRIX1,PRIX2,REM1,REM2) 
                select ID_ART,ID_FOU,REF_FOU,PRIX,REMISE,ID_DEV,N_DEC,ID_ARTFOU,PRINCIPAL,condit_v,condit_a,COL_TARI,Q_EGAL,Q1,Q2,PRIX1,PRIX2,REM1,REM2 from #artfou_tmp where not exists(select * from ARTFOU where (artfou.id_art=#artfou_tmp.id_art) and (artfou.id_artfou=#artfou_tmp.id_artfou)) 

 

En conséquence : si des triggers ON INSERT et ON DELETE ont été installés sur ces tables, il est peut-être nécessaire de prévoir à présent le cas ON UPDATE.

Nous rappelons ici qu’un bon trigger ON UPDATE ne se déclenche pas à tout-va, mais après un ou plusieurs tests de ce type :

if update(macolonne)

Il est peut-être nécessaire de revoir certains paramétrages à la lumière de ceci.

Ceci concerne toutes les versions 10.1 des assemblies Mercator (Majuro), même si le voucher ne contient pas la version 10.1.