| Termin | Definicja |
|---|---|
| jednoczesne uruchomienie wielu workflowów na tym samym kontakcie | Jednoczesne uruchomienie wielu workflowów na tym samym kontakcie to usterka automatyzacji prowadząca do nakładania się wiadomości. Jednoczesne uruchomienie wielu workflowów na tym samym kontakcie – czym jest to zjawiskoJednoczesne uruchomienie wielu workflowów na tym samym kontakcie oznacza sytuację, w której kilka niezależnych automatyzacji zaczyna działać wobec jednej osoby, firmy albo rekordu niemal w tym samym czasie. Każdy workflow może mieć własny wyzwalacz, warunki, opóźnienia i zestaw czynności, jednak wszystkie odnoszą się do tego samego kontaktu w bazie. W efekcie pojawia się nakładanie operacji, które osobno mogłyby działać prawidłowo, lecz razem tworzą niespójny ciąg zdarzeń. Nie musi to oznaczać awarii pojedynczego procesu. Często problem wynika z tego, że kilka reguł reaguje na ten sam fakt, na przykład zmianę statusu, zapis formularza, dodanie etykiety, odpowiedź na wiadomość albo aktualizację pola. Kontakt może wtedy otrzymać kilka podobnych komunikatów, zostać wielokrotnie oznaczony, przesunięty między etapami lub przekazany do różnych kolejek. Z punktu widzenia użytkownika wygląda to jak pojedynczy błąd, lecz przyczyną jest współdziałanie kilku automatyzacji. Ważne jest rozróżnienie między prawdziwym równoległym działaniem a sytuacją, w której jeden workflow uruchamia następny. W pierwszym przypadku wiele procesów reaguje na wspólny sygnał. W drugim powstaje łańcuch zależności: zmiana wykonana przez pierwszy proces staje się wyzwalaczem dla kolejnego. Oba warianty mogą prowadzić do podobnych objawów, dlatego analiza wymaga sprawdzenia historii zdarzeń, kolejności zmian oraz warunków wejściowych każdego procesu. Jednoczesne uruchomienie wielu workflowów na tym samym kontakcie a kontekst technicznyWorkflow można porównać do instrukcji typu „jeżeli wystąpi określone zdarzenie, wykonaj wskazane czynności”. Kłopot zaczyna się wtedy, gdy kilka instrukcji korzysta z tego samego wyzwalacza, a system nie ma mechanizmu ustalającego kolejność lub pierwszeństwo. Przykładowo, aktualizacja jednego pola może jednocześnie uruchomić wysyłkę wiadomości, zmianę właściciela rekordu, utworzenie zadania i rozpoczęcie sekwencji przypomnień. Jeżeli każda reguła działa niezależnie, pojawia się ryzyko dublowania albo wzajemnego nadpisywania zmian. Znaczenie ma także sposób przetwarzania zdarzeń. Niektóre systemy wykonują akcje natychmiast, inne umieszczają je w kolejce. Przy większej liczbie zdarzeń opóźnienia mogą sprawić, że jeden workflow odczyta jeszcze starą wartość pola, a drugi zdąży już zapisać nową. W rezultacie warunki, które były prawdziwe w chwili rozpoczęcia procesu, przestają odpowiadać aktualnemu stanowi kontaktu. Może powstać niespójność między historią aktywności, statusem a faktycznie wykonanymi akcjami. Warto odróżnić automatyzacje uruchamiane zdarzeniowo od procesów cyklicznych. Workflow zdarzeniowy reaguje na konkretną zmianę, natomiast cykliczny sprawdza bazę w określonych odstępach. Jeżeli oba rozwiązania obserwują te same rekordy, jeden kontakt może zostać obsłużony przez oba mechanizmy. Podobne ryzyko pojawia się przy integracjach, synchronizacji danych, importach oraz ręcznych zmianach wykonywanych w czasie działania automatyzacji. Każde dodatkowe źródło aktualizacji zwiększa potrzebę kontroli warunków i historii operacji. Typowe objawy jednoczesnego uruchomienia wielu workflowów na kontakcieNajbardziej widocznym objawem jest powielona komunikacja. Ten sam kontakt może otrzymać kilka wiadomości o zbliżonej treści, kolejne przypomnienia albo komunikaty, które wzajemnie sobie przeczą. Czasem problem dotyczy nie tylko treści, ale również kolejności. Wiadomość końcowa może zostać wysłana przed informacją wprowadzającą, ponieważ procesy miały różne opóźnienia. Innym sygnałem są wielokrotne zmiany pól i etykiet. Status może przełączać się między wartościami, przypisanie do osoby może zmienić się kilka razy, a kontakt może pojawić się w kilku listach równocześnie. W historii rekordu widoczne bywają powtarzające się wpisy wykonane w bardzo krótkim odstępie. Jeżeli system rejestruje identyfikator procesu, warto porównać te wpisy i sprawdzić, czy źródłem zmian jest jedna reguła, czy kilka różnych workflowów. Może także dojść do tworzenia zduplikowanych zadań, zgłoszeń lub notatek. W skrajnym wariancie procesy wzajemnie wywołują kolejne zmiany, tworząc pętlę. Przykładowo, jeden workflow dodaje etykietę, drugi reaguje na tę etykietę i zmienia status, a pierwszy rozpoznaje zmianę statusu jako sygnał do ponownego dodania etykiety. Objawem takiej pętli jest szybko rosnąca liczba aktywności albo powtarzalne działania mimo braku nowych informacji. Nie należy pomijać objawów pośrednich. Baza może działać wolniej, kolejka zadań może się wydłużać, a raporty mogą wykazywać nietypowe wzrosty liczby aktywności. W niektórych przypadkach pojedynczy kontakt jest obsługiwany poprawnie, lecz błąd ujawnia się dopiero przy większej liczbie rekordów przechodzących przez ten sam etap. Jak ograniczyć jednoczesne uruchomienie workflowów na tym samym kontakciePraktyczne porządkowanie automatyzacji powinno rozpocząć się od spisania wszystkich workflowów, które mogą oddziaływać na dany kontakt. Dla każdego procesu warto zapisać wyzwalacz, warunki, modyfikowane pola, wysyłane komunikaty, opóźnienia oraz możliwe kolejne wyzwalacze. Taka mapa zależności pozwala zobaczyć, czy kilka reguł wykonuje tę samą czynność albo czy zmiana wykonana w jednym miejscu uruchamia proces w innym miejscu. Pomocne jest wprowadzenie warunku blokującego ponowne wejście do procesu. Może nim być znacznik wykonania, data ostatniej obsługi, etap przetwarzania albo specjalne pole kontrolne. Sam znacznik nie rozwiązuje każdego problemu, ale ogranicza liczbę powtórzeń, gdy system ponownie otrzyma to samo zdarzenie. Należy również ustalić, czy workflow ma działać raz na kontakt, raz na etap, czy przy każdej zmianie. Te trzy zasady prowadzą do różnych rezultatów i nie powinny być stosowane zamiennie. Dobrym rozwiązaniem jest rozdzielenie odpowiedzialności. Jeden proces może odpowiadać za zmianę statusu, drugi za utworzenie zadania, a trzeci za komunikację, przy czym każdy powinien otrzymywać jasno określone warunki. Warto unikać kilku automatyzacji wykonujących tę samą czynność bez wyraźnej potrzeby. Jeżeli kolejność ma znaczenie, powinno się ją zapisać w regułach albo zastosować kontrolowane opóźnienie i warunek sprawdzający aktualny stan kontaktu przed wykonaniem następnej akcji. Przed wdrożeniem zmian zalecane jest wykonanie testów na odseparowanych rekordach. Należy sprawdzić pojedynczy wyzwalacz, następnie dwa potencjalnie kolidujące procesy, a na końcu pełny scenariusz. Pomocne bywa czasowe wyłączenie jednej reguły i porównanie historii. Dzięki temu można ustalić, czy powtarzalność wynika z równoległego startu, z pętli, z opóźnionej synchronizacji czy z błędnych warunków. Kiedy zgłosić jednoczesne uruchomienie workflowów do serwisuZgłoszenie do serwisu jest uzasadnione, gdy problem nie ogranicza się do jednej konfiguracji albo gdy powtarzające się procesy powodują niestabilność całego środowiska pracy. Szczególnej uwagi wymagają sytuacje, w których automatyzacje uruchamiają się mimo wyłączonych wyzwalaczy, historia zdarzeń zawiera sprzeczne informacje, system samoczynnie zmienia ustawienia lub problem pojawia się po zmianie sprzętu, oprogramowania albo sposobu połączenia z bazą. Przed przekazaniem urządzenia lub zgłoszenia warto przygotować opis pierwszego zauważonego objawu, przybliżony czas wystąpienia, nazwę procesu, identyfikator kontaktu oraz zrzuty historii zdarzeń, o ile nie zawierają danych poufnych. Przydatna jest także informacja, czy problem dotyczy jednego rekordu, całej grupy czy wszystkich kontaktów. Takie dane ułatwiają odtworzenie sytuacji i ograniczają ryzyko przypadkowego usunięcia ważnych logów. W Warszawie analizę problemów ze sprzętem i oprogramowaniem można zgłosić do Warszawskiego Pogotowia Komputerowego 24/7. W ramach przygotowania do obsługi warto zabezpieczyć kopię istotnych danych, zanotować ostatnie zmiany konfiguracyjne i nie usuwać pochopnie historii aktywności. Po ustaleniu źródła problemu można uporządkować wyzwalacze, rozdzielić odpowiedzialność workflowów oraz wprowadzić kontrolę zapobiegającą wielokrotnemu przetwarzaniu tego samego kontaktu. |