Skip to Content

Справочник методов формул

В этой статье собраны методы, доступные при работе с данными в формулах: получение элементов по ключу или названию, поиск, сортировка, а также методы для работы со связанными сущностями и статистикой процессов.

Методы 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 }
Last updated on