Het gebruik van barcodes controleren

0000003186     -      17-10-2023

Mercator 11.0 maakt het mogelijk om de gebruikte barcodes te beheren. Dit betekent bijvoorbeeld dat verouderde barcodes uit de ARTFOU-tabel kunnen worden verwijderd. Om deze functionaliteit te installeren, voeg je gewoon een SEARCH_KEY kolom toe aan de gewenste lijntabellen. Dit kan bijvoorbeeld in LIGNES_V, om het gebruik van barcodes in de verkoop bij te houden, maar niet in LIGNES_A. Het toevoegen van een kolom aan één tabel betekent dus niet dat deze aan alle tabellen moet worden toegevoegd. De lengte van de kolom moet ook worden aangepast aan de lengte van de gebruikte barcodes.

alter table LIGNES_V add SEARCH_KEY char(30) not null default ''
alter table LIGNES_A add SEARCH_KEY char(30) not null default ''
alter table LIGNES_D add SEARCH_KEY char(30) not null default ''

Als deze kolom aanwezig is, vult Mercator deze aan met de zoeksleutel die wordt gebruikt om het artikel te vinden dat in deze rij is ingevoegd. Mercator maakt geen onderscheid tussen een barcode en een handmatig ingevoerde zoeksleutel.

Deze kolom is alleen ter informatie. Mercator vult het aan als het aanwezig is, maar gebruikt het nooit.


Voorbeeld van een query om barcodes die langer dan 6 maanden niet zijn gebruikt uit de ARTFOU-tabel te verwijderen:

 

declare @date date
set @date = dateadd(month, -6, getdate())

delete from ARTFOU where (id_fou is null) and (ref_fou<>'')
and not exists(select * from LIGNES_V inner join PIEDS_V
on (pieds_v.id=lignes_v.id) and (pieds_v.journal=lignes_v.journal) and (pieds_v.piece=lignes_v.piece)

where (pieds_v.date>=@date) and (artfou.ref_fou=lignes_v.search_key) and (artfou.id_art=lignes_v.id_article))

and not exists(select * from LIGNES_A inner join PIEDS_A
on (pieds_a.id=lignes_a.id) and (pieds_a.journal=lignes_a.journal) and (pieds_a.piece=lignes_a.piece)

where (pieds_a.date>=@date) and (artfou.ref_fou=lignes_a.search_key) and (artfou.id_art=lignes_a.id_article))

and not exists(select * from LIGNES_D
where (lignes_d.date>=@date) and (artfou.ref_fou=lignes_d.search_key) and (artfou.id_art=lignes_d.id_art))