Wbudowane roboty Bitrix24 dodają do daty dni kalendarzowe i nic nie wiedzą o świętach: termin „trzy dni na opłacenie faktury", wyznaczony przed długim weekendem, zamienia się w opóźnienie jeszcze zanim klient zobaczy fakturę. Roboty Roboteki liczą terminy według kalendarza produkcyjnego FR: dodają dni robocze z uwzględnieniem świąt i przesunięć, sprawdzają, czy dzień jest roboczy, znajdują najbliższą potrzebną datę i określają dzień tygodnia.
Dlaczego „data + 3 dni" psuje terminy?
Interwały w kreatorze procesów biznesowych są kalendarzowe: „+3 dni" od piątku to poniedziałek, a jeśli jest on świąteczny, termin wypada na dzień wolny i handlowiec otrzymuje zadanie z terminem 1 stycznia. Kalendarz produkcyjny FR to nie tylko soboty i niedziele: święta, przesunięcia dni wolnych, robocze soboty, a lista zmienia się co roku rozporządzeniem rządu. Wszyć go w szablon procesu wbudowanymi środkami się nie da — trzeba by ręcznie prowadzić listę dat i poprawiać schemat co rok. Dlatego obliczanie terminów wynosi się do robota, który sam sprawdza się z aktualnym kalendarzem produkcyjnym: schemat procesu pozostaje prosty, a święta przestają być jego zmartwieniem.
Jak dodać N dni roboczych do daty?
„Data + N dni roboczych (FR)". Wejście: data źródłowa i liczba dni roboczych; liczba ujemna odlicza wstecz — na przykład przypomnienie na dwa dni robocze przed wydarzeniem. Robot idzie po kalendarzu produkcyjnym FR i pomija dni wolne oraz święta; przesunięte robocze soboty i skrócone dni przedświąteczne liczą się jako robocze. Na wejściu data przyjmowana jest w zwyczajowych postaciach: RRRR-MM-DD, DD.MM.RRRR lub wartość pola „data" z karty. Wyjścia są dwa: data w formacie RRRR-MM-DD — do zapisu w polu typu „data", i ta sama w formacie DD.MM.RRRR — do tekstu powiadomienia. Przykład: faktura wystawiona — termin zapłaty za pięć dni roboczych zapisuje się w polu deala, po nim stawia się zadanie i buduje ścieżkę zatwierdzania faktury.
Jak sprawdzić, czy data jest dniem roboczym?
„Sprawdzenie: data to dzień roboczy?" przyjmuje jedną datę i zwraca znacznik Y/N; skrócony dzień przedświąteczny liczy się jako roboczy. Dalej — wbudowany „Warunek": jeśli N, przenieść wysyłkę lub przesunąć termin. Typowe przypadki: nie wysyłać klientom wiadomości i SMS w święta; nie wyznaczać rozmów na dzień wolny; przed postawieniem zadania upewnić się, że planowana data w ogóle jest robocza. Jeśli data okaże się nierobocza, kolejną akcją dodaj do niej jeden dzień roboczy robotem z poprzedniej sekcji — otrzymasz najbliższy dzień roboczy bez ręcznych tabel przesunięć. Połączenie „sprawdzenie → warunek → przesunięcie" zajmuje trzy akcje i jednakowo działa dla deali, leadów i zadań.
Jak znaleźć najbliższy poniedziałek lub koniec miesiąca?
„Najbliższa data według warunku" szuka od daty źródłowej najbliższej pasującej. Warunki: monday…sunday — dzień tygodnia, first-day — 1. dzień następnego miesiąca, last-day — ostatni dzień bieżącego, next-weekday — najbliższy dzień powszedni. Osobny znacznik „uwzględniać samą datę" (domyślnie N) steruje przypadkiem, gdy data źródłowa już pasuje. Wyjścia są trzy: znaleziona data w formatach RRRR-MM-DD i DD.MM.RRRR oraz liczba dni do niej — wygodnie użyć jej do wstrzymania procesu do potrzebnego momentu. Przykłady: cotygodniowy raport w poniedziałki, protokoły ostatniego dnia miesiąca, przeniesienie płatności na 1. dzień. Znaleziona data zapisuje się w polu lub zmiennej i dalej działa jak zwykły termin.
Jak poznać dzień tygodnia po dacie?
„Dzień tygodnia po dacie" zwraca numer dnia (1 — poniedziałek … 7 — niedziela), nazwę po rosyjsku i po angielsku oraz znacznik „dzień wolny" Y/N. Ważne: znacznik uwzględnia tylko sobotę i niedzielę — o świętach nie wie, dla nich jest sprawdzenie dnia roboczego według kalendarza produkcyjnego z sekcji wyżej. Zastosowanie: różna logika procesu według dni tygodnia — zgłoszenia utworzone w piątek po południu wyznaczać na poniedziałek; rosyjską nazwę dnia wygodnie podstawiać do tekstu powiadomienia dla klienta bez ręcznego słownika odpowiedniości między numerem a nazwą dnia.
Lista kontrolna
Termin według kalendarza FR — „Data + N dni roboczych"; sprawdzenie przed wysyłką — „Sprawdzenie: data to dzień roboczy?"; wydarzenia regularne — „Najbliższa data według warunku"; rozgałęzienie według dni — „Dzień tygodnia po dacie". Te roboty znajdują się w kategorii ogólne. Jeśli potrzebnego robota nie ma — opisz zadanie, zrobimy go za darmo i dodamy do katalogu.