SQL Server w logistyce

Tabela _komunikaty_linki w bazie danych SQL Server

Odnośniki dołączane do komunikatów systemowych — pozwalają przejść wprost do funkcji rozwiązującej zgłoszony problem.

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
  • Do jednego komunikatu można przypisać wiele odnośników — wiąże je wspólny numer REFNO.
  • Kolumna KOLEJNOSC decyduje o układzie przycisków, więc najczęstsze rozwiązanie da się postawić na pierwszym miejscu.
  • Wygląd przycisku opisują kolumny BACKCOLOR i WIDTH, co pozwala wyróżnić działanie zalecane.
  • Kolumna OBIEKTHTML umożliwia wstawienie własnego znacznika zamiast standardowego przycisku.

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

Komunikat wyjaśniający problem jest dobry. Komunikat, który od razu pozwala go rozwiązać, jest lepszy. Tabela [dbo].[_komunikaty_linki] odpowiada za tę drugą część: definiuje przyciski wyświetlane razem z komunikatem i wskazuje transakcje, do których prowadzą.

Powiązanie z treścią komunikatu odbywa się przez numer REFNO — ten sam, którym transakcja odwołuje się do tabeli _komunikaty. Jednemu komunikatowi może odpowiadać kilka wierszy, a kolejność ich wyświetlania ustala osobna kolumna. To prosty, ale istotny szczegół: przycisk stojący pierwszy jest wybierany najczęściej, więc powinien odpowiadać najbardziej prawdopodobnemu rozwiązaniu.

Warstwa wizualna jest opisana w tej samej tabeli. Kolor tła i szerokość przycisku pozwalają wyróżnić działanie zalecane i odróżnić je od operacji o poważniejszych konsekwencjach. Kolumna TARGET decyduje, czy transakcja otworzy się w tym samym oknie, czy w nowym — co ma znaczenie, gdy użytkownik ma wrócić do przerwanej pracy.

Jak odnośnik zamienia komunikat w rozwiązanie
Komunikat KomunikatSystem wyjaśnia, dlaczego operacja została przerwana
Warianty WariantyWiersze o wspólnym REFNO tworzą listę możliwych działań
Układ UkładKolumna KOLEJNOSC ustawia najczęstsze rozwiązanie na początku
Przejście PrzejścieKliknięcie otwiera transakcję wskazaną w kolumnie LINK

Kolumna TARGET decyduje, czy użytkownik opuści bieżący ekran, czy transakcja otworzy się obok — przy przerwanej pracy istotne jest to drugie.

Budowa tabeli — wykaz kolumn

Kolumny dzielą się na trzy grupy: powiązanie z komunikatem, treść odnośnika oraz sposób jego prezentacji.

Wykaz kolumn tabeli
KolumnaTypWymaganaZnaczenie
Powiązanie i kolejność
ID_KOMUNIKATY_LINKIint
liczba całkowita
takUnikalny identyfikator wiersza w ramach tabeli
REFNOvarchar(20)
tekst do 20 znaków
takIdentyfikator komunikatu z tabelli _komuniakty, dla którego definiowany jest link
REFNO_IDbigint
liczba całkowita 64-bitowa
nieLiczbowy odpowiednik numeru referencyjnego komunikatu, używany przy powiązaniach wewnętrznych
KOLEJNOSCint
liczba całkowita
takKolejność występowania linka (w ramach REFNO komunikatu)
SYSTEMOWEbit
wartość logiczna 0/1
takOznaczenie czy wiersza tabeli wynika z konfiguracji systemowej
Treść odnośnika
TYTULvarchar(100)
tekst do 100 znaków
takTytuł linka
LINKvarchar(200)
tekst do 200 znaków
taklink do wywoływanej transakcji
TARGETvarchar(20)
tekst do 20 znaków
nieJezeli puste to link prowadzi do tego samego okna, jeżeli _blank to strona wyświetli się jako nowe okno przeglądarki
OBRAZEKvarchar(200)
tekst do 200 znaków
nieobrazek wyświetlany razem z linkiem
Prezentacja
BACKCOLORvarchar(20)
tekst do 20 znaków
takOznacznie koloru tła, wartość domyślna #4179A7
WIDTHint
liczba całkowita
takOkreśla szerokość przycisku w pikselach domyślna wartość 150
OBIEKTHTMLvarchar(max)
tekst bez limitu długości
nieKod HTML do umieszczenia na stronie np. <a><span&gt

Kolumna BACKCOLOR ma wartość domyślną #4179A7, a WIDTH — 150 pikseli. Zmiana obu naraz pozwala zbudować układ, w którym działanie zalecane wyróżnia się rozmiarem i kolorem.

Indeksy i wydajność zapytań

Odczyt zawsze dotyczy kompletu odnośników jednego komunikatu w ustalonej kolejności — i temu odpowiada zestaw indeksów.

Indeksy zdefiniowane na tabeli
IndeksKolumnyRodzaj
PK__komunikaty_linkiID_KOMUNIKATY_LINKIklucz główny
REFNO_KOLEJNOSCREFNO, KOLEJNOSCzwykły

Indeks złożony REFNO_KOLEJNOSC obsługuje odczyt w jednym kroku: zawęża wiersze do jednego komunikatu i od razu zwraca je posortowane. Bez drugiej kolumny serwer musiałby dodatkowo sortować wynik przy każdym wyświetleniu komunikatu.

Ile odnośników i jakich — praktyka projektowa

Możliwość zdefiniowania dowolnej liczby przycisków bywa nadużywana. Poniższe zestawienie pokazuje, jak liczba wariantów przekłada się na zachowanie użytkownika.

Dobór liczby odnośników do sytuacji
Liczba przyciskówKiedy stosowaćRyzyko
BrakKomunikat wyłącznie informacyjny, bez możliwości działaniaUżytkownik nie wie, co dalej — zgłasza sprawę do obsługi
JedenIstnieje jedno oczywiste rozwiązanieBrak — układ najbardziej czytelny
Dwa lub trzyRozwiązanie zależy od uprawnień albo od sytuacjiWymaga jednoznacznych tytułów, inaczej użytkownik zgaduje
Cztery i więcejRzadko uzasadnioneWybór staje się kolejnym problemem zamiast rozwiązaniem poprzedniego

Przy więcej niż trzech wariantach warto rozważyć, czy komunikat nie łączy kilku różnych sytuacji, które lepiej rozdzielić.

Tytuł przycisku powinien opisywać skutek, a nie polecenie systemowe. „Wystaw korektę” mówi użytkownikowi, co się stanie; „Przejdź do KOR” zakłada znajomość skrótów, której magazynier mieć nie musi. Ta sama zasada dotyczy kolejności — działanie odwracalne stawia się przed nieodwracalnym.

Jak korzystać z tabeli w praktyce

Przy definiowaniu odnośników do komunikatów warto pamiętać o kilku sprawach:

  • Ustaw KOLEJNOSC świadomie — pierwszy przycisk jest wybierany najczęściej, także wtedy gdy nie jest najlepszym rozwiązaniem.
  • Sprawdź adres w kolumnie LINK po każdej zmianie struktury menu; nieaktualna transakcja daje pustą stronę zamiast rozwiązania.
  • Ustawiaj TARGET na _blank, gdy użytkownik ma wrócić do przerwanej pracy po wykonaniu czynności pomocniczej.
  • Używaj kolumny OBIEKTHTML wyjątkowo — własny znacznik omija standardowe style i przy zmianie wyglądu systemu wymaga osobnej poprawki.
  • Nie modyfikuj wierszy z SYSTEMOWE = 1; przy synchronizacji z bazą wzorcową zostaną nadpisane.
  • Sprawdź układ na terminalu mobilnym — szerokość 150 pikseli na wąskim ekranie potrafi rozbić okno komunikatu.

Wykaz komunikatów wraz z przypisanymi odnośnikami w kolejności wyświetlania:

SELECT  k.REFNO,
        k.TYTUL           AS KOMUNIKAT,
        l.KOLEJNOSC,
        l.TYTUL           AS PRZYCISK,
        l.LINK,
        ISNULL(l.TARGET, '(to samo okno)') AS OTWARCIE
FROM    dbo._komunikaty      AS k
        JOIN dbo._komunikaty_linki AS l
          ON l.REFNO = k.REFNO
ORDER BY k.REFNO, l.KOLEJNOSC;

Złączenie wewnętrzne pokazuje wyłącznie komunikaty mające odnośniki. Zamiana na LEFT JOIN ujawni te, przy których użytkownik zostaje bez podpowiedzi.

Odnośniki przy komunikatach to element, którego koszt wdrożenia jest niewielki, a wpływ na liczbę zgłoszeń — zauważalny. Warto zacząć od kilku komunikatów występujących najczęściej w rejestrze błędów; to one generują większość telefonów do obsługi.

Powiązane tabele i dokumentacja

Odnośniki są częścią warstwy komunikacji z użytkownikiem, konfigurowanej w bazie danych:

FAQ

Najczęściej zadawane pytania o tabelę _komunikaty_linki

01

Ile odnośników można przypisać do jednego komunikatu?

Technicznie dowolną liczbę — wiąże je wspólny numer REFNO. W praktyce sprawdza się jeden albo dwa. Przy czterech i więcej wybór właściwego przycisku staje się dla użytkownika kolejnym problemem, a to zwykle znak, że jeden komunikat obsługuje kilka różnych sytuacji i należałoby je rozdzielić.

02

Do czego służy kolumna TARGET?

Decyduje, gdzie otworzy się wskazana transakcja. Wartość pusta oznacza to samo okno, _blank — nowe. To drugie stosuje się wtedy, gdy użytkownik ma wykonać czynność pomocniczą i wrócić do przerwanej pracy; otwarcie w tym samym oknie kazałoby mu zaczynać od nowa.

03

Kiedy używać kolumny OBIEKTHTML?

Tylko wtedy, gdy standardowy przycisk nie wystarcza — na przykład przy odnośniku wymagającym nietypowego układu. Trzeba się liczyć z tym, że własny znacznik omija style systemowe, więc przy zmianie wyglądu aplikacji wymaga osobnej poprawki i nie zmieni się razem z resztą interfejsu.

04

Dlaczego indeks obejmuje REFNO i KOLEJNOSC razem?

Bo odczyt zawsze dotyczy kompletu odnośników jednego komunikatu, wyświetlanych w ustalonej kolejności. Indeks złożony na obu kolumnach pozwala serwerowi zwrócić wiersze od razu posortowane. Gdyby obejmował samo REFNO, przy każdym wyświetleniu komunikatu dochodziłby krok sortowania.

Słownik pojęć

Słownik pojęć

Pojęcia związane z konfiguracją interakcji użytkownika po stronie bazy.

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.
PPraca w przeglądarce
Dostęp do systemu bez instalowania programu na komputerze użytkownika. Upraszcza aktualizacje i pozwala pracować zdalnie.
TTerminal Android
Przenośne urządzenie ze skanerem kodów, na którym magazynier wykonuje operacje bezpośrednio przy regale. Zastępuje papierowe listy i wprowadzanie danych po fakcie.
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.
WWdrożenie
Proces uruchomienia systemu w firmie: analiza procesów, konfiguracja, migracja danych, szkolenia i uruchomienie produkcyjne.

Zobacz to w praktyce

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