Функции
Функции в Конструкторе модулей Multogram: главная функция Main, свои функции с параметрами и возвращаемым значением, вызов через «Вызвать функцию», папки и менеджер функций.
Функция — отдельный сценарий, который вызывают из других. Функции делают модуль читаемым: каждая решает одну задачу — войти в аккаунт, отправить сообщение, записать отчёт, — а Main собирает их вместе.
Main — точка входа
С функции Main начинается работа модуля в каждом потоке. Её нельзя удалить, переименовать или вызвать из другой функции. Остальные функции выполняются, только когда их вызывают.
В шаблоне нового модуля три функции, и у каждой своя роль:
| Функция | Роль |
|---|---|
| Main | Раздаёт аккаунты потокам и перехватывает ошибки — менять её обычно не нужно |
| ProcessAccount | Работа с одним аккаунтом. Сюда, в ветку THEN, добавляют действия модуля |
| AuthSession | Вход в аккаунт по его файлам и прокси. Возвращает true или false |
Так сценарий остаётся читаемым и при росте: новая задача — новая функция, которую вызывает ProcessAccount. См. Первый модуль.
Менеджер функций
Управление функциями во втором ряду верхней панели открывает список функций проекта:
- + — создать функцию, кнопка папки — создать папку;
- карандаш — изменить, корзина — удалить, значок папки — перенести в другую папку;
- под названием — число параметров, возвращает ли функция значение и сколько в ней действий;
- щелчок по функции открывает её на полотне.
Папки нужны только для порядка: «Вход», «Отправка», «Отчёты». Между функциями переключаются стрелками рядом с кнопкой менеджера или клавишами Alt+← / Alt+→.
Создать функцию
| Поле | Что указать |
|---|---|
| Имя функции | Латинские буквы, цифры и _, начиная с буквы: SendToChat |
| Описание | Что делает функция — видно в менеджере и в подсказках |
| Папка | Необязательно |
| Параметры | Входные данные: имя и тип каждого |
| Возвращаемое значение | Включите, если функция отдаёт результат; Выходная переменная — куда он попадёт у вызывающей стороны |
Вызвать функцию
Добавьте действие Вызвать функцию из модуля Логика и выберите функцию. Для каждого параметра
появится своё поле — Значение для …: туда подставляют [[переменную]] или {{ресурс}}.
Внутри вызванной функции параметр доступен как переменная с тем же именем: параметр sessionFile —
это [[sessionFile]]. Функция возвращает значение действием Вернуть, вызывающая сторона получает
его в переменную результата — по умолчанию [[functionResult]].
Передавайте результат через «Вернуть»
Переменные, созданные внутри функции, при работе модуля остаются внутри вызова. В тесте конструктора они могут быть видны вызывающей функции — и модуль, который работает в тесте, сломается у пользователя. Всё, что нужно вызывающей стороне, возвращайте действием Вернуть.
Когда выносить действия в функцию
- Одни и те же действия повторяются в нескольких местах.
- Блок решает отдельную задачу, которую удобно проверить отдельно: тест запускается прямо на открытой функции.
- Функцию нужно запускать параллельно — через модуль Задачи, см. Потоки и аккаунты.
Обновлено
Переменные
Переменные [[name]] в Конструкторе модулей Multogram: откуда берутся, типы значений, поля объектов и элементы массивов, локальные и глобальные переменные в многопоточном модуле, просмотр в инспекторе.
Ресурсы и форма модуля
Ресурсы {{name}} в Конструкторе модулей Multogram — поля формы настроек модуля: типы полей, обязательные поля, группы в менеджере макета, условия видимости, переводы, тестовые значения и поле выбора аккаунтов.