- Do jednego komunikatu można przypisać wiele odnośników — wiąże je wspólny numer
REFNO. - Kolumna
KOLEJNOSCdecyduje o układzie przycisków, więc najczęstsze rozwiązanie da się postawić na pierwszym miejscu. - Wygląd przycisku opisują kolumny
BACKCOLORiWIDTH, co pozwala wyróżnić działanie zalecane. - Kolumna
OBIEKTHTMLumoż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.
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.
| Kolumna | Typ | Wymagana | Znaczenie |
|---|---|---|---|
| Powiązanie i kolejność | |||
ID_KOMUNIKATY_LINKI | int liczba całkowita | tak | Unikalny identyfikator wiersza w ramach tabeli |
REFNO | varchar(20) tekst do 20 znaków | tak | Identyfikator komunikatu z tabelli _komuniakty, dla którego definiowany jest link |
REFNO_ID | bigint liczba całkowita 64-bitowa | nie | Liczbowy odpowiednik numeru referencyjnego komunikatu, używany przy powiązaniach wewnętrznych |
KOLEJNOSC | int liczba całkowita | tak | Kolejność występowania linka (w ramach REFNO komunikatu) |
SYSTEMOWE | bit wartość logiczna 0/1 | tak | Oznaczenie czy wiersza tabeli wynika z konfiguracji systemowej |
| Treść odnośnika | |||
TYTUL | varchar(100) tekst do 100 znaków | tak | Tytuł linka |
LINK | varchar(200) tekst do 200 znaków | tak | link do wywoływanej transakcji |
TARGET | varchar(20) tekst do 20 znaków | nie | Jezeli puste to link prowadzi do tego samego okna, jeżeli _blank to strona wyświetli się jako nowe okno przeglądarki |
OBRAZEK | varchar(200) tekst do 200 znaków | nie | obrazek wyświetlany razem z linkiem |
| Prezentacja | |||
BACKCOLOR | varchar(20) tekst do 20 znaków | tak | Oznacznie koloru tła, wartość domyślna #4179A7 |
WIDTH | int liczba całkowita | tak | Określa szerokość przycisku w pikselach domyślna wartość 150 |
OBIEKTHTML | varchar(max) tekst bez limitu długości | nie | Kod HTML do umieszczenia na stronie np. <a><span> |
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.
| Indeks | Kolumny | Rodzaj |
|---|---|---|
PK__komunikaty_linki | ID_KOMUNIKATY_LINKI | klucz główny |
REFNO_KOLEJNOSC | REFNO, KOLEJNOSC | zwykł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.
| Liczba przycisków | Kiedy stosować | Ryzyko |
|---|---|---|
| Brak | Komunikat wyłącznie informacyjny, bez możliwości działania | Użytkownik nie wie, co dalej — zgłasza sprawę do obsługi |
| Jeden | Istnieje jedno oczywiste rozwiązanie | Brak — układ najbardziej czytelny |
| Dwa lub trzy | Rozwiązanie zależy od uprawnień albo od sytuacji | Wymaga jednoznacznych tytułów, inaczej użytkownik zgaduje |
| Cztery i więcej | Rzadko uzasadnione | Wybó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
LINKpo każdej zmianie struktury menu; nieaktualna transakcja daje pustą stronę zamiast rozwiązania. - Ustawiaj
TARGETna_blank, gdy użytkownik ma wrócić do przerwanej pracy po wykonaniu czynności pomocniczej. - Używaj kolumny
OBIEKTHTMLwyją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: