SQL Server w logistyce

Tabela _typdok w bazie danych SQL Server

Słownik typów dokumentów — klasyfikuje przyjęcia, wydania i przesunięcia według rodzaju i przeznaczenia.

sql.server.net.pl/sql/
Uśmiechnięty analityk w garniturze przy szerokim monitorze
Uśmiechnięty analityk w garniturze przy szerokim monitorze
W skrócie
  • Typ dokumentu decyduje o tym, jak zachowa się system: czy dokument zwiększy stan magazynowy, czy go zmniejszy.
  • Kolumna RODZAJ grupuje typy według kierunku obrotu — P dla przychodów, R dla rozchodów.
  • Trzyznakowy kod z kolumny KOD wchodzi w skład numeru dokumentu i występuje w rejestrach całego systemu.
  • Kolumna TYP rozdziela obszary działania — M oznacza dokumenty magazynowe.

Do czego służy tabela [dbo].[_typdok]

Przyjęcie zewnętrzne, wydanie na produkcję, przesunięcie międzymagazynowe i korekta różnią się nie formularzem, lecz skutkiem. Jeden zwiększa stan, drugi go zmniejsza, trzeci przenosi towar bez zmiany ilości ogółem. Tabela [dbo].[_typdok] przechowuje definicje tych typów wraz z klasyfikacją decydującą o zachowaniu systemu.

Klasyfikacja jest trójstopniowa. Kolumna TYP wskazuje obszar — dokumenty magazynowe oznaczone są literą M. Kolumna RODZAJ określa kierunek: przychody, rozchody albo operacje wewnętrzne. Kolumna KOD identyfikuje konkretny typ w obrębie rodzaju. Dopiero komplet tych trzech wartości opisuje dokument jednoznacznie.

Trzyznakowy kod ma znaczenie wykraczające poza słownik. Wchodzi w skład numeru dokumentu tworzonego przez licznik, pojawia się w dzienniku zdarzeń i w historii, a także decyduje o dostępie — uprawnienia nadaje się zwykle nie do modułu, lecz do konkretnych typów. Zmiana kodu po wdrożeniu zrywa wszystkie te powiązania naraz.

Trzy poziomy klasyfikacji dokumentu
Obszar ObszarKolumna TYP wskazuje moduł — na przykład M dla magazynu
Kierunek KierunekKolumna RODZAJ rozdziela przychody, rozchody i operacje wewnętrzne
Typ TypTrzyznakowy kod identyfikuje konkretny rodzaj dokumentu
Skutek SkutekKlasyfikacja decyduje o wpływie na stan magazynowy i numerację

Kod typu wchodzi w skład numeru dokumentu, więc jego zmiana po wdrożeniu zrywa powiązania z numeracją, historią i uprawnieniami.

Budowa tabeli — wykaz kolumn

Siedem kolumn opisuje typ dokumentu, jego klasyfikację i sposób traktowania przy synchronizacji.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
ID_TYPDOKint
liczba całkowita
takUnikalny identyfikator wiersza tabeli
KODvarchar(3)
tekst do 3 znaków
takUnikalny kod typu dokumentu
OPISvarchar(200)
tekst do 200 znaków
nieOpis przeznaczenia
RODZAJvarchar(2)
tekst do 2 znaków
takOznaczenie grupy rodzajów dokumentów, np. P - przychody, R - rozchody
SEKCJAvarchar(50)
tekst do 50 znaków
takNazwa - opis typu dokumentu
SYSTEMOWEbit
wartość logiczna 0/1
takOznaczenie czy dany wiersz jest synchronizowany z bazy ROOT
TYPvarchar(1)
tekst do 1 znaków
takSymbol typu dokumentu, M - dokumenty magazynowe

Kolumna SEKCJA mieści pełną nazwę typu widoczną w interfejsie, a OPIS — objaśnienie przeznaczenia. Rozdzielenie obu pozwala pokazać zwięzłą etykietę na liście i pełniejsze wyjaśnienie w podpowiedzi.

Indeksy i wydajność zapytań

Tabela zawiera zwykle kilkadziesiąt wierszy odczytywanych przy budowaniu list wyboru, więc indeksowanie ogranicza się do klucza głównego.

Indeksy zdefiniowane na tabeli
IndeksKolumnyRodzaj
PK__typdokID_TYPDOKklucz główny

Klucz główny na kolumnie ID_TYPDOK jest wystarczający przy tej wielkości. Warto natomiast rozważyć ograniczenie unikalności na kolumnie KOD — kod występuje w numerach dokumentów i w rejestrach, więc jego powtórzenie miałoby skutki wykraczające daleko poza sam słownik.

Typowa klasyfikacja dokumentów magazynowych

Zestaw typów w konkretnym wdrożeniu zależy od procesów firmy, ale pewien trzon powtarza się niemal wszędzie. Poniżej układ spotykany w magazynach obsługiwanych systemem Studio WMS.net.

Rodzaje i typy dokumentów magazynowych
RodzajPrzykładowe typyWpływ na stan
Przychód (P)Przyjęcie zewnętrzne, przyjęcie z produkcji, zwrot od klientaZwiększa stan w lokalizacji docelowej
Rozchód (R)Wydanie na zewnątrz, wydanie na produkcję, złomowanieZmniejsza stan w lokalizacji źródłowej
WewnętrznyPrzesunięcie międzymagazynowe, zmiana lokalizacjiPrzenosi towar bez zmiany stanu ogółem
KorektaKorekta przyjęcia, korekta wydania, wynik inwentaryzacjiZmienia stan w obie strony, wymaga uzasadnienia

Rozróżnienie ma skutki praktyczne: dokumenty korygujące zwykle wymagają odrębnych uprawnień i pozostawiają wpis w rejestrze rewizji.

Przy projektowaniu zestawu typów obowiązuje ta sama zasada co przy rolach: lepiej zacząć od kilku i rozbudowywać w miarę potrzeb, niż odwzorować w słowniku każdą sytuację, jaka przyszła komuś do głowy przy analizie przedwdrożeniowej. Typ, który nie został użyty ani razu przez pół roku, zwykle nie był potrzebny — a jego obecność na liście wyboru zwiększa ryzyko pomyłki magazyniera.

Jak korzystać z tabeli w praktyce

Przy definiowaniu typów dokumentów sprawdzają się poniższe zasady:

  • Nadawaj kody czytelne dla człowieka — PZ dla przyjęcia zewnętrznego mówi więcej niż D01.
  • Nie zmieniaj kodu po pierwszym użyciu; występuje w numerach dokumentów, w dzienniku zdarzeń i w uprawnieniach.
  • Ograniczaj liczbę typów do faktycznie używanych — każda dodatkowa pozycja na liście wyboru zwiększa ryzyko pomyłki.
  • Wypełniaj kolumnę OPIS, aby magazynier mógł rozstrzygnąć, którego typu użyć, bez pytania przełożonego.
  • Ustawiaj RODZAJ zgodnie z rzeczywistym kierunkiem obrotu; to od niego zależy wpływ dokumentu na stan.
  • Przeglądaj okresowo typy nieużywane od kilku miesięcy i wycofuj je z listy wyboru.

Zestawienie typów dokumentów z liczbą wystąpień w dzienniku zdarzeń — podstawa przeglądu nieużywanych pozycji:

SELECT  t.KOD,
        t.SEKCJA,
        t.RODZAJ,
        t.OPIS,
        COUNT(d.ID__DZIENNIK) AS UZYC_12M
FROM    dbo._typdok AS t
        LEFT JOIN dbo._dziennik AS d
               ON d.TYPDOK = t.KOD
              AND d.KIEDY >= DATEADD(YEAR, -1, GETDATE())
GROUP BY t.KOD, t.SEKCJA, t.RODZAJ, t.OPIS
ORDER BY UZYC_12M, t.KOD;

Typy z zerową liczbą użyć na początku wyniku to kandydaci do wycofania — pod warunkiem sprawdzenia, czy nie są przewidziane do procesu uruchamianego raz w roku, na przykład inwentaryzacji.

Słownik typów dokumentów jest jednym z pierwszych elementów ustalanych przy wdrożeniu i jednym z najtrudniejszych do późniejszej zmiany. Godzina poświęcona na przemyślenie go przed startem oszczędza rozmów o tym, dlaczego magazynierzy wybierają zły typ — a te toczą się później miesiącami.

Powiązane tabele i dokumentacja

Typy dokumentów wiążą się z numeracją, uprawnieniami i rejestrami zdarzeń:

FAQ

Najczęściej zadawane pytania o tabelę _typdok

01

Czym różni się kolumna TYP od RODZAJ?

TYP wskazuje obszar działania — litera M oznacza dokumenty magazynowe. RODZAJ określa kierunek obrotu w obrębie tego obszaru: P dla przychodów, R dla rozchodów. Dopiero razem z trzyznakowym kodem opisują dokument jednoznacznie.

02

Czy można zmienić kod istniejącego typu dokumentu?

Zdecydowanie odradzane. Kod wchodzi w skład numeru dokumentu tworzonego przez licznik, występuje w dzienniku zdarzeń, w historii oraz w definicjach uprawnień. Zmiana zrywa wszystkie te powiązania jednocześnie, nie zgłaszając błędu — a skutki ujawniają się stopniowo, przy próbie odnalezienia dokumentów albo wystawienia nowych.

03

Ile typów dokumentów powinno być zdefiniowanych?

Tyle, ile faktycznie odpowiada odrębnym procesom. Każda dodatkowa pozycja na liście wyboru zwiększa ryzyko, że magazynier wybierze niewłaściwą, a skutek — dokument o błędnym wpływie na stan — bywa wykrywany dopiero przy inwentaryzacji. Typ nieużywany przez pół roku zwykle nie był potrzebny.

04

Dlaczego warto rozważyć ograniczenie unikalności na kolumnie KOD?

Ponieważ kod występuje w numerach dokumentów i w rejestrach systemowych. Obecna definicja nie blokuje dopisania drugiego typu o tym samym kodzie, a skutkiem byłyby dokumenty o identycznych numerach należące do różnych typów — sytuacja bardzo trudna do rozplątania po fakcie.

Słownik pojęć

Słownik pojęć

Pojęcia związane z klasyfikacją dokumentów magazynowych.

WWMS
Warehouse Management System — system zarządzania magazynem, który prowadzi ewidencję towaru w podziale na lokalizacje, steruje przyjęciem, kompletacją i wydaniem oraz rejestruje każdą operację magazyniera.
MMicrosoft SQL Server
Serwer relacyjnej bazy danych, na którym pracują aplikacje SoftwareStudio. Odpowiada za spójność danych, uprawnienia dostępu, kopie zapasowe i wydajność zapytań.
IIndeks bazodanowy
Struktura przyspieszająca wyszukiwanie wierszy w tabeli. Dobrze dobrane indeksy skracają czas zapytań, ale spowalniają zapisy i zajmują miejsce na dysku.
IInwentaryzacja
Spis z natury weryfikujący zgodność stanu rzeczywistego z ewidencją. W systemie magazynowym może być ciągła, obejmująca każdego dnia wybraną część zasobów.
SStan magazynowy
Ilość towaru dostępna w danym momencie, w podziale na lokalizacje, partie i statusy. Rozbieżność między stanem ewidencyjnym a rzeczywistym jest podstawowym ryzykiem magazynu.
RRole i uprawnienia
Mechanizm przypisywania użytkownikom dostępu do funkcji i danych. Zamiast nadawać uprawnienia pojedynczo, przypisuje się je do roli odpowiadającej stanowisku.
ŚŚlad rewizyjny
Nieusuwalny zapis, kto i kiedy zmienił dane w systemie. Podstawa wiarygodności ewidencji podczas audytu i kontroli.
ZZamówienie
Dokument zapotrzebowania uruchamiający kompletację i wysyłkę. Jego status opisuje postęp realizacji.

Zobacz to w praktyce

Sprawdź, jak systemy SoftwareStudio oparte na MS SQL Server wspierają ten obszar Twojej firmy.