W skrócie

W opisywanym wdrożeniu adresat powiadomienia według regionu wynika z kodu pocztowego klienta: program porównuje ten kod ze słownikiem zakresów i wskazuje koordynatora regionu. Administrator słownika utrzymuje w nim zakresy kodów razem z adresem koordynatora. Gdy kod pasuje do kilku zakresów naraz, wygrywa zakres o najmniejszej rozpiętości. Kod klienta i adresy ze słownika są przed użyciem sprowadzane do jednego formatu.

Z kilku pasujących zakresów wygrywa ten, który obejmuje najmniej kodów, a remis rozstrzyga początek zakresu. Kod klienta jest przed porównaniem sprowadzany do formatu z myślnikiem po drugim znaku. W opisywanym wdrożeniu podobna reguła stoi osobno w kolumnie listy spraw i w dwóch rodzajach wiadomości, a jej zapisy nie są identyczne.

Słownik zakresów kodów pocztowych wskazuje adres koordynatora regionu

Słownik zakresów jest w opisywanym wdrożeniu wpisem w ogólnym słowniku konfiguracji, który ma własny typ. Jeden wiersz opisuje zakres kodów od początku do końca oraz koordynatora regionu, czyli jego adres i nazwę osoby. Do wiersza należą jeszcze opis obszaru i oddział.

Administrator edytuje wiersze na liście „Lista adresów-mail dla kodów pocztowych”. Lista pokazuje dziewięć kolumn, wśród nich pole wyboru „Aktywne”. Początek i koniec zakresu wpisuje się w kolumnach „Kody od:” oraz „Kody do:”. Dwie dalsze kolumny lista ukrywa, a jedna z nich, „Automat”, nie bierze udziału w wyborze koordynatora.

Schemat wyboru koordynatora regionu: kod klienta trafia do słownika zakresów, wygrywa najwęższy pasujący zakres.
Schemat prowadzi kod klienta z kartoteki przez normalizację do słownika zakresów, a dalej do rombu z pytaniem, ile zakresów pasuje. Przy braku pasującego zakresu wynikiem jest brak koordynatora, a przy co najmniej jednym wygrywa zakres o najmniejszej rozpiętości. Z adresu koordynatora korzystają miejsca opisane w czwartej sekcji. Kliknij obraz, aby go powiększyć.
Makieta listy zakresów kodów pocztowych z adresem koordynatora; jeden zakres leży wewnątrz drugiego.
Makieta poglądowa, dane przykładowe. Na makiecie widać cztery wiersze, z których dwa nakładają się: zakres od 12-300 do 12-399 leży w całości wewnątrz zakresu od 12-000 do 12-999. Makieta pokazuje wybrane kolumny listy. Kliknij obraz, aby go powiększyć.

Zakresy nakładają się, więc reguła musi wskazać jeden wynik

Według konfiguracji opisywanego wdrożenia część zakresów nakłada się, a zakres mniejszego obszaru leży w całości wewnątrz zakresu większego. Dla kodu z takiego wnętrza pasują więc dwa wiersze naraz, a adres może wskazać tylko jeden z nich.

Z kilku pasujących zakresów wygrywa ten, który obejmuje najmniej kodów.

Zapytanie bierze z pasujących zakresów pierwszy wiersz po sortowaniu rosnąco według rozpiętości. Rozpiętość to koniec zakresu minus jego początek, liczone po usunięciu myślnika z obu kodów. Gdy dwa zakresy mają taką samą rozpiętość, remis rozstrzyga początek zakresu. W wyborze biorą udział tylko wiersze aktywne z niepustym adresem, a porównanie kodu z zakresem jest porównaniem tekstów w formacie z myślnikiem po drugim znaku.

W przykładzie z następnej sekcji kod 12-345 pasuje do zakresu od 12-000 do 12-999 i do zakresu od 12-300 do 12-399. Wygrywa drugi, bo obejmuje mniej kodów. Kod 12-512 pasuje tylko do szerszego zakresu, więc dostaje jego koordynatora. Kod 45-100 nie pasuje do żadnego zakresu, więc koordynatora nie ma.

Osobny tekst techniczny pokazuje tę samą regułę w kodzie T-SQL. Wybór najbliższego zakresu cennika to już inny wybór zakresu, opisany na innej stronie.

Kod klienta i adresy ze słownika są normalizowane przed użyciem

Kod klienta pochodzi z kartoteki klienta zapisanego w sprawie. Program usuwa z niego spacje i myślnik. Tylko kod, który po tym ma pięć znaków, jest składany do postaci z myślnikiem po drugim znaku, a to, czy znaki są cyframi, nie jest sprawdzane. Kod innej długości daje brak koordynatora, bez komunikatu.

Tabela zestawia pięć przykładowych kodów i wynik wyboru (dane przykładowe).

Kod klientaZakresy, które pasująWybrany zakresPowód
12-34512-000 do 12-999; 12-300 do 12-39912-300 do 12-399najmniejsza rozpiętość
12-51212-000 do 12-99912-000 do 12-999jedyny pasujący
45-100brakbrak koordynatorażaden zakres nie obejmuje kodu
„12 345” ze spacjąpo normalizacji 12-345, jak w pierwszym wierszu12-300 do 12-399spacja i myślnik są usuwane, kod wraca do formatu z myślnikiem
„12-34”kod z czterema cyframibrak koordynatora w wiadomościachkod nie jest sprowadzany do formatu

Adresy w polu adresu mają różne separatory. Według konfiguracji opisywanego wdrożenia stosuje się tam średnik albo dwukropek. Zapytanie zamienia dwukropek i przecinek na średnik oraz usuwa spację przed średnikiem. Kopia wiadomości łączy potem adresy z różnych źródeł bez powtórzeń, bez względu na wielkość liter.

Podobna reguła stoi osobno w kolumnie listy spraw i w dwóch rodzajach wiadomości

W opisywanym wdrożeniu podobna reguła jest zapisana osobno w co najmniej trzech miejscach. Jedno z nich to zapytanie kopii wiadomości ręcznych, drugie to zapytanie powiadomienia automatycznego, a oba pracują na formacie z myślnikiem po drugim znaku. Trzecie miejsce to kolumna „Koordynator” zestawienia spraw. Zmiana w jednym miejscu nie zmienia pozostałych.

  • Kolumna „Koordynator” na liście spraw. Pokazuje nazwę koordynatora, a nie adres. Porównuje same cyfry bez kontroli długości kodu i bierze kod tylko z aktywnej kartoteki klienta.
  • Zapytania wiadomości. Kopia wiadomości ręcznych i powiadomienie automatyczne porównują kod w formacie z myślnikiem po drugim znaku.

Skutek różnicy jest widoczny na kodzie czterocyfrowym: może on dać koordynatora w kolumnie listy i nie dać go w wiadomości.

Przykład (dane wymyślone): Sprawa dotyczy klienta, którego kod w kartotece zapisano jako „12 345”. Dalszy ciąg przykładu pokazuje lista numerowana.

  1. Program usuwa spację i wstawia myślnik, więc kod ma postać 12-345.
  2. W słowniku pasują dwa zakresy: od 12-000 do 12-999 oraz od 12-300 do 12-399.
  3. Wygrywa drugi, bo obejmuje mniej kodów, więc adres koordynatora pochodzi z jego wiersza.
  4. Ten adres trafia do kopii wiadomości ręcznych i do powiadomienia automatycznego w statusie kończącym przygotowanie oferty.
  5. Lista spraw pokazuje w osobnej kolumnie nazwę tego koordynatora.

Gdyby kod klienta miał cztery cyfry, wiadomości nie dostałyby koordynatora, a kolumna na liście spraw oceniałaby taki kod inaczej. Koordynator jest adresatem jednego powiadomienia automatycznego, a w wiadomościach ręcznych trafia do kopii.

Powiadomienie automatyczne wymaga aktywnego szablonu i niepustego adresata

Przy zmianie statusu na status kończący przygotowanie oferty koordynator wskazany opisaną regułą jest dopisywany na początek listy stałych adresatów z pola szablonu. Dopisanie następuje tylko wtedy, gdy koordynatora nie ma jeszcze na tej liście, a porównanie nie zależy od wielkości liter. Wiadomość nie ma kopii.

  • Szablon aktywny. Powiadomienie automatyczne powstaje tylko wtedy, gdy szablon jest aktywny, a odznaczenie pola „Aktywne” wyłącza je.
  • Adresat niepusty. Wiadomość bez żadnego adresata nie jest kolejkowana.

Program zapisuje powiadomienie w kolejce wiadomości, więc przed jego powstaniem sprawdzane są dwie rzeczy: aktywny szablon i co najmniej jeden adresat.

Status kończący przygotowanie oferty dotyczy sprawy, a oferta wśród załączników sprawy ma osobny opis. Założenie samej sprawy przy zamknięciu zlecenia przyjęcia opisuje tekst o sprawie zakładanej przy zamknięciu zlecenia.

Kod do porównania pochodzi z kartoteki klienta

Reguła czyta kod klienta zapisany w kartotece klienta, który występuje w sprawie. Kolumna „Koordynator” na liście spraw bierze kod tylko z aktywnej kartoteki klienta.

  • Co czyta reguła. Kod klienta z kartoteki klienta zapisanego w sprawie.
  • Co wymaga decyzji. Wybór źródła kodu, o którym mowa w czwartym pytaniu do analizy.

Czy reguła powinna korzystać z kodu klienta, czy z kodu miejsca, którego sprawa dotyczy, to pytanie do analizy po stronie Twojej organizacji. Opisujemy wyłącznie wariant z kodem klienta zapisanym w kartotece. Adresat ustalany inaczej niż z kartoteki klienta to inne źródło adresata, opisane na osobnej stronie.

Pytania do analizy

Przed wdrożeniem podobnego rozwiązania zadajemy cztery pytania. To pytania do czytelnika, a nie fakty o opisywanym wdrożeniu.

  1. Czy w Twojej organizacji adresat powiadomienia zależy od regionu klienta i kto utrzymuje listę adresów?
  2. Co ma się stać, gdy żaden zakres nie obejmuje kodu klienta: brak powiadomienia czy adres zastępczy?
  3. Czy zakresy w słowniku mogą się nakładać i kto sprawdza, który z nich ma wygrać?
  4. Z którego kodu ma korzystać reguła: z kodu klienta rozliczanego czy z kodu miejsca, którego sprawa dotyczy?

Pytania i odpowiedzi o adresacie powiadomienia i zakresach kodów

Skąd program bierze adresata powiadomienia o sprawie?

Adresata wskazuje słownik zakresów kodów pocztowych, a kod klienta pochodzi z kartoteki klienta zapisanego w sprawie. Z pasujących zakresów zapytanie bierze wiersz o najmniejszej rozpiętości.

Który zakres wygrywa, gdy kod pasuje do kilku?

Wygrywa zakres o najmniejszej rozpiętości, czyli o najmniejszej różnicy końca i początku liczonej po usunięciu myślnika. Remis rozstrzyga początek zakresu. Według konfiguracji opisywanego wdrożenia część zakresów leży w całości wewnątrz innych.

Jak program traktuje kod zapisany ze spacją albo bez myślnika?

Program usuwa spacje i myślnik, a kod z pięcioma znakami składa do formatu z myślnikiem po drugim znaku. Kod innej długości daje brak koordynatora, bez komunikatu.

Gdzie jeszcze działa podobna reguła?

Podobna reguła jest zapisana osobno w trzech miejscach: w zapytaniu kopii wiadomości ręcznych, w kolumnie „Koordynator” zestawienia spraw oraz w zapytaniu powiadomienia automatycznego. W kolumnie listy reguła ma inną postać niż w zapytaniach wiadomości. Powiadomienie automatyczne dopisuje koordynatora na początek listy stałych adresatów, o ile jeszcze go tam nie ma.

Co dzieje się, gdy dla kodu nie ma zakresu albo wiadomość nie ma adresata?

Kod bez pasującego zakresu albo kod innej długości daje brak koordynatora. Wiadomość automatyczna bez żadnego adresata nie jest kolejkowana, a przy nieaktywnym szablonie powiadomienie nie powstaje.

Słownik pojęć o adresacie powiadomienia według kodu pocztowego

Terminy używane przy opisie reguły, która z kodu pocztowego klienta wskazuje koordynatora regionu.

Zakres kodów pocztowych
Wiersz słownika z początkiem i końcem zakresu oraz adresem koordynatora regionu.
Najwęższy zakres
Pasujący zakres o najmniejszej rozpiętości, czyli różnicy końca i początku liczonej po usunięciu myślnika; remis rozstrzyga początek zakresu.
Koordynator regionu
Osoba wskazana w wierszu słownika, której adres trafia do kopii wiadomości ręcznych i do jednego powiadomienia automatycznego.
Normalizacja kodu
Usunięcie spacji i myślnika z kodu klienta oraz złożenie go z powrotem do formatu z myślnikiem po drugim znaku, gdy kod ma pięć znaków.
Kopia wiadomości
Lista adresów w kopii wiadomości ręcznej, łącząca adresy z różnych źródeł bez powtórzeń, bez względu na wielkość liter.
Szablon aktywny
Szablon z zaznaczonym polem „Aktywne”, bez którego powiadomienie automatyczne nie powstaje.

Opisz nam swoje powiadomienia

Podaj, jak dziś wybierasz adresata powiadomienia i skąd bierzesz listę adresów, a przygotujemy plan analizy reguły przydziału.