| Termin | Definicja |
|---|---|
| problemy z filtrowaniem kontaktów | Problemy z filtrowaniem kontaktów wynikają z niespójnych danych lub błędnie skonstruowanych warunków segmentacji. Źródła problemów z filtrowaniem kontaktówProblemy z filtrowaniem kontaktów najczęściej wynikają z różnicy między wartością widoczną na ekranie a wartością zapisaną w bazie danych lub pliku aplikacji. Dwa wpisy mogą wyglądać identycznie, ale zawierać dodatkowe spacje, różne znaki końca wiersza, odmienną wielkość liter albo znaki diakrytyczne zapisane w innym kodowaniu. Przykładowo numer telefonu zapisany jako „501 200 300” może nie zostać znaleziony po wyszukaniu ciągu „501200300”, jeśli program nie wykonuje normalizacji znaków. Podobnie adres e-mail z końcową spacją może nie pasować do warunku równości, mimo że użytkownik nie widzi tej spacji w interfejsie. Znaczenie ma także sposób interpretacji pustych pól. Pusta komórka, wartość NULL, tekst „brak danych” i ciąg złożony ze spacji nie zawsze są traktowane jako ten sam stan. W relacyjnych bazach danych NULL oznacza brak znanej wartości, a nie zwykły pusty tekst. Warunek „miasto różne od Warszawy” może więc nie zwrócić rekordów, w których miasto ma wartość NULL, ponieważ porównanie z nieznaną wartością nie daje wyniku prawdziwego. Nieprawidłowy rezultat może być również skutkiem filtrowania tylko aktualnie załadowanej części listy, gdy aplikacja pobiera kontakty stronicami z serwera. Warunki logiczne i segmentacja listyFiltr kontaktów jest zwykle zestawem warunków połączonych operatorami logicznymi. Operator AND wymaga spełnienia wszystkich warunków, natomiast OR akceptuje spełnienie co najmniej jednego. Błąd w grupowaniu warunków może całkowicie zmienić wynik. Przykładowo reguła „miasto = Warszawa AND status = aktywny OR status = oczekujący” może zostać zinterpretowana jako „(miasto = Warszawa AND status = aktywny) OR status = oczekujący”. Wtedy na liście pojawią się także kontakty oczekujące z innych miast. Jeżeli zamierzeniem było ograniczenie obu statusów do Warszawy, potrzebne jest jawne grupowanie: „miasto = Warszawa AND (status = aktywny OR status = oczekujący)”. Niejasności powodują również warunki tekstowe: „zawiera”, „zaczyna się od”, „jest równe” i „nie zawiera” mają różne znaczenie. Wyszukanie frazy „Jan” metodą „zawiera” może zwrócić także „Janusz”, „Jankowski” i adresy e-mail zawierające ten ciąg znaków. Filtr oparty na początku tekstu może zależeć od kolejności znaków i ustawień porównywania, czyli reguł określających między innymi rozróżnianie wielkich i małych liter. Przy polskich znakach dodatkowym czynnikiem jest sortowanie i porównywanie zgodne z określoną lokalizacją. Aplikacja może traktować „Łódź” i „Lodz” jako różne wartości albo uznawać je za równoważne, zależnie od zastosowanej kolacji. Sprawdzanie danych przed zastosowaniem filtraDiagnozę warto rozpocząć od porównania kilku rekordów, które powinny zostać znalezione, z rekordami pominiętymi przez filtr. Należy sprawdzić pełną zawartość pól, a nie tylko ich prezentację w tabeli. Pomocne jest skopiowanie wartości do prostego edytora tekstu oraz sprawdzenie, czy na początku lub końcu nie występują spacje, tabulatory albo niewidoczne znaki. W przypadku numerów telefonów trzeba ustalić, czy aplikacja przechowuje prefiks kraju, znaki „+”, spacje i myślniki. Dla adresów e-mail należy zweryfikować, czy filtr działa na całym adresie, czy tylko na nazwie użytkownika albo domenie. Następnie trzeba przeanalizować definicję segmentu, kolejność reguł i sposób obsługi wartości pustych. Jeżeli kontakt może należeć do kilku grup, należy ustalić, czy filtr sprawdza jedną wartość pola, czy wszystkie przypisane etykiety. Warto również wyłączyć warunki pojedynczo i obserwować, po którym z nich lista zaczyna być nieprawidłowa. Jeżeli liczba wyników zmienia się dopiero po odświeżeniu strony, przyczyną może być pamięć podręczna przeglądarki, opóźniona synchronizacja albo nieaktualny wynik zapytania. Gdy filtr działa inaczej na dwóch urządzeniach, trzeba porównać konto, zakres pobieranych danych, wersję aplikacji i ustawienia sortowania. Naprawa niespójnego filtrowania kontaktówUsunięcie problemu polega na ujednoliceniu danych oraz jednoznacznym zapisaniu reguł segmentacji. Dla pól tekstowych stosuje się zwykle usuwanie zbędnych spacji, jednolite kodowanie znaków i ustaloną zasadę rozróżniania wielkości liter. Numery telefonów można porównywać po oczyszczeniu z separatorów, o ile aplikacja przewiduje taki sposób działania. Wartości kategorii i statusów powinny pochodzić z kontrolowanego zestawu, zamiast być wpisywane ręcznie w wielu wariantach, takich jak „aktywny”, „Aktywny” i „active”. Po zmianie danych należy ponownie wykonać filtr oraz sprawdzić zarówno rekordy oczekiwane, jak i przypadki graniczne. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, dlatego przy problemach z aplikacją do kontaktów można rozpocząć od sprawdzenia komputera, systemu oraz lokalnego środowiska programu. Diagnostyka powinna obejmować między innymi działanie aplikacji po ponownym uruchomieniu, dostępne aktualizacje, błędy synchronizacji i zachowanie filtrowania w innej przeglądarce lub na innym koncie użytkownika. Jeżeli dane kontaktów są poprawnie zapisane, a filtr nadal zwraca błędną listę, potrzebne będzie prześledzenie zapytania lub reguł segmentacji po stronie konkretnego programu. Samo usunięcie i ponowne dodanie kontaktu może ukryć objaw, ale nie usuwa przyczyny, jeśli problem dotyczy sposobu interpretowania pól albo warunków logicznych. |