Zmienne w procesach biznesowych Bitrix24 to komórki, w których proces przechowuje wartości pośrednie: wynik akcji, obliczoną datę, odpowiedź zewnętrznego systemu. Razem z parametrami uruchomienia i stałymi zamieniają szablon ze sztywnego scenariusza w konfigurowalny. Większość przypadków „proces nie działa" to w praktyce błędy właśnie w zmiennych: niewłaściwy typ, pusta wartość, krzywe podstawienie. Omówimy budowę i typowe techniki obróbki.

Czym zmienna różni się od parametru i stałej?

Trzy byty w ustawieniach szablonu. Parametry wypełnia się w momencie uruchomienia — przez tego, kto startuje proces (na przykład „przyczyna rabatu"); wewnątrz procesu są tylko odczytywane. Zmienne żyją wewnątrz: proces zapisuje je i odczytuje ponownie na bieżąco — tu odkłada się wyniki akcji. Stałe ustawia się raz w szablonie (próg kwoty, ID działu) i zmienia bez poprawiania logiki. Zasada praktyczna: wszystko, o co pytasz człowieka — parametr; wszystko, co liczysz na bieżąco — zmienna; wszystkie „magiczne liczby" — stałe, inaczej przy zmianie progu trzeba będzie go szukać po wszystkich warunkach.

Jak podstawiać wartości do akcji?

W dowolnym polu akcji działa „Wstaw wartość" — wybór z drzewa: pola dokumentu (deala, leada), parametry, zmienne, stałe, wyniki poprzednich akcji i wartości systemowe. Pod maską to szablony postaci {=Document:TITLE} lub {=Variable:total}. Dwa podwodne kamienie: pola wielokrotne podstawiają się listą rozdzieloną przecinkami — do pracy element po elemencie trzeba je najpierw rozłożyć; a pusta wartość podstawia się jako pusty ciąg znaków, nie jako „nic" — warunek „równe puste" i „równe """ w Bitrix24 nie zawsze są tym samym, sprawdzaj na testowym wpisie.

Jak obrabiać ciągi znaków i wybierać wartości według warunku?

Wbudowanych funkcji do ciągów znaków w kreatorze jest mało i tu ratują roboty-jednolinijkowce. Wybór według warunku bez gałęzi „Warunek" na dwa bloki: operator trójargumentowy zwraca jedną z dwóch wartości na podstawie porównania — „jeśli rabat pusty, weź 0" rozwiązuje się jedną akcją. Wydobyć fragment z tekstu — telefon z komentarza, numer faktury z wiadomości: „Wydobądź wyrażeniem regularnym". Rozłożyć listę na elementy — tagi rozdzielone przecinkami, imię i nazwisko na części: „Podziel ciąg po separatorze" zwraca tablicę i liczbę części, dalej elementy są dostępne według indeksu.

Jak wydobyć wartość z odpowiedzi JSON?

Jeśli proces sięga do zewnętrznych systemów zapytaniem HTTP, odpowiedź przychodzi ciągiem JSON — a potrzebne jest jedno pole z zagnieżdżonej struktury. Robot „Wydobądź wartość z JSON po ścieżce" przyjmuje ciąg i ścieżkę postaci data.items.0.price oraz zwraca wartość do zmiennej. Połączenie „zapytanie HTTP → JSON po ścieżce → zapis do pola" to standardowy wzorzec integracji bez kodu: kurs z zewnętrznego API, status zamówienia z systemu księgowego, stany magazynowe z magazynu.

Dlaczego zmienna jest pusta: lista kontrolna

Cztery częste przyczyny. Akcja, która miała wypełnić zmienną, nie wykonała się — patrz na dziennik procesu, gałąź mogła ją ominąć. Typ się nie zgadził: do zmiennej typu „liczba" zapisano ciąg ze spacją — wartość po cichu się zgubiła. Wynik akcji wzięto nie z tego bloku: przy kopiowaniu bloków podstawienie nadal wskazuje na stary. Wartość wielokrotna odczytywana jako pojedyncza: zamiast elementu podstawiła się cała lista. Zasada debugowania: po każdej ważnej akcji tymczasowo zapisuj zmienną do komentarza karty — zobaczysz realną wartość na każdym kroku.

Podsumowanie

Zmienne to pamięć procesu, a dyscyplina w nich się opłaca: parametry na wejście, stałe na progi, zmienne na wyniki. A obróbkę wartości — wybór według warunku, rozbiór ciągów znaków i JSON — zamykają roboty-jednolinijkowce z katalogu Roboteki, żeby nie budować rozgałęzień na pustym miejscu.