Algemeen
In het menu Barcode parsing worden de instructies ingegeven die bepalen hoe boxwise de inhoud van barcodes behandelt. Dit menu is voor gebruikers niet van belang en wordt uitsluitend door consultants gebruikt. Veranderingen in dit menu kunnen grote gevolgen hebben voor de herkenning van artikelen, locaties, aantallen, etc. bij het scannen.
Uitleg
Op basis van de functie op de scanner van waaruit je een barcode scant, weet boxwise om welke type barcode het gaat. Boxwise weet dus of het gaat om bijvoorbeeld een barcode voor een product, een barcode voor een locatie of een barcode voor een aantal.
Boxwise weet wat voor type barcode het is, maar er moet nog een match gemaakt worden met een barcode in het systeem. Dit wordt gedaan op basis van de regels die hier aangemaakt worden. Op de regel staan een aantal kolommen die gevuld moeten worden:
- ID: Het ID van de definitie. Deze kun je niet zelf opgeven maar wordt gegenereerd door boxwise.
- Omschrijving: De omschrijving van de definitie.
- Regex: De reguliere expressie om een barcode te ontleden en te matchen.
- Parse instr.: De instructie om een barcode toe voegen aan een bepaald database veld.
- Vervang instr.:
- Prioriteit: De prioriteit van definitie. Dit getal duidt de volgorde aan om een match te maken voor een type barcode. Een prioriteit van 1 wordt als eerste gebruikt om een match te verkrijgen.
- Actief: Geeft aan of de definitie actief is of niet. Als de definitie niet actief is dan gebruikt boxwise de definitie dus niet om een barcode match te maken.
Parse instructie
Via de parse instructie kunnen groepen uit de Regex gekoppeld worden aan velden die gevuld moeten worden met een bepaalde waarde. De naamgeving van de groep is vrij te bepalen, maar moet zowel in de regex als de parse instructie gelijk zijn. In de regex staat de groep tussen <>, in de parse instructie tussen {}. Verschillende groepen kunnen worden gekoppeld aan verschillende velden. Mogelijke mappings:
- Product: {product}
Bevat de itemcode of een barcode die is vastgelegd in de barcode tabel. - Batch: {batch}
- BestBefore: {expiry}
De houdbaarheid van een partijnummer
Opmaak: yyyy-mm-dd - Serial: {serial}
- Quantity: {qty}
- Order: {order}
- Location: {loc}
- LicensePlate: {lp}
- ItemReference: {inner-collo-reference}
Uit één barcode kunnen meerdere groepen worden gehaald en gemapped aan meerdere velden. Een mapping kan gevuld worden met meerdere groepen uit de regex. Bijvoorbeeld regex:
\|[PBSQ](?:]..)?.{8}(?<batch>[A-Z0-9]{13}).{2}(?<product>[A-Z0-9]{7}).{3}(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})
En Parse instr.:
Product: {product}, Batch: {batch}, BestBefore: {year}-{month}-{day}
Vervang instructie
Wanneer de opmaak van een waarde in de parse instructie niet gelijk is aan de gewenste opmaak richting de database velden, dan kan er vervang logica worden toegepast. Ook hier wordt een regex toegepast om de inhoud van de waarde in te delen. Het is mogelijk om meerdere vervangingen op één barcode uit te voeren. Deze worden van links naar rechts uitgevoerd.
Voorbeeld:
[BestBefore, {(?<all>.+)}, 20${all}]
Plakt 20 vóór de datum, zodat het jaartal wordt aangevuld van 23 naar 2023.
[Location, {(?<letter>A)\D?(?<number>.+)}, ${letter}${number}]
Haalt de punt na de eerste letter weg uit de locatiebarcode.
Spaties eraf trimmen
In het ERP staan er soms spaties achter artikelcodes of locaties. In boxwise geeft dat altijd problemen met het scannen van barcodes. Met de onderstaande regexen kan worden ingesteld dat de spaties op het einde van een locatie of artikel barcode eraf worden getrimmed.
Locatiecode spatie trim regex
\|L(?:]..)?(?<loc>.*?)(?=\s*$)
Artikelcode spatie trim regex
\|P(?:]..)?(?<id>.*?)(?=\s*$)