Pola wielokrotne — telefony, adresy e-mail, tagi — przechowują kilka wartości naraz, a roboty też zwracają listy: na przykład części rozbitego ciągu. Gotowe akcje procesów biznesowych Bitrix24 (Alaio) z listami radzą sobie słabo: podstawienie skleja wszystkie wartości w jeden ciąg, a zapis do pola wielokrotnego nadpisuje to, co w nim było. Roboty Roboteki obejmują pracę z tablicami: pobrać element po indeksie, policzyć elementy, sprawdzić obecność wartości, dodać i usunąć wartość pola wielokrotnego, a także usunąć duplikaty, posortować, zsumować, usunąć element z listy i wypisać listę jako tabelę.

Skąd w procesie biznesowym biorą się tablice?

Trzy źródła. Wielokrotne pola obiektów: telefony i adresy e-mail kontaktu, pola użytkownika ze znacznikiem „wielokrotne" — tagi, kategorie, lista oddziałów. Wielokrotne zmienne procesu, w których wartości gromadzą się w trakcie gałęzi. Oraz wyniki innych robotów: rozbicie ciągu po separatorze zwraca listę części, wyciąganie według wzorca — listę dopasowań. Standardowo z taką listą można zrobić niewiele: podstawienie do tekstu sklei wartości przecinkiem, warunek sprawdzi wystąpienie po sklejeniu. Pobrać właśnie drugi telefon, policzyć tagi lub starannie dopisać wartość, nie ruszając pozostałych — to już zadania dla robotów poniżej.

Jak pobrać pierwszy, ostatni lub N-ty element?

Robot „Pobierz element tablicy według indeksu" przyjmuje tablicę wartości i indeks: 0 — pierwszy element, 1 — drugi, −1 — ostatni, −2 — przedostatni. Wyjście: element i znacznik „Element istnieje" (Y/N); jeśli indeks jest poza granicami tablicy, zwrócona zostanie pusta wartość i znacznik N — proces się nie zatrzyma, a gałąź warunku obsłuży brak danych. Typowe połączenia: rozbiłeś ciąg z imieniem i nazwiskiem po spacji — wziąłeś pierwszy element jako nazwisko; rozbiłeś adres po przecinku — wziąłeś ostatni element jako numer domu; z listy dopasowań wyrażenia regularnego wziąłeś pierwsze. Wynik zapisuje się do zwykłego pojedynczego pola lub zmiennej do kolejnych kroków.

Jak policzyć elementy i sprawdzić obecność wartości?

Dwa roboty-pytania. „Rozmiar tablicy / liczba elementów" zwraca liczbę i znacznik „Tablica pusta" (Y/N); puste ciągi domyślnie nie są liczone — przypadkowa pusta pozycja w polu wielokrotnym nie zepsuje liczenia. „Sprawdź, czy wartość istnieje w tablicy" szuka dokładnego dopasowania elementu — nie podciągu — bez uwzględnienia wielkości liter, a opcją włącza się porównanie ścisłe. Wyjście: znacznik „Znaleziono" (Y/N) i indeks pierwszego dopasowania, minus jeden, jeśli dopasowań nie ma. Zastosowanie w warunkach procesu: „deal ma już tag VIP — pominąć udzielenie rabatu", „kontakt ma zero telefonów — zadanie dla menedżera o uzupełnienie karty przed przekazaniem do obdzwonu".

Jak dodać wartość do pola wielokrotnego, nie nadpisując pozostałych?

Główny ból pól wielokrotnych: standardowa zmiana dokumentu zapisuje pole w całości i, dodając jeden tag, łatwo skasować istniejące. Robot „Dodaj wartość do pola wielokrotnego" dopisuje wartość starannie: odczytuje bieżącą zawartość pola obiektu i dodaje nową do istniejących. Wejście: typ obiektu — deal, kontakt, firma lub lead — ID obiektu przez podstawienie z bieżącego dokumentu, kod pola (na przykład UF_CRM_TAGS lub PHONE) i samą wartość. Opcja „nie dodawać, jeśli już jest" jest włączona domyślnie: ponowne uruchomienie procesu nie namnoży duplikatów wartości. Wyjście: znacznik „Sukces" (Y/N) i końcowa liczba elementów w polu.

Jak usunąć wartość z pola wielokrotnego?

Operacja odwrotna — zdjąć tag, usunąć nieaktualny telefon. Ręcznie oznacza to otwarcie karty i poprawienie pola; standardową akcją — przepisanie pola w całości ze wszystkimi ryzykami. Robot „Usuń wartość z pola wielokrotnego" przyjmuje typ obiektu, ID, kod pola i usuwaną wartość. Usuwane są wszystkie wystąpienia tej wartości, pozostałe elementy zostają na miejscu. Wyjście: znacznik „Sukces" (Y/N), ile wystąpień usunięto i końcowa liczba elementów w polu. Przepis: deal zamknięty pomyślnie — proces zdejmuje z firmy tag „w pracy" i sąsiednim robotem dodawania dopisuje tag „klient"; karta zawsze odzwierciedla aktualny status bez ręcznej poprawki.

Jak pobrać ostatnio dodaną wartość?

Bitrix24 przechowuje wartości pola wielokrotnego w kolejności dodania, więc „ostatnio dodana" to po prostu ostatni element listy. Robot „Pobierz element tablicy według indeksu" z indeksem −1 zwraca ją bez liczenia długości; −2 daje poprzednią. Niuans dla pól typu „lista" i „powiązanie z elementem CRM": takie pole trafia do procesu biznesowego jako lista ID — wartości listy lub powiązanych elementów — a nie nazw. Indeks −1 daje ID ostatniego elementu; aby odczytać jego nazwę, telefon lub dowolne inne pole, dołącz robota „Pobierz wartość pola powiązanej encji" — przyjmuje on typ obiektu, to ID i kod pola. Przykład: deal ma wielokrotne pole „Zatwierdzający" powiązane z kontaktami — proces bierze ostatnio dodanego i pobiera jego adres e-mail do powiadomienia.

Jak zamienić ciąg rozdzielony przecinkami w pole wielokrotne?

Wartości z formularza lub integracji często przychodzą jako jeden ciąg: „montaż, dostawa, gwarancja". Robot „Podziel ciąg według separatora" tnie go na listę części; separator jest brany dosłownie, więc dla ciągu z przecinkiem i spacją ustaw jako separator „przecinek plus spacja", inaczej części zachowają spację na początku. Wynik to zwykła tablica: zapisz ją do pola wielokrotnego w całości standardową akcją „Zmień dokument" (pole zostanie nadpisane — dla pustego pola to dokładnie to, czego trzeba) albo dopisz wartości pojedynczo do istniejących robotem „Dodaj wartość do pola wielokrotnego". Więcej o dzieleniu i łączeniu w artykule o ciągach w procesach biznesowych.

Jak usunąć element z tablicy lub wyczyścić listę?

Dwa różne przypadki. Jeśli wartość ma zniknąć z pola na karcie, to „Usuń wartość z pola wielokrotnego" — edytuje on sam obiekt. Jeśli lista żyje w zmiennej procesu lub pochodzi od innego robota, a karta ma pozostać nietknięta, użyj „Usuń element z tablicy". Dwa tryby: po wartości — usuwane jest każde dopasowanie, domyślnie bez uwzględnienia wielkości liter; po indeksie — jeden element, 0 to pierwszy, −1 ostatni. Wyjście: tablica po usunięciu, ile elementów usunięto i końcowa liczba. Całkowite wyczyszczenie zmiennej wielokrotnej łatwiej zrobić standardowo — akcją „Zmień zmienne" z pustą wartością; pole wielokrotne na karcie opróżnia robot „Wyczyść pole", bo pusty ciąg w standardowej akcji zmiany dokumentu dla takich pól nie działa. Robot usuwania jest na przypadek, gdy z listy ma zniknąć jedna wartość: pierwszy telefon z kolejki został obsłużony — usuń go po indeksie 0 i przekaż resztę dalej.

Jak usunąć duplikaty i porównać dwie listy?

„Usuń duplikaty z tablicy" zostawia tylko unikalne wartości i zachowuje kolejność pierwszych wystąpień; porównanie domyślnie nie uwzględnia wielkości liter, z opcją ścisłego dopasowania. Wyjście: tablica bez duplikatów, liczba unikalnych elementów i ile powtórzeń odrzucono. Typowy przypadek: telefony firmy i jej kontaktów zebrane w jednej zmiennej przed wysyłką — po robocie żaden numer nie dostanie dwóch wiadomości. Ten sam robot pomaga porównać dwa pola wielokrotne. Element po elemencie — „Sprawdź, czy wartość istnieje w tablicy" wewnątrz standardowej konstrukcji „Pętla": wartość z pola A jest szukana w polu B. W całości — zbierz obie listy w jedną zmienną i uruchom usuwanie duplikatów: jeśli żadne z pól nie ma wewnętrznych powtórzeń, a liczba odrzuconych powtórzeń równa się liczbie elementów pola B, pole B w całości zawiera się w polu A.

Jak zsumować wartości tablicy?

Wielokrotne pole „Płatności" lub listę kwot z rozbitego ciągu sumuje robot „Suma elementów tablicy". Rozumie przecinek jako separator dziesiętny i spacje wewnątrz liczb („1 500,50"), pomija elementy nieliczbowe i osobno raportuje, ile ich pominięto — warunek procesu na tym liczniku wyłapie „do pola trafił tekst". Wyjście: suma i liczba policzonych elementów. Sumę zwykle następnie się zaokrągla i wstawia do pola dealu lub wiadomości e-mail — zaokrąglanie i procenty mają własny artykuł o obliczeniach w procesach biznesowych.

Jak posortować tablicę?

Standardowe narzędzia nie sortują listy, a sortowanie liczb jako ciągów daje kolejność „1, 10, 2". Robot „Sortuj tablicę" porządkuje elementy rosnąco lub malejąco; typ jest wykrywany automatycznie — wszystkie elementy liczbowe oznaczają porównanie liczbowe, w przeciwnym razie alfabetyczne jako ciągi — i można go wymusić. Wyjście: posortowana tablica i liczba elementów. W parze z pobieraniem po indeksie odpowiada na „największa płatność": posortuj malejąco, weź element 0; „trzy najwcześniejsze daty": posortuj rosnąco, weź 0, 1 i 2.

Jak wypisać listę jako tabelę w e-mailu lub powiadomieniu?

Podstawienie pola wielokrotnego do tekstu daje wartości rozdzielone przecinkami. Do czytelnego e-maila użyj robota „Tabela HTML z tablicy": każdy element tablicy staje się wierszem tabeli, separator wewnątrz elementu (domyślnie średnik) dzieli go na kolumny, a osobne pole ustawia wiersz nagłówka. Wyjście: gotowy kod HTML tabeli, liczba wierszy i kolumn. Przepis: lista pozycji „nazwa;ilość;kwota" zebrana w zmiennej w trakcie procesu trafia do klienta e-mailem jako tabela. Jak dostarczyć taki e-mail lub powiadomienie, opisuje artykuł o powiadomieniach z procesu biznesowego.

Podsumowanie

Roboty obejmują cykl życia tablicy: pobrać element — „Pobierz element tablicy według indeksu", policzyć — „Rozmiar tablicy / liczba elementów", sprawdzić — „Sprawdź, czy wartość istnieje w tablicy", zmienić pole wielokrotne na karcie — „Dodaj wartość do pola wielokrotnego" i „Usuń wartość z pola wielokrotnego", przetworzyć listę bez zapisu na kartę — „Usuń element z tablicy", „Usuń duplikaty z tablicy", „Sortuj tablicę", „Suma elementów tablicy", „Tabela HTML z tablicy". Wszystkie są w katalogu Roboteki, bezpłatnie z Bitrix24.Market. Nie ma potrzebnej operacji na tablicach — opisz zadanie, zrobimy robota bezpłatnie.