Skip to Content

Правила анализа

Встроенные правила

Анализатор кода содержит встроенные правила для проверки проектов, процессов и отдельных элементов. Список правил приведён в таблице ниже.

КодПравилоОбластьДействиеПримечание
MO-EX-001Пустой элемент Приложение ExcelЭлементПредупреждениеРекомендуется удалить пустые контейнеры “Приложение Excel”
MO-OU-001Пустой элемент Приложение OutlookЭлементПредупреждениеРекомендуется удалить пустые контейнеры “Приложение Outlook”
PR-AN-001Продолжить при ошибке = trueЭлементПредупреждениеПравило показывает элементы со свойством “Продолжить при ошибке”, для которых установлена галочка (true). Данное свойство рекомендуется использовать осторожно, т.к. все исключения в данном элементы будут проигнорированы
ST-AN-001Счетчик рабочих процессов проектаПроектИнформацияПоказывает количество файлов процессов (*.ltw) в проекте
ST-AN-002Счетчик элементов процессов проектаПроцессИнформацияПоказывает количество элементов в одном процессе
ST-PR-001Большое количество аргументовПроцессОшибкаВ процессе превышено количество допустимых аргументов. Правило имеет параметр “Счетчик аргументов”, по умолчанию установлено 20
ST-PR-002Пустой блок CatchЭлементОшибкаВ элементе Try-Catch есть пустой блок Catch, следовательно, исключение из блока Try не обрабатывается
ST-PR-003Несколько уровней диаграммПроцессОшибкаПроверяет вложенность диаграмм согласно допустимому значению. Правило имеет параметр “Количество уровней”, по умолчанию 2
ST-PR-004Пустой рабочий процессПроцессПредупреждениеВ проекте есть пустой процесс (файл *.ltw), который рекомендуется удалить для улучшения читаемости проекта
ST-PR-005Недоступные элементыПроцессПредупреждениеВ процессе есть недоступные элементы. Например, закомментированные элементы или элементы, недостижимые диаграммой. Рекомендуется их удалить или добавить аннотацию для закомментированных элементов
ST-PR-006Вложенные блоки ifПроцессПредупреждениеВ процессе превышен максимально допустимый порог вложенности для элемента If-Else. Рекомендуется уменьшить вложенность блоков if до минимума, чтобы легче было поддерживать процесс. Правило имеет параметр “Порог”, значение по умолчанию - 3
ST-PR-007Глубоко вложенные действияПроцессПредупреждениеВ процессе есть вложенные контейнеры, правило распространяется на все контейнеры. Рекомендуется уменьшить вложенность, чтобы облегчить понимание и поддержку процесса Правило имеет параметр “Порог”, значение по умолчанию - 7
ST-PR-008Неполный элемент ifЭлементПредупреждениеЭлемент If-Else не заполнен. Если у вас заполнен блок Else, но пуст Then, подумайте об изменении логики элемента If-Else
ST-PR-009Соглашение об именах переменныхПроцессПредупреждениеПравило проверяет, соответствуют ли имена переменных соглашению о наименовании. Правило имеет параметр “Регулярное выражение” для указания шаблона
ST-PR-010Соглашение об именах аргументовПроцессПредупреждениеПравило проверяет, соответствуют ли имена аргументов соглашению о наименовании. Правило имеет параметры “Регулярное выражение” для аргументов всех направлений (In, Out, InOut)
ST-PR-011Превышена длина переменнойПроцессПредупреждениеПревышена длина названия переменной, рекомендуется уменьшить название. Правило имеет параметр “Длина” со значением по умолчанию в 30 символов
ST-PR-012Превышена длина аргументаПроцессПредупреждениеПревышена длина названия аргументов, рекомендуется уменьшить название. Правило имеет параметр “Длина” со значением по умолчанию в 30 символов
ST-PR-013Переменные с префиксом DataTableПроцессПредупреждениеПеременная типа DataTable должна иметь префикс dt_
ST-PR-014Аргументы с префиксом DataTableПроцессПредупреждениеАргумент типа DataTable должен начинаться типом и продолжаться префиксом dt_
ST-PR-015Значение аргумента по умолчаниюПроцессПредупреждениеИспользуйте для аргументов значения по умолчанию для тестирования отдельных процессов
ST-PR-016Неиспользуемые переменныеПроцессПредупреждениеВ процессе есть неиспользуемые переменные, которые рекомендуется удалить
ST-PRJ-001Пакетные ограниченияПроектОшибкаПроект содержит пакеты, запрещенные в вашей организации. Правило имеет параметр “Запрещенные пакеты”, где можно через запятую перечислить названия таких пакетов
ST-PRJ-002Обязательные пакетыПроектОшибкаВ проекте отсутствуют пакеты, которые требуются вашей организации. Правило имеет параметр “Обязательные пакеты”, где можно через запятую перечислить названия таких пакетов

Дополнительные правила

Дополнительные правила не входят в стандартный набор анализатора. Чтобы использовать их, установите пакет Primo.ProjectAnalyzer.Extended.

Пакет возможно установить следующими способами:

  • Скачать архив  Primo.ProjectAnalyzer.Extended.zip в папку установки Студии. Следует распаковать его в корень папки, чтобы библиотека Primo.ProjectAnalyzer.Extended.dll находилась на одном уровне с Primo.Studio.exe. После чего перезапустить Студию, если она была запущена.

  • Установить NuGet-пакет Primo.ProjectAnalyzer.Extended

При установке пакета, в анализатор добавится возможность сохранять изменения в процессе/проекте при запуске анализа, а также правила из таблицы ниже.

КодПравилоОбластьДействиеПримечание
ST-PR-017Стандартное имя компонентаЭлементПредупреждениеВ процессе используется стандартное имя элемента. Лучше давать элементу уникальное имя (переименовать), указывающее на его назначение в процессе. Например, элемент Присвоение можно переименовать в Присвоение <имя переменной>. Уникальное название элемента поможет быстрее понять при отладке, в каком элементе произошла ошибка
ST-PR-018Бесконечный циклЭлементПредупреждениеВ процессе есть цикл, не имеющий конца. Например, правило сработает, если у вас есть “Цикл Do-While” с условием true, поскольку в этом случае может возникнуть ситуация, когда робот не сможет выйти из цикла
ST-PR-019Использование элементов Поколения 1ЭлементПредупреждениеВ процессе есть элементы из группы “Поколение 1”. Лучше вместо них использовать новые элементы
ST-PR-020Проверка вложенностей “Open Browser”, “Attach browser”, “Attach application”ЭлементПредупреждениеВ процессе есть указанные контейнеры с вложенными в них контейнерами
ST-PR-021Фиксированные задержки в элементеЭлементИнформацияВ процессе есть элемент с задержками, которые указаны в общих свойствах “Пауза до (мс)”, Пауза после (мс)”. Рекомендуется проверить, действительно ли нужны эти паузы. Возможно вместо пауз стоит использовать элементы “Присутствие элемента”, “Исчезновение элемента” и т.д.
ST-PR-022Переменная исключения в блоке Try-Catch не заданаЭлементПредупреждениеВ элементе Try-Catch не указана переменная, хранящая исключение. В этом случае ее невозможно будет обработать
ST-PR-023Вложенные циклыПроцессПредупреждениеВ процессе есть вложенные циклы, из-за которых его будет сложно понимать и поддерживать. Для Студии Pro проверяются циклы While, Do-While, ForEach, ForEach для DataTable, Повтор N раз. Для Студии Citizen – Повтор N раз, ForEach для DataTable. Правило имеет параметр “Порог”, в котором вы можете указать допустимое количество вложенностей для проверки (по умолчанию 3)
ST-PR-024Аннотация для главной последовательности не заданаПроцессПредупреждениеВ процессе отсутствует комментарий для разработчиков, который можно указать в аннотации корневой последовательности
ST-PR-025Загруженность проектаПроцессПредупреждениеКоличество элементов в одном процессе превышает рекомендуемое число. Правило имеет параметры “Нормально” (значение по умолчанию 20), “Средне” (по умолчанию 50), “Критично” (по умолчанию 100). Значения в параметрах можно изменять
ST-PR-026Перегруженность проекта логамиПроцессПредупреждениеВ процессе слишком часто используется элемент “Запись в журнал”. Правило имеет параметр “Процент логов относительно остальных элементов”, по умолчанию установлено значение 50
ST-PR-027Переменные с префиксомПроцессПредупреждениеПроцесс содержит переменную без префикса. Правило имеет 5 шаблонов для переменных разных типов данных, в которых можно указывать рекомендуемые префиксы
ST-PR-028Повторяющиеся элементы в процессеПроцессПредупреждениеВ процессе есть повторяющиеся части с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр “Процент повторяющихся элементов”, по умолчанию 50
ST-PR-029Вложенные контейнерыПроцессПредупреждениеВ процессе есть вложенные контейнеры “Открыть браузер”, “Присоединиться к браузеру”, “Присоединиться к приложению”. Правило имеет параметр “Порог”, где можно указать допустимый порог вложенности. По умолчанию 2
ST-PRJ-003Описание для проекта не указаноПроектПредупреждениеПри создании/редактировании проекта не указали комментарий в поле “Описание”
ST-PRJ-004Похожие процессыПроектПредупреждениеВ проекте есть похожие процессы с одинаковой функциональностью, которую можно вынести в подпроцесс. Правило имеет параметр “Процент повторяющихся элементов”, по умолчанию 50

Настройка и применение правил

Экспорт настроек в файл

Настройки анализатора можно экспортировать в JSON-файл для повторного использования в Studio и при запуске анализа из командной строки. Это позволяет применять единый набор правил в команде.

Чтобы экспортировать настройки:

  1. Откройте Студию и перейдите в меню Анализ → Настройки.

  2. Настройте правила по своему усмотрению:

    • Включайте/отключайте нужные правила

    • Изменяйте параметры (пороговые значения, регулярные выражения и т.д.)

  3. Нажмите кнопку Экспорт и укажите имя файла (например, rules.json).

ℹ️

Начиная со Studio 2.26.7.2 при экспорте сохраняются все правила, включая правила со значениями параметров по умолчанию. Экспортированный файл можно использовать для консольного анализа без изменений.

Формат файла правил

Настройки правил хранятся в JSON-файле, который можно получить через Анализ → Настройки → Экспорт. Для каждого правила используются следующие поля:

ПолеНазначение
CodeКод правила, например ST-PR-001
IsCheckedПризнак включения правила: true – выполнять проверку, false – пропускать
ActionУровень сообщения. Значения: 1 – Info (Информация), 2 – Warning (Предупреждение), 3 – Error (Ошибка), 4 – Verbose (Журнал)
ArgumentsПараметры конкретного правила, например пороговые значения или регулярные выражения. Набор параметров зависит от правила

Важно для консольного анализа: выполняются только правила, которые присутствуют в JSON-файле и включены (IsChecked: true). Если правила нет в файле, оно не выполняется, даже если оно входит во встроенный набор анализатора. Поэтому при подготовке конфигурации рекомендуем экспортировать правила из Studio, а не составлять неполный файл вручную.

Файл, экспортированный в Studio через Анализ → Настройки → Экспорт, подходит для консольного анализатора без преобразований. Подробности о запуске из командной строки и кодах завершения см. в разделе «Анализ проекта».

Импорт настроек из файла

Чтобы применить ранее экспортированные настройки:

  1. Откройте проект в Студии.

  2. Перейдите в меню Анализ → Настройки.

  3. Нажмите кнопку Импорт и выберите JSON-файл с правилами.

  4. Запустите анализ через меню Анализ → Анализировать проект или Анализ → Анализировать процесс.

Просмотр результатов

Результаты анализа отображаются на вкладке Анализ в нижней части Студии. Результаты сгруппированы по правилам:

  • Заголовок группы – код и наименование правила

  • Количество нарушений – сколько раз правило было нарушено

  • Список файлов – в которых обнаружены нарушения

ℹ️

Группы с результатами можно разворачивать и сворачивать, чтобы детально

изучить каждое нарушение или скрыть неактуальные на данный момент

предупреждения.

alt

Создание собственных правил

Если встроенных и дополнительных правил недостаточно, вы можете разработать собственные правила анализа кода.

Подробная инструкция по созданию пользовательских правил доступна в разделе Создание правил анализа кода.