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Обязательные пакетыПроектОшибкаВ проекте отсутствуют пакеты, которые требуются вашей организации. Правило имеет параметр “Обязательные пакеты”, где можно через запятую перечислить названия таких пакетов

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

Если вы хотите расширить встроенный список правил, то установите в Студию NuGet-пакет 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

Создание правил анализа

Вы можете разработать собственные правила анализа кода согласно этой инструкции.