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-файл. Это позволяет стандартизировать проверки во всей команде и использовать единые правила.

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

  1. Откройте Студию и перейдите в меню АнализНастройки.
  2. Настройте правила по своему усмотрению:
    • Включайте/отключайте нужные правила
    • Изменяйте параметры (пороговые значения, регулярные выражения и т.д.)
  3. Нажмите кнопку Экспорт и укажите имя файла (например, rules.json).
ℹ️

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

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

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

  1. Откройте проект в Студии.
  2. Перейдите в меню АнализНастройки.
  3. Нажмите кнопку Импорт и выберите JSON-файл с правилами.
  4. Запустите анализ через меню АнализАнализировать проект или АнализАнализировать процесс.

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

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

  • Заголовок группы — код и наименование правила
  • Количество нарушений — сколько раз правило было нарушено
  • Список файлов — в которых обнаружены нарушения
ℹ️

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

alt

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

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

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

Last updated on