Mercator 10.1 bevat een functionaliteit om wijzigingen in de informatiebestanden op te volgen, waaronder enkele grids. Dit is een belangrijke verandering in de manier waarop Mercator de gegevens uit de rasters bewaard.
- ARTFOU = SigGrids.ArtFou
- TARCLI = SigGrids.TarCli
- TARPREST = SigGrids.TarPrest
- ARTLIENS = SigGrids.ArtLiens
- ANALIENS = SigGrids.AnaLiens
- IMMDATA = SigGrids.ImmData
Vroeger verwijderde Mercator alle data uit de grid en bouwde deze grid die opnieuw op bij het bewaren van een informatiebestand. Nu gaat Mercator via de sequentie « delete / update / insert », veel dichter bij de realiteit, na een bulk gaat de inhoud naar een tijdelijke SQL-tabel.
Bijvoorbeeld voor het tabblad Leveranciers uit de artikelfiche.
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))
Daarom: Indien de triggers ON INSERT et ON DELETE geïnstalleerd zijn op deze tabellen, is het misschien noodzakelijk om ON UPDATE te voorzien.
We herinneren u eraan dat een goed ON UPDATE-trigger niet altijd afgaat, maar na meerdere tests van dit type:
if update(macolonne)
Het is misschien noodzakelijk om verschilende instellingen in dit opzicht te bekijken.
Dit geldt voor alle 10.1 Mercator-assemblies, zelfs indien de voucher niet versie 10.1 bevat.