# Błędy parsowania kodów kreskowych - jak je wykrywać i eliminować

> Błędy odczytu kodów kreskowych mają powtarzalne przyczyny. Poznaj rejestr odczytów, typy werdyktów parsera oraz analizę jakości etykiet według dostawcy.

Adres strony: https://magazyn.softwarestudio.com.pl/bledy-parsowania-kodow/

---

Każdy nieodczytany lub błędnie zinterpretowany kod to potencjalna pomyłka magazynowa. Pokazujemy, jak rejestr odczytów pozwala analizować przyczyny według typu werdyktu i według dostawcy, zanim staną się problemem operacyjnym.
Nieodczytany kod rzadko jest przypadkiem. Zwykle ma powtarzalną przyczynę, która wraca przy każdej dostawie od tego samego kontrahenta albo przy pracy na tym samym urządzeniu. Różnica między magazynem, który traktuje odrzucenia jako zdarzenia losowe, a takim, który je zlicza, sprowadza się do jednego: rejestru odczytów. Sam mechanizm identyfikacji opisuje strona o [Auto ID w magazynie](/auto-id-w-magazynie/).

## Najczęstsze przyczyny błędów odczytu

Przyczyny dzielą się na dwie grupy, które wymagają zupełnie różnych działań naprawczych. Pierwsza dotyczy tego, czy czytnik w ogóle zobaczył kod. Druga tego, czy system potrafił zrozumieć, co zobaczył.

| Grupa | Przyczyna | Gdzie szukać rozwiązania |
| --- | --- | --- |
| Odczyt optyczny | Rozmyty druk, zbyt niska rozdzielczość głowicy | Konfiguracja drukarki, wymiana taśmy |
| Zabrudzenie, zagniecenie lub przetarcie etykiety | Sposób pakowania i transportu |
| Brak wolnego marginesu wokół kodu | Projekt etykiety u dostawcy |
| Słaby kontrast lub błyszczące podłoże | Materiał etykiety, oświetlenie strefy |
| Interpretacja danych | Brak separatora pól o zmiennej długości | Konfiguracja czytnika |
| Nieistniejący lub przestarzały przedrostek pola | System dostawcy generujący etykiety |
| Odwrócony format daty | System dostawcy |
| Błędna cyfra kontrolna numeru | Algorytm nadający numery u dostawcy |

Rozdzielenie tych grup ma znaczenie praktyczne. Problem optyczny rozwiązuje się przy drukarce albo przy urządzeniu, problem z danymi wymaga rozmowy z dostawcą. Wysyłanie serwisu do skanera, który działa poprawnie, kosztuje czas i nie usuwa przyczyny.

### Separator pól, który znika po drodze

Osobnego omówienia wymaga separator rozdzielający pola o zmiennej długości. Czytnik przesyła go zwykle jako znak sterujący ASCII 29, ale część urządzeń tego nie robi albo zamienia go na inny znak. Wtedy parser widzi jeden długi ciąg zamiast kilku pól i nie potrafi ustalić, gdzie kończy się numer partii, a zaczyna numer seryjny.

Diagnoza jest prosta: protokół kontroli pokazuje wprost, czy separator został przesłany i ile razy wystąpił. Poprawka sprowadza się do przeprogramowania czytnika kodem z jego instrukcji. Budowę kodów, w których ten problem występuje, opisuje strona o [etykietach logistycznych GS1](/etykiety-logistyczne-gs1/).

Widać, czy czytnik przesłał separator

Ten jeden wiersz protokołu rozstrzyga, czy winę ponosi urządzenie, czy etykieta dostawcy.

## Cztery werdykty parsera i co z nich wynika

System nie dzieli odczytów na udane i nieudane. Rozróżnia cztery stany, bo każdy wymaga innej reakcji.

| Werdykt | Co oznacza | Co zrobić |
| --- | --- | --- |
| Poprawny | Struktura, sumy kontrolne i daty zgodne ze specyfikacją | Nic, odczyt idzie dalej |
| Warunkowo zgodny | Dane czytelne, ale z odstępstwem od standardu | Odnotować i zgłosić dostawcy przy większej skali |
| Błędny | Odczytu nie da się bezpiecznie użyć | Odrzucić i poprawić etykietę u źródła |
| Nierozpoznany | Ciąg nie pasuje do żadnego obsługiwanego standardu | Opisać osobną regułę parsowania |

Rozróżnienie drugiego i trzeciego stanu decyduje o płynności pracy. Traktowanie każdego odstępstwa jako błędu zatrzymuje dostawy przy drobiazgach. Traktowanie wszystkiego jako ostrzeżenia wpuszcza do bazy dane, którym nie można ufać. Sposób ustawienia tej granicy przy wyrobach medycznych opisuje strona o [standardzie HIBC](/hibc-standard-kodowania/).

### Etykieta, która tylko wygląda poprawnie

Najgroźniejszy przypadek to kod o prawidłowej budowie i błędnej cyfrze kontrolnej. Struktura się zgadza, pola dają się wyodrębnić, a mimo to numer jest przekłamany - najczęściej wskutek błędu druku albo ręcznego przepisania. Bez sprawdzenia sumy kontrolnej taki odczyt trafiłby do bazy jako poprawny i ujawnił się dopiero przy reklamacji.

Sprawdzenie, którego nie widać gołym okiem

Cyfra kontrolna wychwytuje zamianę pojedynczego znaku i przestawienie sąsiednich, czyli dwa najczęstsze błędy przepisania.

## Jak wygląda rejestr odczytów

Rejestr zapisuje każdą próbę odczytu, również tę zakończoną odrzuceniem. To warunek, żeby statystyka miała sens - dziennik obejmujący wyłącznie udane skany pokazywałby stuprocentową skuteczność niezależnie od stanu faktycznego.

Dla każdego zdarzenia zapisywany jest znacznik czasu, identyfikator operatora, surowy ciąg przesłany przez czytnik, werdykt parsera oraz powód odrzucenia. Surowy ciąg jest tu najważniejszy: bez niego analiza sprowadza się do domysłów, a z nim można odtworzyć problem bez szukania palety w hali.

Dziennik ma filtry po okresie, werdykcie i standardzie kodu oraz wyszukiwarkę po numerze wyrobu, partii i operatorze. Cztery liczniki nad tabelą pokazują liczbę odczytów, udział poprawnych, liczbę błędów i liczbę ostrzeżeń w wybranym okresie. Poniżej pracują dwa zestawienia: najczęstszych powodów odrzucenia oraz jakości etykiet w podziale na dostawców.

Od liczby do konkretnego odczytu

Filtr po werdykcie oddziela przypadki wymagające reakcji od zwykłego ruchu, a wyszukiwarka prowadzi do pojedynczego zdarzenia.

## Analiza jakości etykiet według dostawcy

Najbardziej wartościowe zastosowanie rejestru wynika z budowy samego numeru wyrobu. Jego początkowa część wskazuje podmiot, który go nadał, więc system potrafi przypisać odrzucenie do konkretnego kontrahenta bez ręcznego mapowania.

Z takiego zestawienia wynikają trzy rodzaje wniosków. Pierwszy to udział poprawnych odczytów w podziale na dostawców. Drugi to charakter problemu: czy dany kontrahent ma kłopot z jakością druku, czy ze strukturą danych. Trzeci to zmiana w czasie, czyli odpowiedź na pytanie, czy zgłoszona uwaga przyniosła skutek.

Twarde dane przenoszą rozmowę z poziomu wrażeń na poziom faktów. Zamiast stwierdzenia, że etykiety kontrahenta sprawiają kłopoty, dział logistyki pokazuje udział odrzuceń wraz z przykładami surowych ciągów. To argument, na który da się odpowiedzieć poprawką, a nie polemiką. Powiązanie takich danych z historią serii opisuje strona o [Track and Trace](/track-and-trace-w-magazynie/), a wpływ jakości odczytu na proces wejściowy - strona o [przyjęciach towaru do magazynu](/przyjecia-towaru-do-magazynu/).

## Jak wykorzystać dane o błędach

Zbieranie danych ma sens tylko wtedy, gdy prowadzi do decyzji. Poniższa instrukcja porządkuje sześć kroków od włączenia rejestracji po regułę dla formatu nietypowego.

1. Włączenie rejestracji wszystkich odczytówUstawiamy zapis każdego skanu, także zakończonego odrzuceniem. Rejestr wyłącznie udanych odczytów daje statystykę nieprawdziwą.
2. Filtrowanie po werdykcie parseraZawężamy dziennik do błędów i ostrzeżeń, aby oddzielić przypadki wymagające reakcji od zwykłego ruchu.
3. Analiza surowego ciągu znakówOdczytujemy zapis przesłany przez czytnik i porównujemy go ze specyfikacją standardu, żeby ustalić, czy problem leży w druku, w danych czy w urządzeniu.
4. Zestawienie jakości według prefiksu dostawcyGrupujemy odrzucenia po prefiksie firmy, aby wskazać kontrahentów wystawiających etykiety niezgodne ze specyfikacją.
5. Rozdzielenie przyczyn sprzętowych od danychSprawdzamy, czy odrzucenia skupiają się na jednym urządzeniu lub jednej strefie. Taki rozkład wskazuje na usterkę, a nie na etykiety.
6. Wprowadzenie reguły dla formatu nietypowegoDla dostawcy stosującego własny format opisujemy osobną regułę parsowania, zamiast dopuszczać ręczne wpisywanie danych.

Ostatni krok bywa pomijany, a rozwiązuje najbardziej uciążliwe przypadki. Kontrahent stosujący własne oznaczenia nie zmieni ich, bo działają w jego systemie. Opisanie reguły po naszej stronie usuwa blokadę bez otwierania furtki do ręcznego wpisywania numerów. Dobór urządzeń, na których pracuje operator, porządkuje strona o [kolektorach danych Android](/kolektor-danych-android/), a poziomy referencyjne dla wskaźników pracy magazynu publikuje badanie [DC Measures prowadzone przez WERC](https://werc.org/page/ASSESS-DC_Measures).

Błędy odczytu nie są kosztem wpisanym w ryzyko logistyczne. Są mierzalnym zjawiskiem o powtarzalnych przyczynach, a każda z nich ma adresata: drukarkę, czytnik albo system dostawcy. Rejestr odczytów zamienia wrażenie, że coś nie działa, w listę konkretnych rzeczy do naprawienia.

## Pytania o błędy odczytu kodów

## Baza wiedzy - pojęcia analizy odczytów

Terminy, które pojawiają się przy diagnozowaniu problemów ze skanowaniem.
