SQL Server w logistyce

Tabela _prx w bazie danych SQL Server

Słownik kodów PRX — trzy- lub pięcioznakowych symboli, które porządkują dokumenty i skorowidze w całym systemie.

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
  • Kod PRX występuje niemal w każdej tabeli systemu i mówi, do jakiego rodzaju należy dany rekord.
  • Ta tabela nadaje kodom znaczenie: opis, przypisanie do sekcji menu, kolejność i ikonę.
  • Kolumna ROLA ogranicza widoczność kodu; pusta wartość oznacza dostępność dla wszystkich ról.
  • Kolumna X_SKOROWIDZE mieści parametry formularza dopisywania — dzięki temu każdy rodzaj może mieć własny zestaw pól.

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

Kod PRX jest w StudioSystem tym, czym w kartotece papierowej byłby kolor teczki. Występuje w dokumentach, słownikach, statusach i rejestrach, a jego zadaniem jest odpowiedź na pytanie „jakiego rodzaju jest ten rekord”. Tabela [dbo].[_prx] przechowuje wykaz tych kodów razem z ich znaczeniem.

Definicja obejmuje trzy warstwy. Pierwsza to sam kod i jego opis. Druga — miejsce w interfejsie: sekcja skorowidzy, kolejność sortowania, strona menu, ikona, kolor tła i informacja, czy kod tworzy podmenu. Trzecia to dostęp: kolumna ROLA pozwala udostępnić dany rodzaj tylko wybranej grupie użytkowników, a pusta wartość oznacza widoczność powszechną.

Osobno stoi kolumna X_SKOROWIDZE o pojemności pięciu tysięcy znaków. Mieści parametry formularza dopisywania i edycji dla danego rodzaju. Dzięki temu skorowidz kontrahentów może mieć inne pola niż skorowidz magazynów, mimo że oba korzystają z tej samej mechaniki — a różnica jest opisana w danych, nie w kodzie aplikacji.

Rola kodu PRX w porządkowaniu systemu
Rodzaj RodzajKod przypisany rekordowi wskazuje, do jakiej grupy należy
Miejsce MiejsceSekcja, kolejność i strona menu wyznaczają położenie w skorowidzu
Dostęp DostępPrzypisanie roli ogranicza widoczność rodzaju
Formularz FormularzParametry skorowidza określają pola dopisywania dla tego rodzaju

Ten sam mechanizm obsługuje dokumenty, słowniki i statusy — rozróżnia je wyłącznie zawartość tabeli, nie kod aplikacji.

Budowa tabeli — wykaz kolumn

Czternaście kolumn dzieli się na identyfikację kodu, jego prezentację w menu oraz konfigurację skorowidza.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
Identyfikacja kodu
ID_PRXint
liczba całkowita
takUnikalny identyfikator wiersza tabeli
PRXvarchar(5)
tekst do 5 znaków
takUnikalny kod rodzaju dokumentu
OPISvarchar(250)
tekst do 250 znaków
nieOpis kodu
AKTYWNEbit
wartość logiczna 0/1
nieOznaczenie czy dany kod jest aktywny
SYSTEMOWEbit
wartość logiczna 0/1
takOznaczenie czy dany kod jest synchronizowany z bazy ROOT
Miejsce w interfejsie
SEKCJAvarchar(50)
tekst do 50 znaków
takOznaczenie sekcji do grupowania kodów w menu skorowidzy
KOLEJNOSCint
liczba całkowita
takOznacznie kolejności sortowania pozycji w menu skorowidzy danej sekcji
POZYCJAvarchar(1)
tekst do 1 znaków
takOkreślenie pozycji L - po lewej stronie menu skorowidzy, R - po prawej stronie
SUBMENUbit
wartość logiczna 0/1
takOznaczenie czy dany kod tworzy SubMenu
IKONAvarchar(100)
tekst do 100 znaków
niePlik ikony opisujący dany kod PRX wykorzystywany w budowaniu submenu
BACKCOLORvarchar(20)
tekst do 20 znaków
nieTło obiektu dla submenu budowanego dla listy PRX
TOOLBARvarchar(50)
tekst do 50 znaków
nieOpcjonalne podanie kodu dla menu typu TOOLBAR
Dostęp i skorowidz
ROLAvarchar(20)
tekst do 20 znaków
nieNazwa roli dla jakiej jest przypisany dany kod, puste oznacza że kod jest dostępny w całym systemie
X_SKOROWIDZEvarchar(5000)
tekst do 5000 znaków
nieBudowanie skorowidzy definiowanie parametrów edycji i dopisywania formularza q_insert_update - widoczne i jaki tytuł kontrolki

Kolumna POZYCJA przyjmuje jeden znak: L umieszcza kod po lewej stronie menu skorowidzy, R po prawej. To ustawienie działa razem z kolumną KOLEJNOSC, która porządkuje pozycje wewnątrz każdej ze stron.

Indeksy i wydajność zapytań

Odczyt odbywa się dwojako: punktowo przy sprawdzaniu znaczenia kodu oraz zakresowo przy budowaniu skorowidzy.

Indeksy zdefiniowane na tabeli
IndeksKolumnyRodzaj
PK__prxID_PRXklucz główny
PRXPRXunikalny

Indeks na kolumnie PRX jest unikalny — wymusza, że jeden kod ma dokładnie jedno znaczenie. To ograniczenie ma szerszy skutek, niż mogłoby się wydawać: kod PRX występuje w kilkunastu innych tabelach, więc jego niejednoznaczność rozlałaby się na cały system.

Jak nadawać kody, żeby po roku nadal miały sens

Kod PRX ma od trzech do pięciu znaków, co nie zostawia miejsca na rozwlekłość. Poniżej praktyka, która sprawdza się przy rozbudowie systemu.

  • Kod ma być skrótem, nie numerem. KTRH dla kontrahentów mówi więcej niż S01 i po roku nadal jest czytelny.
  • Nie zmieniaj kodu już używanego. Występuje w dokumentach, historii i dzienniku zdarzeń — zmiana zrywa te powiązania bez ostrzeżenia.
  • Grupuj przez sekcję, nie przez przedrostek kodu. Od porządkowania skorowidza jest kolumna SEKCJA.
  • Zostaw miejsce w numeracji kolejności. Wartości co dziesięć pozwalają wstawić nową pozycję bez przenumerowania wszystkich.
  • Wypełniaj opis pełnym zdaniem. Skrót w kolumnie PRX jest dla systemu, opis — dla człowieka, który zobaczy go za dwa lata.

Najkosztowniejszy błąd to drugi punkt. Ponieważ kod PRX jest zapisywany w rekordach, a nie tylko wskazywany identyfikatorem liczbowym, jego zmiana pozostawia w bazie dokumenty odwołujące się do kodu, którego już nie ma. Nie wywołuje to błędu — powoduje jedynie, że rekordy przestają być widoczne w swoim skorowidzu, co bywa zauważane po tygodniach.

Jak korzystać z tabeli w praktyce

Przy pracy ze słownikiem kodów PRX obowiązują następujące zasady:

  • Traktuj kod jako wartość niezmienną od chwili pierwszego użycia w dokumencie.
  • Wyłączaj nieużywane rodzaje znacznikiem AKTYWNE zamiast usuwać wiersz; rekordy historyczne nadal się do niego odwołują.
  • Sprawdzaj po wdrożeniu, czy istnieją rekordy z kodem nieobecnym w słowniku — nie powodują błędu, ale znikają ze skorowidzy.
  • Ustawiaj ROLA świadomie; pusta wartość udostępnia rodzaj wszystkim, także tym, którzy nie powinni go widzieć.
  • Numeruj kolejność co dziesięć, żeby wstawienie nowej pozycji nie wymagało przenumerowania pozostałych.
  • Testuj zawartość kolumny X_SKOROWIDZE na kopii bazy — błąd w parametrach formularza blokuje dopisywanie rekordów danego rodzaju.

Kontrola spójności: rodzaje zdefiniowane w słowniku zestawione z kodami faktycznie występującymi w dzienniku zdarzeń:

SELECT  d.PRX,
        COUNT(*)               AS ZDARZEN,
        MAX(p.OPIS)            AS OPIS_W_SLOWNIKU,
        CASE WHEN MAX(p.PRX) IS NULL THEN 'BRAK W SLOWNIKU' ELSE '' END AS UWAGA
FROM    dbo._dziennik AS d
        LEFT JOIN dbo._prx AS p ON p.PRX = d.PRX
WHERE   d.KIEDY >= DATEADD(MONTH, -6, GETDATE())
GROUP BY d.PRX
ORDER BY ZDARZEN DESC;

Wiersze z adnotacją o braku w słowniku wskazują kody używane przez system, lecz nieopisane — zwykle są to pozostałości po kodzie zmienionym albo usuniętym ze słownika.

Kody PRX są elementem, który wygląda na drobiazg techniczny, a w praktyce wyznacza strukturę całego systemu. Kilkanaście minut poświęconych na przemyślenie ich nazewnictwa przy wdrożeniu oszczędza późniejszych prób naprawienia czegoś, co technicznie działa, ale czego nikt już nie rozumie.

Powiązane tabele i dokumentacja

Kody PRX pojawiają się w większości struktur systemu — poniżej te, które odwołują się do nich najczęściej:

FAQ

Najczęściej zadawane pytania o tabelę _prx

01

Czym właściwie jest kod PRX?

To trzy- lub pięcioznakowy symbol wskazujący rodzaj rekordu. Występuje w dokumentach, słownikach, statusach i rejestrach, pozwalając odróżnić na przykład przyjęcie od wydania albo skorowidz kontrahentów od skorowidza magazynów. Tabela _prx nadaje tym symbolom znaczenie i określa ich miejsce w interfejsie.

02

Czy można zmienić kod, który jest już używany?

Technicznie tak, ale skutki są kosztowne. Kod jest zapisywany bezpośrednio w rekordach, a nie wskazywany identyfikatorem liczbowym, więc po zmianie dokumenty odwołują się do symbolu, którego nie ma w słowniku. Nie powoduje to błędu — rekordy po prostu przestają być widoczne w swoim skorowidzu, co bywa zauważane po tygodniach.

03

Do czego służy kolumna X_SKOROWIDZE?

Przechowuje parametry formularza dopisywania i edycji dla danego rodzaju. Dzięki temu każdy skorowidz może mieć własny zestaw pól, mimo że wszystkie korzystają z tej samej mechaniki. Pojemność pięciu tysięcy znaków pozwala opisać nawet rozbudowany formularz.

04

Co oznacza pusta wartość w kolumnie ROLA?

Że kod jest dostępny dla wszystkich ról. To ustawienie domyślne, które w większości przypadków jest poprawne, ale przy rodzajach dokumentów o ograniczonym zastosowaniu — na przykład korektach magazynowych — warto je świadomie zawęzić do właściwej roli.

Słownik pojęć

Słownik pojęć

Pojęcia związane z klasyfikacją rekordów w bazie StudioSystem.

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.
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.
WWdrożenie
Proces uruchomienia systemu w firmie: analiza procesów, konfiguracja, migracja danych, szkolenia i uruchomienie produkcyjne.
KKartoteka kontrahentów
Wspólny rejestr dostawców i odbiorców, do którego odwołują się dokumenty we wszystkich modułach. Warunek spójności danych między systemami.
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.