Skrypt do kontroli poprawności danych

Poziomica z pęcherzykiem powietrza na drewnianym blacie

Błędne dane rzadko dają o sobie znać same. Wychodzą przy zamknięciu okresu albo u klienta — czyli w najgorszym momencie.

Rodzaje kontroli

  • pola wymagane bez wartości,
  • wartości poza dopuszczalnym zakresem,
  • daty niemożliwe albo w złej kolejności,
  • odwołania do nieistniejących rekordów,
  • duplikaty tam, gdzie mają być wartości niepowtarzalne.

Do tego dochodzą reguły wynikające z samego biznesu: towar bez ceny, zamówienie bez pozycji, dokument sprzedaży bez kontrahenta, cena niższa od kosztu zakupu. Takich reguł nie da się wymyślić przy biurku — powstają z rozmowy z osobą, która te dane wprowadza i wie, co się w nich psuje.

Niespójności między systemami

Stan magazynowy w systemie i w sklepie, salda rozrachunków, liczba dokumentów. Porównanie sum jest najprostszą i najskuteczniejszą kontrolą.

Warto pamiętać, że oba systemy trzeba odpytać o ten sam moment. Porównanie stanu z rana z listą pobraną w południe pokaże różnice, których nie ma. Jeśli dane płyną z opóźnieniem, kontrola powinna to opóźnienie uwzględniać i porównywać stany sprzed ustalonej godziny. Same wymiany plikami mają własny zestaw pułapek, opisany w tekście o imporcie i eksporcie danych plikami.

Wykrywanie, nie poprawianie

Skrypt raportuje, człowiek rozstrzyga. Automatyczne poprawianie danych zwykle ukrywa przyczynę problemu zamiast ją usuwać.

Wyjątkiem bywają rzeczy oczywiste i odwracalne, jak ujednolicenie zapisu numeru telefonu czy usunięcie spacji z kodu produktu. Nawet wtedy skrypt powinien zapisać, co zmienił, żeby dało się to prześledzić i cofnąć.

Regularność

Codziennie, z krótkim zestawieniem. Kontrola uruchamiana przy podejrzeniu problemu przychodzi zawsze za późno.

Codzienny rytm ma jeszcze jedną zaletę: zawęża okno czasu. Błąd wykryty następnego dnia daje się powiązać z konkretnym importem albo zmianą. Ten sam błąd znaleziony po kwartale jest już tylko liczbą, której nikt nie umie wytłumaczyć.

Puste zestawienie jako wynik

Informacja, że kontrola się wykonała i nic nie znalazła, jest wartościowa. Cisza może oznaczać porządek albo niedziałający skrypt.

Wystarczy krótka wiadomość z liczbą sprawdzonych rekordów i listą wykonanych reguł. Jeśli liczba sprawdzonych rekordów nagle spada do zera, to sama w sobie jest usterką — kontrola przestała widzieć dane. Kiedy wysyłać, a kiedy milczeć, opisuje tekst o zadaniach cyklicznych i harmonogramie.

Od przyczyny, nie od objawu

Powtarzający się błąd tego samego rodzaju wskazuje na lukę w formularzu albo w imporcie. Poprawianie skutków w nieskończoność jest pracą bez końca.

Dlatego warto zliczać błędy według rodzaju i źródła. Zestawienie za miesiąc zwykle pokazuje, że kilka reguł odpowiada za większość zgłoszeń, a ich przyczyna leży w jednym miejscu: brakującej walidacji przy wprowadzaniu albo w danych przychodzących od jednego dostawcy. Naprawa u źródła kasuje całą kategorię problemów naraz i jest jedynym sposobem, żeby lista kiedykolwiek się skróciła.