Справочник методов формул
В этой статье собраны методы, доступные при работе с данными в формулах: получение элементов по ключу или названию, поиск, сортировка, а также методы для работы со связанными сущностями и статистикой процессов.
Методы by_key(), by_name(), find(), ksort() и nsort() доступны для
всех перечисленных ниже сущностей: process, robot, machine, license,
param, queue, project, areas, tenant, task_type, systems,
environment, skills, license_type, process_complexity, folder,
user. В примерах вместо [bundle] подставляйте название нужной сущности.
Методы фильтрации и сортировки
[bundle].by_key()
Позволяет получить список элементов [bundle], ключи которых соответствуют заданным значениям.
Синтаксис
[bundle].by_key('key')Параметры
key— может быть строкой, содержащей один или несколько ключей, перечисленных через запятую, либо массивом ключей.
Примеры использования
// Получить данные по одному конкретному элементу
process.by_key('process#123')
// Получить процессы по нескольким ключам, разделённым запятыми
process.by_key('process#101, process#202')Результат
Возвращает список [bundle], названия которых совпадают с заданными параметрами. Если указано несколько ключей, используется логическое ИЛИ — результат содержит все элементы, совпадающие хотя бы с одним из них.
{
"process#123": "Обработка платёжных поручений",
"process#202": "Контроль исполнения задач"
}[bundle].by_name()
Позволяет получить список элементов [bundle], названия которых полностью или частично совпадают с указанными значениями.
Синтаксис
[bundle].by_name('name')Параметры
name— может быть строкой или массивом строк.
Примеры использования
[bundle].by_name('Обработка платёжных поручений')
// Поиск названий, содержащих одно из перечисленных слов
[bundle].by_name('логистик, бухг')
// Частичное совпадение с несколькими названиями
[bundle].by_name(['PRC-1', 'PRC-2'])
// Точное совпадение с названиями, содержащими знаки препинания
[bundle].by_name(['Процесс, который всё улучшает', 'Второй процесс, который всё улучшает'])Результат
Возвращает список элементов [bundle], названия которых совпадают с заданными параметрами. Если передано несколько названий или ключевых слов, используется логическое ИЛИ — возвращаются все элементы, удовлетворяющие хотя бы одному условию.
{
"process#123": "Обработка платёжных поручений"
}[bundle].find()
Позволяет получить список элементов [bundle], соответствующих выражению.
Синтаксис
[bundle].find('this.field_name < 100')Параметры
Выражение(обязательный) — определяет условие соответствия.
Примеры использования
// Вернёт список процессов, поле field_fte которых больше 10
process.find('this.field_fte > 10')Результат
Возвращает список [bundle], удовлетворяющих указанным критериям.
{
"process#123": "Обработка платёжных поручений"
}Исключительные ситуации
В случае неверного формата выражения будет возвращена ошибка.
[bundle].ksort()
Позволяет отсортировать список элементов [bundle] по их ключам. Используется для упорядочивания данных по идентификаторам (например, process#1, process#2, process#3) в порядке возрастания или убывания.
Синтаксис
[bundle].ksort(order)Параметры
order— строка, направление сортировки:asc(по возрастанию) илиdesc(по убыванию).
Примеры использования
[bundle].ksort() // По возрастанию (по умолчанию)
[bundle].ksort('asc') // По возрастанию
[bundle].ksort('desc') // По убываниюРезультат
Возвращает сортированный список данных по ключам.
{
"process#1": "Загрузка данных",
"process#2": "Обработка транзакций",
"process#3": "Формирование отчёта"
}[bundle].nsort()
Позволяет отсортировать список элементов [bundle] по названиям. Используется для упорядочивания данных в алфавитном порядке (по возрастанию или убыванию).
Синтаксис
[bundle].nsort(order)Параметры
order— строка, направление сортировки:asc(по возрастанию) илиdesc(по убыванию).
Примеры использования
[bundle].nsort() // По возрастанию (по умолчанию)
[bundle].nsort('asc') // По возрастанию
[bundle].nsort('desc') // По убываниюРезультат
Возвращает сортированный список данных по названиям.
{
"process#102": "Анализ транзакций",
"process#205": "Обработка заявок",
"process#307": "Формирование отчётов"
}Связи между процессами и другими сущностями
this.process()
Позволяет получить список процессов, соответствующих данному департаменту.
Синтаксис
this.process()Параметры
Без параметров.
Примеры использования
// Получить процессы, связанные с данным департаментом
this.process()Результат
Возвращает список процессов, соответствующих текущему департаменту.
{
"process#114": "Обработка входящих платежей",
"process#289": "Анализ транзакций клиентов"
}areas.process()
Позволяет получить список процессов, соответствующих списку департаментов.
Синтаксис
areas.process()Параметры
Без параметров.
Примеры использования
// Получение списка всех процессов для всех департаментов
areas.process()
// Получение списка процессов, соответствующих департаментам, в названиях которых встречается слово "Управление"
areas.by_name('управление').process()Результат
Возвращает список процессов, соответствующих списку департаментов.
{
"process#305": "Формирование отчётов по управлению персоналом",
"process#412": "Управление договорами"
}Дополнительная информация
Метод может быть вызван сразу после любого из методов, которые возвращают список департаментов: areas.by_key(), areas.by_name(), areas.find(), areas.ksort(), areas.nsort().
process.areas()
Возвращает список департаментов, связанных с рассматриваемым списком процессов. Используется для анализа или сопоставления процессов с подразделениями организации.
Синтаксис
process.areas()Параметры
Без параметров.
Примеры использования
// Получить список департаментов, связанных с процессами
process.areas()Результат
Возвращает список департаментов, соответствующих списку процессов.
{
"areas#1029": "Инфраструктура информационных технологий",
"areas#1028": "Передовой центр информационных технологий",
"areas#1025": "Финансы и учет"
}process_complexity.process()
Позволяет получить список процессов, связанных с определёнными уровнями сложности. Используется для фильтрации процессов по их категории сложности.
Синтаксис
process_complexity.process()Параметры
Без параметров.
Примеры использования
process_complexity.process()
// Вернёт список процессов, соответствующих рассматриваемому списку "сложностей"
process_complexity.by_name('x4').process()
// Вернёт список процессов, связанных с вариантами сложности, в названии которых встречается слово "x4"Результат
Возвращает список процессов, соответствующих указанной сложности.
{
"process#123": "Обработка платёжных поручений"
}process.complexities()
Возвращает список вариантов сложности, связанных с рассматриваемыми процессами. Используется для анализа распределения процессов по уровням сложности (например, x1, x2, x3, x4).
Синтаксис
process.complexities()Параметры
Без параметров.
Примеры использования
// Получить список уровней сложности для текущих процессов
process.complexities()Результат
{
"complexities#1029": "x4",
"complexities#1028": "x2"
}environment.process()
Позволяет получить список процессов, связанных с выбранными контурами окружения (например, Prod, Stage, Dev). Используется для фильтрации процессов по среде, в которой они выполняются.
Синтаксис
environment.process()Параметры
Без параметров.
Примеры использования
environment.process()
// Вернёт список процессов, соответствующих рассматриваемому списку контуров
environment.by_name('Prod').process()
// Вернёт список процессов, связанных с контурами, в названии которых встречается слово "Prod"Результат
Возвращает список процессов, соответствующих списку контуров.
{
"process#123": "Обработка платёжных поручений"
}process.environments()
Возвращает список контуров окружения (например, Prod, Stage, Test), связанных с процессами. Используется для анализа процессов в разных средах.
Синтаксис
process.environments()Параметры
Без параметров.
Примеры использования
// Получить все контуры, связанные с процессами
process.environments()Результат
{
"environment#1029": "Prod",
"environment#1028": "Test"
}license_type.process()
Позволяет получить список процессов, связанных с выбранными типами лицензий. Используется для фильтрации процессов по категориям лицензий (например, Desktop, Server, Cloud).
Синтаксис
license_type.process()Параметры
Без параметров.
Примеры использования
license_type.process()
// Вернёт список процессов, соответствующих рассматриваемому списку типов лицензий
license_type.by_name('Desktop').process()
// Вернёт список процессов, связанных с типами лицензий, в названии которых встречается слово "Desktop"Результат
Возвращает список процессов, соответствующих списку типов лицензий.
{
"process#123": "Обработка платёжных поручений"
}process.license_types()
Возвращает список типов лицензий, связанных с рассматриваемыми процессами. Применяется для фильтрации или группировки процессов по видам используемых лицензий.
Синтаксис
process.license_types()Параметры
Без параметров.
Примеры использования
// Получить все типы лицензий, связанные с процессами
process.license_types()Результат
{
"license_type#1029": "Enterprise"
}systems.process()
Возвращает список процессов, связанных с рассматриваемыми системами. Применяется для поиска процессов по принадлежности к определённой системе.
Синтаксис
systems.process()Параметры
Без параметров.
Примеры использования
// Получить все процессы для текущих систем
systems.process()
// Получить процессы, связанные с системой "Бухгалтерия"
systems.by_name('Бухгалтерия').process()Результат
{
"process#123": "Обработка платёжных поручений"
}process.systems()
Возвращает список систем, связанных с рассматриваемыми процессами. Используется для анализа взаимодействий процессов с внешними или внутренними системами.
Синтаксис
process.systems()Параметры
Без параметров.
Примеры использования
// Получить список систем, с которыми связаны процессы
process.systems()Результат
{
"system#1029": "Excel"
}tenant.process()
Возвращает список процессов, связанных с рассматриваемыми тенантами. Используется для анализа активности процессов в пределах конкретных клиентских пространств (тенантов).
Синтаксис
tenant.process()Параметры
Без параметров.
Примеры использования
// Получить процессы для всех тенантов
tenant.process()
// Получить процессы для тенанта с названием "Default"
tenant.by_name('Default').process()Результат
{
"process#123": "Обработка платёжных поручений"
}process.tenants()
Возвращает список тенантов, связанных с рассматриваемыми процессами. Используется для фильтрации и анализа процессов в многопользовательской (multi-tenant) архитектуре.
Синтаксис
process.tenants()Параметры
Без параметров.
Примеры использования
// Получить список тенантов, связанных с процессами
process.tenants()Результат
{
"tenant#1029": "Default",
"tenant#1028": "Other"
}process.folders()
Возвращает список папок, связанных с рассматриваемым списком процессов. Используется для анализа организационной структуры процессов по их размещению в иерархии папок.
Синтаксис
process.folders()Параметры
Без параметров.
Примеры использования
// Получить список папок, в которых находятся процессы
process.folders()Результат
{
"folder#1029": "Папка 1"
}Данные и статистика процессов
process.by_status()
Позволяет получить список процессов, находящихся в указанных статусах, как на текущий момент, так и в заданный период времени. Подходит для анализа активности, стабильности или изменений состояния процессов.
Синтаксис
process.by_status(status, start_date = null, end_date = null)Параметры
status(обязательный) — указывает статус процесса или его часть. Можно передать одно значение или несколько через запятую. При передаче нескольких значений возвращаются процессы, соответствующие любому из них.start_date(необязательный) — начальная дата периода поиска. Формат:YYYY-MM-DD(например,2024-01-01). Если не указана, метод возвращает текущие процессы.end_date(необязательный) — конечная дата периода поиска. Формат:YYYY-MM-DD. Если не указана, метод возвращает текущие процессы.
Примеры использования
// Получить текущие процессы со статусом 'production'
process.by_status('production')
// Получить процессы со статусами 'production' или 'stopped'
process.by_status('production,stopped')
// Получить процессы в статусе 'production' в указанный период
process.by_status('production', '2023-10-01', '2023-12-31')Результат
{
"process#21": "Сбор данных по клиентам",
"process#47": "Обработка транзакций"
}Исключительные ситуации
При неверном формате дат или отсутствии обязательных параметров возвращается ошибка.
Дополнительная информация
- Статусы можно искать по подстроке:
"prod"найдёт"process_production","in_prod"и т.п. - Для поиска по нескольким статусам указывайте их через запятую:
"prod,stop". - Если даты не указаны, возвращаются текущие процессы. Если даты указаны, возвращаются процессы, находившиеся в указанных статусах в заданный период.
process.started_by_period()
Возвращает список процессов, дата начала которых попадает в заданный временной диапазон. Используется для анализа ввода процессов в эксплуатацию по датам.
Синтаксис
process.started_by_period(start_date = null, end_date = null)Параметры
start_date— дата начала периода (форматYYYY-MM-DD). Может бытьnull, если левая граница не ограничена.end_date— дата окончания периода (форматYYYY-MM-DD). Может бытьnull, если правая граница не ограничена.
Примеры использования
process.started_by_period('2024-10-12')
process.started_by_period('2024-10-12', '2025-01-01')
process.started_by_period(null, '2025-01-01')
process.started_by_period()Результат
{
"process#123": "Обработка платёжных поручений"
}process.field()
Позволяет получить значение определённого поля процесса за выбранный период времени с возможной агрегацией данных. Применяется для анализа метрик и производительности процессов.
Синтаксис
process.field(field_name, date_start = null, date_end = null, aggregator = null)Параметры
field_name(обязательный) — название поля, данные которого нужно получить.date_start(необязательный) — начальная дата периода (форматYYYY-MM-DD). Если не указана, используется дата начала эксплуатации процесса.date_end(необязательный) — конечная дата периода (форматYYYY-MM-DD). Если не указана, используется текущая дата.aggregator(необязательный) — способ агрегации данных. Возможные значения:sum,avg,min,max. По умолчанию используетсяsum.
Примеры использования
// Получить среднее значение поля 'field_fte' за последние 7 дней
process.field('field_fte', '-7 days', 'now', 'avg')
// Получить сумму значений поля 'field_duration' за месяц
process.field('field_duration', '2024-09-01', '2024-09-30', 'sum')
// Получить минимальное значение метрики без указания периода
process.field('field_load', null, null, 'min')Результат
Возвращает агрегированное значение указанного поля за выбранный период времени.
{
"field_fte": 8.42
}process.stat_agg()
Используется для получения агрегированной статистики процесса за указанный период времени. Позволяет выбрать операцию и метод агрегации для анализа производительности и состояния процессов.
Синтаксис
process.stat_agg(ops_name, agg_name, date_start = null, date_end = null)Параметры
ops_name(обязательный) — название операции:total— общее количество запусков;success— успешные запуски;error— бизнес-ошибки;exception— технические ошибки;duration_avg— средняя длительность выполнения.
agg_name(обязательный) — метод агрегации:sum— сумма;avg— среднее значение;med— медиана;last— последнее значение.
date_start(необязательный) — начальная дата периода (YYYY-MM-DD). Если не указана, используется начало эксплуатации процесса.date_end(необязательный) — конечная дата периода (YYYY-MM-DD). Если не указана, используется текущая дата.
Примеры использования
// Сумма общего количества запусков
process.stat_agg('total', 'sum')
// Среднее количество успешных запусков за октябрь
process.stat_agg('success', 'avg', '2023-10-01', '2023-10-31')Результат
{
"success_avg": 27.3
}Исключительные ситуации
При некорректных параметрах метод возвращает ошибку с описанием проблемы.
Дополнительная информация
Метод предоставляет гибкие возможности для анализа статистики работы процессов, включая успешность, ошибки и длительность выполнения.
process.parallel_run()
Позволяет получить информацию о количестве одновременно запускавшихся роботов в указанный период. Используется для анализа загрузки инфраструктуры и выявления периодов с повышенным уровнем параллельного исполнения.
Синтаксис
process.parallel_run(start_date, end_date)Параметры
start_date(необязательный) — начальная дата периода. Формат:YYYY-MM-DD(например,2024-01-01). Если не указана, анализ выполняется для текущей даты.end_date(необязательный) — конечная дата периода. Формат:YYYY-MM-DD. Если не указана, анализ выполняется для текущего дня.
Примеры использования
// Получить количество параллельно выполнявшихся роботов за период
process.parallel_run('2024-01-01', '2024-10-10')Результат
Возвращает числовое значение, отражающее количество роботов, выполнявшихся одновременно в выбранный период.
{
"robot_parallel_runs": 15
}