Standardowe środki Bitrix24 pokrywają proste warunki: robot na etapie uruchamia się według filtra, blok „Warunek" w kreatorze procesów biznesowych rozdziela gałęzie. Ale logika „jeśli kwota większa niż 100 000 i źródło to strona, to jedno, w przeciwnym razie drugie" zamienia się w drzewo zagnieżdżonych rozgałęzień. Trzy roboty Roboteki sprowadzają takie sprawdzenia do jednej akcji: „Złożony warunek" łączy do czterech sprawdzeń z AND/OR/NOT, „Wybór trójargumentowy" zwraca jedną z dwóch wartości, „Sprawdź wypełnienie pola" odpowiada Y/N na temat dowolnego pola CRM.
Dlaczego standardowe warunki nie wystarczają?
Robotowi na etapie można zadać warunek uruchomienia, ale to filtr: zadziałać albo nie, bez złożonej logiki w środku. W kreatorze procesów biznesowych jest blok „Warunek", jednak kombinacja „(A i B) lub (C i D)" składa się tylko z zagnieżdżonych rozgałęzień — dwie-trzy gałęzie, które trudno czytać i zmieniać. Główne źródło błędów to duplikowanie akcji w gałęziach: poprawiasz tekst powiadomienia w jednej i zapominasz w drugiej. Wygodniej policzyć cały warunek jedną akcją, otrzymać wskaźnik Y/N i zostawić w schemacie jedno rozgałęzienie. Jak działają same procesy — w przeglądzie procesów biznesowych Bitrix24.
Jak połączyć kilka sprawdzeń: AND, OR, NOT?
Robot „Złożony warunek (AND / OR / NOT)" przyjmuje w trybie płaskim do czterech par „wartość A — operator — wartość B" oraz logikę łączenia: AND — wszystkie muszą być spełnione, OR — wystarczy jedna. Dla dowolnego zagnieżdżenia jest tryb JSON: pole „warunki w JSON" postaci {"and":[{"a":"…","op":"eq","b":"…"},{"or":[…]}]} ma priorytet nad płaskim. Wyjście jest jedno — „Wynik (Y/N)". Gdzie zapisać: zwykle zaraz po robocie stawia się standardowy „Warunek" ze sprawdzeniem „wynik równa się Y" — jedno rozgałęzienie zamiast drzewa. Jeśli w płaskiej parze nie podano operatora, jest ona po prostu pomijana, więc nie trzeba wypełniać wszystkich czterech wierszy. Przykład: przed przeniesieniem deala na etap „Uzgodnienie" sprawdzić, że kwota jest większa od progu i źródło to strona; przy N deal wraca do menedżera z powiadomieniem.
Jakie operatory są dostępne i dlaczego eq, a nie ==?
Operatory zadaje się aliasami słownymi: eq, neq, gt, lt, gte, lte — równa się, nie równa się, większe, mniejsze i nieostre porównania; plus contains, not_contains, starts_with, ends_with, is_empty, not_empty oraz matches dla wyrażeń regularnych. Form symbolicznych == i > nie należy wpisywać w polach robota: silnik procesów biznesowych traktuje taką wartość jako wyrażenie i oblicza je jeszcze przed uruchomieniem robota — do sprawdzenia dociera już wynik obliczenia, a nie operator. Liczby są porównywane jak liczby: 10 jest większe od 9, choć jako ciąg „10" jest mniejsze. Ciągi domyślnie są porównywane bez uwzględniania wielkości liter — do porównania ścisłego jest osobny wskaźnik. Jeszcze jeden niuans Bitrix24: niewypełnione pole jest podstawiane jako pusty ciąg, a nie jako „nic", dlatego pustkę sprawdza się operatorem is_empty, a nie porównaniem z pustą wartością.
Jak wybrać jedną z dwóch wartości bez gałęzi?
„Wybór trójargumentowy (jeśli-to-inaczej)" — konstrukcja „jeśli — to — w przeciwnym razie" jedną akcją. Wejście: wartość A, operator, wartość B (dla is_empty i not_empty niepotrzebna) oraz dwa warianty odpowiedzi — „zwróć, jeśli prawda" i „zwróć, jeśli fałsz". Wyjścia są dwa: wybrana wartość i wskaźnik „warunek spełniony" Y/N. Wynik zapisuje się w polu deala, treści powiadomienia lub zmiennej procesu. Przykład: jeśli rabat większy niż 20 — podstawić do wiadomości uzgadniającego przełożonego, w przeciwnym razie menedżera. Jeden robot zastępuje rozgałęzienie z dwiema niemal identycznymi akcjami, które inaczej trzeba by utrzymywać parami. Wskaźnik Y/N pozostaje przy tym dostępny osobno — na jego podstawie można dodatkowo rozdzielić proces, nie przeliczając warunku po raz drugi.
Jak sprawdzić, że pole jest wypełnione?
„Sprawdź wypełnienie pola" pokrywa najczęstszy szczególny przypadek warunku. Wejście: typ encji — deal, contact, company lub lead, jej ID i kod pola. Wyjścia są dwa: wskaźnik „pole wypełnione" Y/N oraz bieżąca wartość pola; wartości wielokrotne są łączone przecinkiem. Przykład: lead nie przechodzi do pracy bez telefonu; deal nie idzie na wysyłkę z pustym polem „Adres dostawy". Wskaźnik porównuje się w standardowym warunku, a wartość pola można od razu podstawić do powiadomienia dla odpowiedzialnego — osobne zapytanie do karty nie jest potrzebne, robot zwrócił już i fakt, i zawartość.
Podsumowanie
Kilka sprawdzeń naraz — „Złożony warunek"; wybór jednej z dwóch wartości — „Wybór trójargumentowy"; kontrola wypełnienia — „Sprawdź wypełnienie pola". Operatory w polach pisz słowami: eq, gt, lt. Te i sąsiednie roboty zarządzania logiką zebrano w kategorii zarządzanie procesem. Nie znalazłeś potrzebnego — opisz zadanie, zrobimy robota bezpłatnie i dodamy do wspólnego katalogu.