Найти записи
Используется, чтобы найти записи в Бипиуме, установив ограничения на выборку в качестве видов или фильтров. Процессы имеют доступ к записям минуя правовую политику.
Свойства
Секция «Найти записи»
Указать каталог
Способ выбора каталога для поиска записи. Доступные варианты: из списка и через переменную. Вариант «из списка» подойдет, когда вы знаете в каком каталога хотите найти запись. Вариант «через переменную» используется, если нужно искать запись в разных каталогах в зависимости от логики в сценарии.
Каталог
Свойство доступно при выбранном значении Указать каталог = Из списка. Выбор каталога из числа доступных в системе для поиска записи. Формат: выбор из списка каталогов.
ID каталога
Свойство доступно при выбранном значении Указать каталог = Через переменную. Идентификатор (ID) каталога, в котором нужно найти запись. Формат: значение/выражение.
Фильтр Фильтр предназначен для выборки записей. Формат значения: идентификатор поля = "значение"/выражение. Значения для разных типов полей:
Для текстовых полей:
"текст"(поиск идет не по точному совпадению, а по вхождению)Для дат, чисел, прогресса — поиск по диапазону:
{ "at": '...', "to": '...' }Для поиска пустых дат можно использовать "NULL_DATE"
Для категории, набора галочек, вопроса, звёзд — массив:
[1, 2, 3, 5]Для контактов:
"текст"(поиск по вхождению + телефоны отчищаются от спецсимволов)Для связанных объектов — массив объектов:
[ {"catalogId": 18, "recordId": 9}, {"catalogId": 18, "recordId": 10} ]Для сотрудников — массив идентификаторов сотрудников:
[21, 22]
В поле «Id поля» можно передать переменные при помощи вложенных шаблонов.
Синтаксис
${выражение} =значение
Вид Список правовых видов выбранного каталога. Формат: список видов.
Сортировать по Позволяет задать сортировку по выбранному полю. Формат: список полей в выбранном каталоге.
Секция «Получить»
Поля
Способ указания какие поля записи должны вернуться в результате. Доступные варианты: все поля и заданные. Вариант «все поля» вернет все поля каталога, включая расширенные поля связанных записей, которые заданы в настройках полей каталога. Вариант «заданные» позволяет указать какие именно поля вернуть, в том числе и расширенные поля у связанных записей.
ID полей
Свойство доступно при выбранном значении Поля = Заданные. Массив идентификаторов (API ID) полей каталога, указанных через запятую. Ограничение списка полей уменьшает размер данных в сценарии, и увеличивает скорость их получения. Также компонент позволяет получить любые расширенные поля у связанных записей. Формат: значение/выражение.
Формат указания расширенных полей:
IDполяX— поле выбранного каталогаIDкаталогаХ— Идентификатор каталога связанного каталога. Поле «связанные каталог» может иметь несколько источников. Для каждого каталога источника можно указать какие именно поля нужно получить.IDрасширенногоПоляХ— идентификаторы полей связанного каталога, которые нужно получить.
Пример
[ 4, {fieldId: 5, fields: { 27: [2,6]} }, 8, {fieldId: 9, fields: { 19: [3,4]} } ]
Получает 4, 5, 8 и 9 поля. Для 5 поля дополнительно возвращаются 2 и 6 поле у связанных записей из каталога 27, а для 9 поля — 3 и 4 поле у записей из каталога 19.
Количество записей Максимальное количество возвращаемых записей (максимум 1000, по умолчанию - 100). Формат: значение/выражение.
Начиная с Используется в связке с параметром «Количество записей». Если записей много и для возврата записей используется цикл, то позволяет задать начальный порядковый номер записи (не ID), с которого будет отсчитан лимит возвращаемых записей. По умолчанию 0. Например, если указано 200, а количество записей = 100, то будет возвращены записи с 201 по 300. Формат: значение/выражение.
Секция «Результат»
Сохранить в Выходной параметр. Сохранит результат в указанную переменную. Формат: имя переменной. Компонент возвращает массив записей:
В поле «Сохранить в» можно указать ключ объекта и данные сохранятся как значения этого ключа.
Пример
Если указать в поле «Сохранить в» переменнуюdata.temp, то результат будет выглядеть следующим образом:
Всего записей в Выходной параметр. Сохранит количество найденных записей в указанную переменную. Формат: имя переменной.
Найденных записей ≠ возвращенных записей
Найденные записи — записи удовлетворяющие фильтру, и их может быть больше, чем число возвращенных из них записей (из-за параметра «Количество записей»).
Число возвращенных записей
Чтобы получить число возвращенных записей используйте метод length для массивов. Допустим вы сохранили результат в переменную records. Тогда, чтобы получить число возвращенных записей используйте выражение records.length.
Формат значения полей (values)
Переменная с результатом («сохранить в») содержит объект values — значения полей записи. Ключи объекта — идентификаторы полей. Формат значений для разных типов полей разный:
Однострочный текст =
"Однострочный текст"Многострочный текст =
"Многострочный текст"Дата =
"2015-11-06T21:00:00.000Z"Категория / набор галочек =
[2]или несколько значений[2,3,4], без значения[]Вопрос =
2Число =
3.2Прогресс =
28(допустимо от 0 до 100)Звезды =
5(допустимо от 0 до 5)Контакт = массив объектов:
[ {"contact": "8-901-234-56-78", comment: "Секретарь"}, {...} ]Адрес = объект предоставляемый из DaData
Связанная запись = массив объектов:
[ {catalogId: '11',recordId: '91', catalogTitle: 'Название каталога', recordTitle: 'Название записи', isRemoved: false}, {...} ]Сотрудник = массив объектов:
[{id: '21', title: 'Имя', isRemoved: false}, {...}]Файл = массив объектов:
[ {title: "имя", url: "http://путь", size: 45654, mimeType: "image/png"}, {...} ]гдеmimeType— допустимые значения
Как получить значение поля?
Допустим, вы сохранили найденные записи в переменную records. И далее с помощью компонента назначение переменных присваиваете в переменную r некую запись (например нулевую), выражением records[0]. Чтобы обратиться к коллекции значений полей этой записи, используйте выражение r.values.
Чтобы получить значение, например, 4-го поля записи, используйте компонент назначение переменных и укажите выражение r.values['4'].
Как получить значение сложного поля?
Для сложных типов полей (значения которых представлены массивом, например: категория, связанный объект, контакт, сотрудник, файл) значение поля будет массивом. Чтобы узнать сколько элементов в массиве используйте выражение r.values['4'].length, а чтобы получить значение, например, 0-го элемента массива: r.values['4'][0], чтобы обратится к его свойству, например recordId у поля типа связанный объект: r.values['4'][0].recordId.
Однако, если вы обратитесь к параметру (например recordId) к элементу массива, которого нет (например, когда в поле не выбрано никакое значение), то сценарий прервется с ошибкой. Поэтому, прежде чем получить свойство у объекта в массиве, нужно сначала проверить что массив не пустой. Это можно сделать с помощью компонентов ветвления сценария (шлюзов) и проверки условий на исходящих соединительных линиях, или с помощью выражения: r.values['4'].length && r.values['4'][0].recordId.
Это выражение проверяет что в 4-м поле в массиве есть элементы, и если есть хотя бы один, то возвращает значение свойства recordId в 0-м элементе. Именно это значение будет присвоено переменной. Если элементов нет, то переменной будет присвоено 0.
Пограничные события

Компонент поддерживает 2 типа пограничных событий:
Ошибка — выход из компонента, если произошла какая-либо ошибка
Таймаут — выход из компонента, спустя заданное ограничение по времени
Если компонент завершился с ошибкой, но на нем не было пограничного события, то процесс завершается. Сообщение ошибки возвращается в результатах процесса.
Last updated