Skip to Content

Описание структуры БД ltools

__EFMigrationsHistory

Системная[1] таблица с миграциями

п/п

Наименование поляДопускает NULLТип данныхОписание
MigrationIdNOnvarchar
ProductVersionNOnvarchar

Agents

RDP-пользователи[2]

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
AdminNameYESnvarcharЛогин RDP-пользователя. Не обязательно администратора. Учетка, под которой запускается робот для варианта удержания RDP-сессии для случая удержания RDP-сессий внешней службой. Должен совпадать с локальной/доменной учеткой RDP-пользователя
AdminPasswordYESnvarcharПароль RDP-пользователя
WorkerIdNOintМашина робота (FK)
NotificatedYESbitНе используется. Оставлено для совместимости со старыми версиями
KeepRDPSessionNObitПоддерживать активной RDP-сессию. Флаг устанавливается вручную в Оркестраторе, или при запуске робота автоматически, если робот развернут под RDP-пользователем.
ConnectedNObitПризнак, что RDP-сессия активна
ConnectedChangedAtYESdatetime2Дата изменения состояния RDP-сессии, например отключилась/подключилась
ConnectedUpdatedAtYESdatetime2Дата обновления состояния RDP-сессии при периодическом опросе для её поддержания. Не обязательно переключение типа отключилась/подключилась, дата срабатывания периодического опроса
AuthenticationLevelNOintRDP-параметр1
ColorDepthNOintRDP-параметр
DesktopHeightNOintRDP-параметр
DesktopWidthNOintRDP-параметр
EnableCredSspSupportNObitRDP-параметр
NegotiateSecurityLayerNObitRDP-параметр
RdpPortYESintСпецифический (отличается от по умолчанию) порт для RDP
NeedForLogOffNObitСигнал разлогинить пользователя после закрытия его RDP-сессии. Отключение RDP-сессии не разлогинивает пользователя, занятые им ресурсы удерживаются. Этот сигнал позволяет Оркестратору именно разлогинить пользователя, что освободит занятые пользователем ресурсы
LogOffStartedAtYESdatetime2Дата старта команды разлогона RDP-пользователя
LogOffCompletedAtYESdatetime2Дата завершения команды разлогона RDP-пользователя
LogOffSuccessYESbitРезультат завершения команды разлогона RDP-пользователя
AttemptLogOffNOintПопытка разлогона
AttemptStartLogOffNOintПопытка отправки команды разлогона в Агент
ConnectedFlickersCountNOintСчетчик постоянных переключений (на основе сравнения ConnectedChangedAt и текущей даты, разность задается в конфиге).; Если доходит до некоторого значения (задается в конфиге), является признаком мерцания RDP-сессии.; Тогда устанавливается флаг ConnectedFlickers
ConnectedFlickersNObitФлаг мерцания RDP-сессии. По этому флагу выбираются мерцающие RDP-сессии для виджета на главной
UserProfileLoadedNObitПризнак загрузки профиля пользователя. Если сессия открылась, еще может не прогрузиться профиль; (с AD-пользователями это иногда занимает много времени). А без прогруженного профиля работать не будет; запуск Windows-task (75%)
NodeIdYESintИдентификатор ноды, которая меняла запись

  1. Здесь и далее из документации к библиотеке подключения↩︎

Assets

Ресурс робота, централизованно хранящийся в Оркестраторе. Робот/Студия может писать/читать ресурс

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
NameYESnvarcharНаименование ресурса. При использовании равносильно имени переменной
ValueYESnvarcharЗначение (зашифрованное)
ValueTypeNOintТип значения
RobotIdYESintРобот-владелец (FK). Если не NULL, только робот-владелец имеет доступ1
ReadonlyNObitФлаг только для чтения
TenantIdYESnvarcharИдентификатор тенанта
DescriptionYESnvarcharОписание ресурса
CyberArkAccountIdYESnvarcharИдентификатор аккаунта
CyberArkActionTypeYESnvarcharТип хранилища CyberArk (устар.)
CyberArkIsUseYESbitТип хранилища CyberArk (устар.)
CyberArkMachineYESnvarcharТип хранилища CyberArk (устар.)
CyberArkReasonYESnvarcharТип хранилища CyberArk (устар.)
CyberArkTicketIdYESnvarcharТип хранилища CyberArk (устар.)
CyberArkTicketingSystemNameYESnvarcharТип хранилища CyberArk (устар.)
CyberArkVersionYESintТип хранилища CyberArk (устар.)
ExtStoreTypeYESintТип внешнего хранилища
LockTimeoutYESintТаймаут (сек) блокировки
LockTypeYESintТип блокировки
RobotLockAtYESdatetime2Дата блокировки
RobotLockIdYESintЗаблокировавший робот
RobotLockUserIdYESnvarcharЗаблокировавший аттендед-робот

  1. Устаревшее. Связь с роботами через таблицу AssetRobots↩︎

AssetRobots

Назначение ресурсов отдельным роботам. Только эти роботы (и студия) имеют доступ к ресурсам

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
RobotIdYESintРобот-владелец (FK). Если не NULL, только робот-владелец имеет доступ
AssetIdNObitФлаг только для чтения
KeyYESnvarchar

Assignments

Задания (для автоматического запуска проектов на роботах)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
NameYESnvarcharНаименование
DescriptionYESnvarcharПодробное описание
RpaProjectIdNOintRPA-проект (FK)
ScheduleIdYESintНе используется
LockAtYESdatetime2Системное
TenantIdYESnvarcharИдентификатор тенанта
VersionNOintСистемное
NodeLockYESintСистемное
SignalYESintСистемное
SignalCreatedAtYESdatetime2Системное
StartedAtYESdatetime2Дата запуска задания. Не робота по задания, а именно задания. Альтернатива – задание не запущено
StatusNOint

Состояние задания (enum).

New = 0, Running = 1,Complete = 2, Paused = 3

FiredAtYESdatetime2Дата срабатывания триггера (одного из многих) задания
NextFiredAtYESdatetime2Следующая дата срабатывания триггера. Только для периодических триггеов
StateChangedAtYESdatetime2Дата изменения состояния задания
CountRobotsYESintКоличество роботов, которые одновременно запустятся по заданию. По умолчанию – один
WithTriggersYESbitФлаг (избыточен, оптимизация), что задание с триггерами. Иначе задание с ручным запуском
AutomaticApplyActiveRpaProjectNObitЕсли у проекта задания изменится признак активности, автоматически будет в задании использоваться активная версия проекта
AllowOverlayNObitРазрешить наложение
IsMassOperationYESbitЗадание остановлено в результате массовой операции:; True - да (и статус Пауза ); False - нет; null - для совместимости с версией, где триггеров еще нет
UserFolderIdNOintПапка пользователя, в контексте которой произощло событие; Для кэширования списка Id роботов папки

AssignmentSchedulerSignalNodeConfirms

Системная таблица. Запросы к ней не рекомендуются, за исключением особых случаев разбора ошибок, согласованных с Вендором

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
NodeYESnvarcharИдентификатор ноды WebApi
ConfirmNObitПодтверждение
CreatedAtYESdatetime2Дата/время создания записи
UpdatedAtYESdatetime2Дата/время обновления записи
AssignmentIdNOint

AssignmentVariables

Привязка переменных проекта к заданию

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
AssignmentIdNOintЗадание (FK)
RpaProjectVariableIdNOintПроект (FK)
ValueYESnvarcharЗначение, которое имеет переменная проекта на задании

BlackWhiteIpStudioRules

Запись ЧБ списка IP-шников для запуска Primo.Studio

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ChangedAtYESdatetime2Дата изменения записи
ComputerNameMaskYESnvarcharМаски имен машин
CreatedAtNOdatetime2Дата создания записи
DescriptionYESnvarcharОписание
IpAddressFromIdYESint-
IpAddressMaskIdYESint-
IpAddressToIdYESint-
IsWhiteRuleNObitРазрешено (правило из белого списка)
NameNOnvarcharНаименование
RuleTypeNOintТип ЧБ правила: диапазн IP адресов, IP маска подсети или маска имен машин
TenantIdYESnvarcharИдентификатор тенанта

BusyRobotLicenseItems

Системная таблица. Для оптимизации. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
RobotKeyYESnvarchar
CreatedAtNOdatetime2

BusyRobotLicenses

Системная таблица. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ValueYESnvarcharЗашифроанный json с массивом занятых лицензий
VersionYESuniqueidentifierСлужебное поле для разруливания конкурентного доступа

BusyStudioLicenses

Системная таблица. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ValueYESnvarchar

ConfigHash

Системная таблица. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
NodeNOnvarcharИдентификатор ноды WebApi
HashNOnvarcharВычисляется на основе конкатенации всех файлов конфига в алфавитном порядке
PreviousHashYESnvarcharПрошлое значение Hash
UpdatedAtYESdatetime2Дата изменения. Устанавливается, если с прошлого запуска хэш изменился. Является инцедентом безопасности

CurrentSystemParameters

Системная таблица. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
DateTimeValueYESnvarcharТекущее системное время

DeployTemplates

Шаблон развертывания робота

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarchar
NoConsoleNObit
LogToFileNObit
LogCustomToFileNObit
LogMessageTypesYESint
LogFormatYESint
ThreadsCountYESint
ThreadStartIndexYESint
ThrPriorityYESint
AppPriorityYESint
MinThreadsYESint
StartupPositionYESint
DebugOptionsYESint
DisabledNObit
TenantIdYESnvarcharИдентификатор тенанта
LogIntervalYESintИнтервал отправки лога в оркестратор (мсек)
LogPackSizeYESintРазмер пачки лога

ExchangeQueueRobotPermissions

Права робота на очередь обмена данными. Если задано, права определяются по этой таблице

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
ExchangeQueueIdNOuniqueidentifierОчередь обмена данными (FK)
RobotIdNOintРобот (FK)
ReadNObitМожно читать
WriteNObitМожно писать

ExchangeQueues

Очередь обмена данными

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
NameNOnvarcharНаименование
DescriptionYESnvarcharОписание
PublicNObitЕсли очередь публичная, она доступна для записи/чтения всем Роботам
CreatedAtNOdatetime2Дата создания очереди
CreatedRobotNameYESnvarcharСоздавший очередь Робот
ChangedRobotAtYESdatetime2Дата/время последнего изменения очереди Роботом
ChangedRobotNameYESnvarcharПоследний изменивший очередь Робот
TenantIdYESnvarcharИдентификатор тенанта
TTLYESintВремя жизни элемента очереди (сек.)
MaxRetrayYESintМаксимальное количество повторных помещений элемента в очередь при фиксации статуса ошибка
RetrayTypeYESintТип повторного помещения элемента в очередь при ошибке. Error = 1, BusinesError = 2
AnalyticsSchemaYESnvarcharJSON-схема, если задана, элемент должен соответствовать ей
OutputSchemaYESnvarcharJSON-схема, если задана, элемент должен соответствовать ей
SpecificSchemaYESnvarcharJSON-схема, если задана, элемент должен соответствовать ей
NaturalKeyUniquenessYESintТип уникальности натурального (пользовательского) ключа элемента очереди обмена данными. Local = 0 (проверка на уникальность внутри очереди), Global = 1
RobotCanDeleteOnlyItsOwnItemNObitРобот может удалять только свои (которые он создал) элементы очереди
ValuesRobotLockTimeoutYESintТаймаут (сек), после которого снимается блокировка элементов очереди
EncryptedNObitВсе элементы очереди зашифрованы
PhysicalRemovalNObitЕсли True, то при удалении очередь и все ее элементы физически удаляются из БД, иначе - логическое удаление.
ChangedAttendedUserYESnvarcharДля аттендед-робота - последний изменивший очередь пользователь
FIFOLockedYESint(устар.)
FIFORetryYESintКоличество ретраев при извлечении по FIFO при FIFOLockedType.NoWait; Если не задан, аналогичный параметр берется из конфига
PrefetchBufferResetIntervalYESintИнтервал (мсек) сброса PrefetchBuffer; Если не задан, аналогичный параметр берется из конфига
PrefetchDepthYESintГлубина предварительной выборки для PrefetchBuffer.; Если не задан, аналогичный параметр берется из конфига
PrefetchOffsetYESintОтступ предварительной выборки для PrefetchBuffer. Параметр применяется случайным образом, если он больше 0.; Чтобы разные ноды имели более высокий шанс заполнить свой PrefetchBuffer при его одновременном заполнении; (для уменьшения вероятности попасть в заблокированный жругой нодой элементы очереди); Если не задан, аналогичный параметр берется из конфига
SpeedModeIntervalYESintИнтервал (мсек) между 2-мя последовательными запросами к чтению из очереди по FIFO,; определяющий переключение в скоростной режим (используется PrefetchBuffer); Если не задан, аналогичный параметр берется из конфига

ExchangeQueueStatisticAvgs

Среднее время обработки элемента очереди по окну. Ширина окна задается в конфиге. Обновляется в фоновой службе через очередь в памяти

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
AvgTimeYESnumericСреднее время обработки элемента очереди (мсек)
CreatedAtNOdatetime2Дата/время создания окна
ExchangeQueueIdNOuniqueidentifier-
TenantIdYESnvarchar-
UpdatedAtYESdatetime2Дата/время обновления окна
WindowBottomAtNOdatetime2Левая граница окна

ExchangeQueueStatistics

Общая статистика очереди для обмена данными между Роботами. Обновляется в фоновой службе через очередь в памяти

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
CountAllNOintВсего элементов
CountBusinessErrorNOintБизнес-ошибка
CountEntryPrefetchBufferNOintВход в PrefetchBuffer (возможно, только его формирование)
CountErrorNOintОшибка общего вида
CountInProgressNOintЭлемент прочитан (псевдостатус)
CountNewNOintЭлемент добавлен в очередь, еще не прочитан (псевдостатус)
CountPeekErrorNOintОшибка извлечения из очереди
CountPrefetchBufferErrorNOintОшибка формирования PrefetchBuffer
CountReadNoSpeedModeNOintЧтение в обычном режиме
CountReadPrefetchBufferNOintЧтение из PrefetchBuffer
CountRemovedYESintКол-во элеиентов очереди, помеченных как удаленные (null для очередей с физическим удалением элементов)
CountRetryNOintПовтор
CountSuccessNOintУспешно
TenantIdYESnvarchar-
UpdatedAtYESdatetime2Дата/время обновления

ExchangeQueueValueEvents

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

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNObigintPK
ExchangeQueueValueIdNOuniqueidentifierЭлемент очереди (FK)
CreatedAtNOdatetime2Дата создания
TypeNOintSuccess = 0 (Завершилось успешно), Error = 1 (Завершилось с ошибкой. Ошибка общего вида), BusinessError = 2 (Завершилось с бизнес-ошибкой)
TextYESnvarcharТекст, который может сопровождать событие
ExchangeQueueIdNOuniqueidentifierОпционально может также являться ключем секционирования

ExchangeQueueValueMetadata

Дополнительные данные элемента очереди в виде словаря Ключ-Значение

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
ExchangeQueueValueIdNOuniqueidentifierЭлемент очереди (FK)
KeyNOnvarcharКлюч
ValueNOnvarcharЗначение
CreatedAtNOdatetime2Дата создания
ExchangeQueueIdNOuniqueidentifierОпционально может также являться ключем секционирования

ExchangeQueueValuePrefetchReadeds

Кэш в БД для предварительно извлеченного и прочитанного элемента, чтобы при изменении его состояния, если PrefetchBuffer еще не синхронизирован с БД, понимать, что элемент уже извлечен, и кем (Оркестраторный Робот/Студия или Аттендед-робот) он извлечен. В отношении 1-1 с ExchangeQueueValue. Таблица полностью очищается в ExchangeQueuePrefetchBufferService при синхронизации PrefetchBuffer с БД

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierСовпадает с Id из ExchangeQueueValue
ReadedAttendedUserYESnvarcharДля аттендед-робота - пользователь, который прочитал элемент очереди
ReadedRobotIdYESintРобот, который взял (прочитал) в обработку элемент очереди; Только один робот может взять элемент очереди в обработку

ExchangeQueueValues

Элемент очереди

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
ExchangeQueueIdNOuniqueidentifierОчередь (FR)
ValueNOnvarcharЗначение (зашифрованное)
CreatedAtNOdatetime2Дата создания
CreatedRobotIdYESintСоздавший робот (FK)
DeadlineAtYESdatetime2Дата, после которой элемент будут не доступен
LastEventIdYESbigintПоследнее событие (FK)
PostponeAtYESdatetime2Дата, до которой элемент не доступен
ReadedRobotAtYESdatetime2Дата прочтения элемента очереди роботом или студией. С позиции FIFO этот элемент считается удаленным из очереди, но физически элемент не удаляется
ReadedRobotIdYESintПрочитавший робот (FK)
RetrayNOintКоличество повторных помещений элемента в очередь при фиксации статуса ошибка
DeletedAtYESdatetime2Дата удаления элемента очереди (не обязательно роботом)
MetadataYESnvarcharДополнительные данные в JSON (продублировано)
NaturalKeyYESnvarcharНатуральный (пользовательский) идентификатор (ключ) элемента очереди. В зависимости от настроек очереди: может не проверяться на уникальность, может проверяться на уникальность внутри очереди, может проверяться на уникальность глобально
ExchangeQueueValuesRobotLockIdYESuniqueidentifierБлокировка элемента
EncryptedNObitЭлемент зашифрован и принадлежит зашифрованной очереди
PriorityYESintПриоритет - сначала сортировка по приоритетам, потом по дате - при извлечении из очереди по FIFO или чтении с фильтром
RootIdYESuniqueidentifierКорневой элемент, с которого началось повторение элементов в очереди при ошибке. Для оптимизации построения цепочки повторенных элементов, чтобы рекурсивно не строить по ParentId
CreatedAttendedUserYESnvarcharДля аттендед-робота - пользователь, который создал элемент очереди
DeletedReasonYESintПричина удаления
InProgressTimeoutYESintТаймаут (сек) по истечении которого элементы очереди; в статусе InProgress считаются просроченными
PrefetchedAtYESdatetime2Дата предварительной выборки во временный буфер.; Используется в высокоскоростном режиме чтения по FIFO
PrefetchedNodeYESintИдентификатор ноды, запросившей выборку во временный буфер
ReadedAttendedUserYESnvarcharДля аттендед-робота - пользователь, который прочитал элемент очереди

ExchangeQueueValueTags

Тэг элемента очереди. Тэг из справочника тегов

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
ExchangeQueueValueIdNOuniqueidentifierЭлемент очереди (FK)
TagIdNOuniqueidentifierЭлемент справочника тегов (FK)
CreatedAtNOdatetime2Дата создания

ExchangeQueueValuesRobotLocks

Блокировка элементов очереди роботом. Заблокированному элементу ставится ключ блокировки (Id). Другой робот не может обработать такой элемент - изменить статус, удалить и т.п. Ключ блокировки формирует робот. По этому ключу он разблокирует занятые элементы. Блокировка снимается по таймауту (настройка очереди ValuesRobotLockTimeout) или через UI Оркестратора

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifierPK
RobotIdYESintЭлемент справочника тегов (FK)
CreatedAtNOdatetime2Дата создания
ExpiredAtNOdatetime2Дата окончания блокировки по таймауту
AttendedUserYESnvarcharДля аттендед-робота - пользователь, создавший блокировку

FolderObjects[3]

Объект папки

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ObjectTypeNOint
FolderIdNOint
RpaProjectIdYESint
RobotIdYESint
AssignmentIdYESint
WorkerIdYESint
AgentIdYESint
ExchangeQueueIdYESuniqueidentifier
AssetIdYESint
DeployTemplateIdYESint
RobotGroupIdYESint
ScheduleIdYESint
ProductionCalendarIdYESint

FolderObjects2

Объект общей некорневой папки

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
AgentIdYESint
AssetIdYESint
AssignmentIdYESint
DeployTemplateIdYESint
ExchangeQueueIdYESuniqueidentifier
FolderIdNOint
ObjectTypeNOint
ProductionCalendarIdYESint
RobotGroupIdYESint
RobotIdYESint
RpaProjectIdYESint
ScheduleIdYESint
WorkerIdYESint

Folders[4]

Виртуальная папка в оркестраторе

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameNOnvarchar
DescriptionYESnvarchar
TenantIdYESnvarchar
ParentIdYESint
DefaultNObit

Folders2

Виртуальная папка в оркестраторе (новая реализация, не Workspace, общая папка). Такая папка является механизмом разделения прав пользователя на объекты: RPA-проекты, роботы, задания и т.п. Может существовать отдельно от пользователя. Корневая папка для тенанта физически не существует. Считается, что объект принадлежит корневой папке, если он больше не принадлежит никакой другой не корневой папке. Всем объектам, кроме роботов и заданий, разрешено находиться в нескольких не корневых папках одновременно

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameNOnvarcharНаименование
ParentIdYESintРодительская папка, для структуризации в виде дерева
TenantIdYESnvarcharИдентификатор тенанта
DescriptionYESnvarcharОписание

FolderUsers[5]

Пользователь папки

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UserIdNOnvarchar
TenantIdYESnvarcharИдентификатор тенанта
FolderIdNOint
OwnerNObitВладелец папки
SelectedNObitПризнак того, что папка сейчас выбрана пользователем для работы
FromUserIdYESnvarcharОт какого пользователя предоставлен доступ к папке

FolderUsers2

Пользователь общей папки. Права на Root-папку в таблице RootFolderUsers2

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
FromUserIdYESnvarcharОт какого пользователя предоставлен доступ к папке
UserIdNOnvarchar-
TenantIdYESnvarcharИдентификатор тенанта
FolderIdNOint
OwnerNObitВладелец папки - пользователь, который её сам создал; У владельца полные права на паку
SelectedNObitПризнак того, что папка сейчас выбрана пользователем для работы; Фильтрация к объектам будет применяться на основе этой папки
AccessTypeYESintТип переданных прав на папку - чтение, запись и т.д., если пользователь не является её владельцем

GeneralSettings

Системная таблица. Использовать нельзя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
RpaProjectQueueProcessingTypeNOintПараметры очереди проектов на выполнение
TimeOffsetNOintСмещение времени в часах для дефолтного тенанта
EmailYESnvarchar
PasswordYESnvarchar
Pop3YESnvarchar
Pop3PortYESint
RequireAuthenticateYESbit
UseSslYESbit
LoginYESnvarcharЕсли задано, используется вместо Email
RemoveReceivedYESbitУдалять письмо после получения
UseStandartNotSSLPortYESbitПоставить true, если почтовик настроен на один из стандартных портов (SMTP:25 or 587,POP3:110,IMAP:143); (не зависит от настройки UseSsl); Подробнее: https://github.com/jstedfast/MailKit/blob/master/FAQ.md#SslHandshakeException
ImapFolderYESnvarchar
ImapYESnvarchar
AgentTimeoutNOintТайм-аут обращения к агенту
AgentPortNOintПорт агента
AgentHttpsNObitИспользовать Https при обращении к агенту
DisabledDefaultTenantNObitОтключение дефолтного тенанта. Авторизация в нем будет не возможна.; Пользовательский интерфейс для изменения этого поля не предусмотрен, только через БД.
ImapPortYESint

IncomingEmailLogs

Системная таблица

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
TriggerIdNOint
MessageIdNOnvarcharИдентификатор письма на сервере
SubjectNOnvarcharТема письма
FromNOnvarcharEmail отправителя письма
CreatedAtNOdatetime2Дата создания записи
DuplicateNObitПисьмо забиралось с почтового сервера не однократно
TriggeredNObitПисьмо вызвало срабатывание триггера
NodeNOnvarchar

IncomingEmails

Настойки триггера с типом «Email»

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
TenantIdYESnvarcharИдентификатор тенанта
EmailNOnvarcharEmail
CreatedAtNOdatetime2Дата создания записи
UpdatedAtYESdatetime2Дата изменения записи
PasswordNOnvarchar
Pop3NOnvarchar
Pop3PortNOint
RequireAuthenticateNObit
UseSslNObit
UseStandartNotSSLPortNObitПоставить true, если почтовик настроен на один из стандартных портов (SMTP:25 or 587,POP3:110,IMAP:143); (не зависит от настройки UseSsl)
ImapPortYESint
ImapFolderYESnvarchar
ImapYESnvarchar
EWSUrlYESnvarcharАдрес сервера ExchangeWebService, обязательно заполняется в формате https://servername/EWS/Exchange.asmx,; например: https://ms-exchange.s1.primo1.orch/EWS/Exchange.asmx. Перед добавлением необходимо открыть ссылку в браузере; и убедиться что сервис доступен.
RemoveReceivedNObitУдалять письмо после получения
LoginYESnvarcharЕсли задано, используется вместо Email

IncomingEmailWindowLogs

Системная таблица

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
TriggerIdNOint
MinIndexNOintМинимальный индекс письма
MaxIndexNOintМаксимальный индекс письма
SizeNOintРазмер окна - максимальное количество писем, забираемых за один раз
IntevalInSecondsNOintИнтервал опроса почтового сервера
CreatedAtNOdatetime2Дата создания записи
DuplicatesNOintКоличество дублей
OffsetNOintСмещение окна
NodeNOnvarchar

IPv4Addresses

Упрощенное представление IpAddress (для ЧБ списка IP-шников для запуска Primo.Studio)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
AddressYESnvarchar

IPv4Masks

Представление IP маски (для ЧБ списка IP-шников для запуска Primo.Studio)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
MaskYESnvarchar

LoadTests[6]

Нагрузочный тест

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharНаименование
DescriptionYESnvarcharОписание
CreatedAtNOdatetime2Дата создания
UpdatedAtYESdatetime2Дата изменения
LoadTestScopeIdNOintСценарий нагрузочного тестирования
RpaProjectIdNOintRpa-проект с нагрузочным тестированием
LoadTestScheduleIdNOintРасписание нагрузочного тестирования
ParentIdYESintРодительский тест
FiredAtYESdatetime2Дата срабатывания триггера шедулера
LockAtYESdatetime2Блокировка (служебное поле) , чтобы одновременно несколько инстансов не поставили в очередь выполнения Rpa-проект этого теста
NodeLockYESintИдентификатор ноды, заблокировавшей тест в БД
VersionNOintСлужебное поле для разруливания конкурентного доступа

LoadTestScheduleItemActiveRobots[7]

Робот активности элемента расписания нагрузочного теста при выполнении теста

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
LoadTestScheduleItemActiveIdNOint
RobotIdNOint
DeltaThreadsYESintИзменение количества потоков
CreatedAtNOdatetime2Дата добавления робота
DeletedAtYESdatetime2При снижении количества потоков (освобождении роботов) сразу их не удаляем, оставляем для мониторинга

LoadTestScheduleItemActives[8]

Активность элемента расписания нагрузочного теста при выполнении теста

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
LoadTestScheduleItemIdNOint
LoadTestIdNOint
FiredAtYESdatetime2Дата срабатывания

LoadTestScheduleItems[9]

Элемент расписания нагрузочного теста

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
LoadTestScheduleIdNOint
DurationNOtimeПродолжительность
CreatedAtNOdatetime2Дата создания
DeltaThreadsNOintИзменение количества потоков
IterationIntervalNOintИнтервал между итерациями

LoadTestSchedules[10]

Расписание нагрузочного теста

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharНаименование
DescriptionYESnvarcharОписание
CreatedAtNOdatetime2Дата создания
UpdatedAtYESdatetime2Дата изменения
RobotConstThreadsYESintОдинаковое для всех роботов количество потоков
RobotSoftKillNObitИспользовать мягкое завершение роботов
DefaultKXYESintКоэффициент трансформации по умолчанию графика расписания по X (от 1 до 100)
DefaultKYYESintКоэффициент трансформации по умолчанию графика расписания по Y (от 1 до 100)
TenantIdYESnvarcharИдентификатор тенанта

LoadTestScopes[11]

Сценарий нагрузочного тестирования - контейнер нескольких нагрузочных тестов

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharНаименование
DescriptionYESnvarcharОписание
TenantIdYESnvarcharИдентификатор тенанта
SignalYESintУправляющий сигнал на изменение состояния сценария нагрузочного тестирования
SignalCreatedAtYESdatetime2Дата/время создания управляющего сигнала на изменение состояния сценария нагрузочного тестирования
StartedAtYESdatetime2Дата/время запуска
StatusNOintСостояние
StateChangedAtYESdatetime2Дата/время изменения состояния
WithTriggersNObit

True - запуск по триггеру

False - ручной запуск

LoadTestScopeSchedulerSignalNodeConfirms[12]

Подтверждение получения сигнала для шедулеров сценариев нагрузочного тестирования у ноды

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
NodeYESnvarcharИдентификатор ноды WebApi
ConfirmNObitПодтверждение
CreatedAtYESdatetime2Дата/время создания записи
UpdatedAtYESdatetime2Дата/время обновления записи
LoadTestScopeIdNOint

LoadTestScopeTriggers[13]

Триггер для сценария нагрузочного тестирования

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
TypeNOintТип триггера
CreatedAtNOdatetime2Дата создания триггера
UpdatedAtYESdatetime2Дата изменения триггера
LoadTestScopeIdNOint
FiredAtYESdatetime2Дата срабатывания триггера
FiredAtEmailYESdatetime2Только для триггера TriggerType.Email - дата получения новых писем
LastErrorMsgYESnvarcharСообщение об ошибке при последнем срабатывании
ScheduleIdYESintРасписание
NextFiredAtYESdatetime2Дата следующего запуска триггера шедулера
IncomingEmailIdYESint
IncomingFromYESnvarchar
IncomingSubjectYESnvarchar
IncomingEmailWindowSizeYESintМаксимальное количество писем, забираемых за один раз
IncomingEmailIntevalInSecondsYESintИнтервал запросов к почтовому серверу
ByLoadTestScopeIdYESint
LockAtYESdatetime2Блокировка (служебное поле), чтобы одновременно несколько инстансов не поставили в очередь выполнение проекта задания этого триггера
NodeLockYESintИдентификатор ноды, заблокировавшей триггер в БД
VersionNOintСлужебное поле для разруливания конкурентного доступа

LogsDump

Системная таблица

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
StartedAtYESdatetime2
CompletedAtYESdatetime2
TotalFilesCountYESint
CompletedCountYESint

Nodes

Информация о ноде кластера WebApi. Пишется самой нодой

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
CreatedAtNOdatetime2Дата создания записи о ноде
UdatedAtYESdatetime2Дата изменения записи о ноде. Если запись не обновляется в течение таймаута,; остальные ноды считают эту ноду выведенной из кластера
NodeIdNOintИдентификатор ноды. Берется из конфигурационного файла ноды WebApi

NuGetTasks

Задача для NuGet-сервера

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
PackageFileNameYESnvarcharИмя файла пакета, TestLib.5.0.0.nupkg, который требуется опубликовать
CreatedAtNOdatetime2Дата создания задачи
StartedAtYESdatetime2Дата старта задачи
FileSizeNObigintФактически записанный на диск размер файла
ContentLengthNObigintContentLength передаваемый в заголовке http на upload файла.; Совместно с FileSize используется для определения процента загрузки
UploadedAtYESdatetime2Дата/время загрузки версии дистрибутива.; Проставляется после полного скачивания файла на диск
CompletedAtYESdatetime2Дата выполнения задачи; Выполненные задачи через некоторое время удаляются
CompletedSuccessYESbitРезультат вата выполнения задачи
TypeNOintТип задачи
PackageIdYESnvarcharID пакета, который требуется удалить
PackageVersionYESnvarcharВерсия пакета, который требуется удалить
ErrorMsgYESnvarcharПоследняя ошибка при выполнении задачи

ProductionCalendars

Производственный календарь

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
YearYESintГод
DateNOdatetime2Дата
TypeNOintWorking = 0 (рабочий), NoWorking = 1 (не рабочий), PreHoliday = 2 (предпраздничный)

ProductionCalendar2

Производственный календарь шапка (множественные календари на один год)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
YearNOintГод
NameNOnvarcharНаименование
DescriptionNOnvarcharОписание
TenantIdYESnvarcharИдентификатор тенанта
PriorityNOintПриоритет

ProductionCalendar2Items

Производственный календарь дни (множественные календари на один год)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ProductionCalendarIdNOint
DateNOdatetime2День года
TypeNOintТип дня
TenantIdYesnvarcharИдентификатор тенанта

Rdp2AddressFilters

Производственный календарь дни (множественные календари на один год)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UpdatedAtYESdatetime2
CreatedAtNOdatetime2
ItemNOnvarcharЭлемент AddressFilter - IP или имя машины. Натуральный ключ
HostNOnvarcharIP сервера с RDP2, на котором настроен AddressFilter

RobotAgentSessions

Системная (Робот, удерживающий RDP-сессию)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
AgentIdNOint
RobotIdNOint
CreatedAtNOdatetime2
ReleasedAtYESdatetime2Дата освобождения роботом RDP-сессии
ProjectIdNOintУ проекта могут быть параметры, влияющие на открытие/закрытие сессии

RobotDeployTrackings

Системная (Трекинг деплоя Робота)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
CreatedAtNOdatetime2Дата вставки записи
RobotIdNOintРобот
StageNOintСтадия деплоя
SuccessNObitРезультат (успешно/не успешно)
ErrorMsgYESnvarcharТекст сообщения об ошибке
PortYESintАктуальный порт Робота, который зарезервирован для него при деплое

RobotDistrExistsNodeConfirms

Системная (Подтверждение наличия дистрибутива Робота в папке дистрибутива)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
NodeYESnvarcharИдентификатор ноды WebApi
ExistsNObitДистрибутив существует в папке
CreatedAtYESdatetime2Дата/время создания записи
UpdatedAtYESdatetime2Дата/время обновления записи
RobotDistrIdNOuniqueidentifier
ExistsUpdatedAtYESdatetime2Дата/время обновления записи для Exists = true

RobotDistrs

Системная (Дистрибутив Робота)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
FileSizeNObigintФактически записанный на диск размер файла
ContentLengthNObigintContentLength передаваемый в заголовке http на upload файла. Совместно с FileSize используется для определения процента загрузки
UploadedAtYESdatetime2Дата/время загрузки версии дистрибутива.Проставляется после полного скачивания файла на диск
VersionYESnvarcharВерсия дистрибутива
ActivatedYESbitАктивирован
ActivatedAtYESdatetime2Дата/время активации
X64YESbitПлатформа (x64, x86)
DescriptionYESnvarcharОписание. Основное назначение - не путать дистрибутивы одинаковой версии
LinuxNObit
NodesDesynchronizationAtYESdatetime2Долгое время от какой-либо ноды нет подтверждения
NodeSequentialSwitchingAtYESdatetime2В серии последовательных согласований (задается в конфиге) подтверждение постоянно меняется

RobotGroupItems

Привязка робота к группе

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
GroupIdNOintГруппа (FK)
RobotIdNOintРобот (FK)

RobotGroups

Группа робота

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintPK
NameNOnvarcharНаименование
DescriptionYESnvarcharОписание
TenantIdYESnvarcharИдентификатор тенанта

Robots

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarchar
WorkerIdNOint
KeyYESnvarchar
PortYESnvarchar
RobotUserNameYESnvarchar
RobotPasswordYESnvarchar
DeploymentNOint
CurrentPlatformYESint
CurrentTemplateIdYESint
LangYESint
CurrentProjectIdYESintТекущий проект робота
CurrentProjectAtYESdatetime2Дата назначения текущего проекта Оркестратором
CurrentProjectStartedAtYESdatetime2Дата запуска текущего проекта Роботом
StatusNOintСтатус Робота
StatusDateNOdatetime2
DisabledNObit
VersionYESnvarcharВерсия дистрибутива
EditionNOintРедакция
CurrentProjectCompletedNoErrorsYESbitВыполнение текущего проекта завершено Роботом без ошибок
CurrentProjectCompletedAtYESdatetime2
LockAtYESdatetime2Признак блокировки Оркестратором (не "приложения на машине Робота", а "сущности в БД Оркестратора")
SoftKillSendAtYESdatetime2Дата, когда Оркестратор попросил Робота убиться
LastStartOperationKeyYESuniqueidentifierИдентификатор последней операции старта
TenantIdYESnvarcharИдентификатор тенанта
CurrentAssignmentIdYESintЗадание, в рамках которого назначен роботу проект на выполнение
DeploymentErrorYESnvarchar
AgentLockAtYESdatetime2Признак блокировки Робота Агентом
AgentIdYESint
PushStatusNObit

Если false, Оркестратор получает Status Робота через его опрос

Если true, Агент собирает Status Роботов и пачкой отправляет в Оркестратор

StartErrorNOintТип ошибки при старте робота
HardKillStartedAtYESdatetime2Дата старта команды принудительного останова робота
EngineVersionNOint
AliveIntervalYESintИнтервал (мсек), черезкоторый робот шлет свое состояние; Если не задан, используется из конфигурационного файла
LinuxYESbitДистрибутив для Linux; Версия дистрибутива при этом может быть таже, что и для Windows
NodeIdYESintИдентификатор ноды, которая меняла запись
AdAuthNObitИспользуется AD-аутентификация (RDP-учетка или учетка машины робота)
UserNameYESnvarchar-
UserPasswordYESnvarcharПароль пользователя оркестратора. Должен совпадать с паролем из Users (там он не хранится)

RobotSoftKillSignals

Сигнал мягкого останова для робота (1-1 с таблицей Robots)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOintСовпадает с Id из Robots, связь 1-1
OperationKeyYESuniqueidentifier-
RobotKeyYESnvarcharНатуральный PK. Используется при опросе таблицы роботами, чтобы не делать запрос в таблицу Robots
CreatedtAtNOdatetime2-

RobotStartTrackings

Трекинг старта Робота

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
CreatedAtNOdatetime2Дата вставки записи
UpdatedAtYESdatetime2Дата изменения записи
RobotIdNOintРобот
StageNOintСтадия старта
SuccessNObitРезультат (успешно/не успешно)
ErrorMsgYESnvarcharТекст сообщения об ошибке
NumberRequestYESintНомер попытки обращения к роботу

RobotUnlockQueue

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

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UpdatedAtYESdatetime2
TenantIdYESnvarchar
IpYESnvarchar
RobotKeyYESnvarchar
CreatedAtNOdatetime2
UpdateCountYESint

RolePermissions

Права

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
RoleIdYESnvarcharИдентификатор роли из БД ltoolsidentity
JsonValueYESnvarcharСериализованное значение прав
CreatedAtNOdatetime2
UpdatedAtYESdatetime2

RootFolderUsers2

Права на Root-папку

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UserIdNOnvarchar-
TenantIdYESnvarcharИдентификатор тенанта
AccessTypeYESintТип прав на папку - чтение, запись и т.д.; Вариантом сбросить права является установить в null
FromUserIdNOnvarchar-

RpaProjectArchiveExistsNodeConfirms

Подтверждение наличия архива RPA-проекта в папке RPA-проектов

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
NodeYESnvarcharИдентификатор ноды WebApi
ExistsNObitДистрибутив существует в папке
CreatedAtYESdatetime2Дата/время создания записи
UpdatedAtYESdatetime2Дата/время обновления записи
RpaProjectArchiveIdNOint

RpaProjectArchives

RPA-проект

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
BodyYESvarbinary
ProjectIdYESintПри создании сначала на диск сохраняется файл архива, и только потом ему назначается ProjectId
ContentLengthNObigintContentLength передаваемый в заголовке http на upload файла
DescriptionYESnvarcharОписание
FileIdYESuniqueidentifier
FileSizeNObigintФактически записанный на диск размер файла
UploadedAtYESdatetime2Дата/время загрузки файла
TenantIdYESnvarcharИдентификатор тенанта
ProjectNameYESnvarcharНазвание проекта (извлекаем из файла проекта). Основное назначение - автоматически заполнить поле Название проекта
ProjectVersionYESnvarcharНомер версии (в соответствии с принятой системой нумерации версий у разработчиков проектов).
PreReleaseNObitПризнак, что версия является предрелизной.
VersionCommentsYESnvarcharКомментарий к текущей версии проекта (сырые данные, считываемые из архива с проектом при его загрузке в орк)
TagsAsStringYESnvarcharТэги (строка с разделителями ;) для текущей версии проекта (сырые данные, считываемые из архива с проектом при его загрузке в орк)
IdeaHubIdYESnvarcharИдентификатор шаблона проекта из IdeaHub (сырые данные, считываемые из архива с проектом при его загрузке в орк)
ParsedAtYESdatetime2Дата/время окончания обработки файла.

RpaProjectLaunches

Запуск Rpa-проекта

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
OperationKeyNOuniqueidentifierНатуральный ключ
ProjectIdNOint
RobotIdNOint
AssignmentIdYESint
StartedAtNOdatetime2Дата запуска
CompletedAtYESdatetime2Дата завершения
SuccessYESbitРезультат
KilledAtYESdatetime2Дата принудительного завершения через Оркестратор
TriggerIdYESint-
RobotStartedAtYESdatetime2Дата получение сигнала старта от робота
LaunchChainKeyYESuniqueidentifierКлюч цепочки запусков. Не используется для ручного запуска робота с проектом
ManualYESbitРучной запуск робота с проектом. Чтобы отличать от ручного помещения проекта в очередь проектов; Строго для AssignmentId = null
TimeoutAtYESdatetime2Освобождение робота по таймауту
RdpSessionStartedAtYESdatetime2Дата открытия RDP-сессии; Если загрузка профиля пользователя длится долго (дольше периода итерации в StartRobotCommandBusService),; то сначала установится эта дата. Иначе она будет пустая (тогда пользоваться UserProfileLoadedAt); Также эта дата установится, если ожидание загрузки профиля пользователя отключено в конфиге
UserProfileLoadedAtYESdatetime2Дата загрузки профиля пользователя. Профиль пользователя загружается обязательно после; открытия RDP-сессии; Не устанавливается, если ожидание загрузки профиля пользователя отключено в конфиге
ErrorAtYESdatetime2-
ErrorTypeYESint-
RepeatedYESbitБыл ли запуск повторен из UI орка (ручной запуск, но при этом AssignmentId может быть не null)
NodeIdYESintИдентификатор узла, занявшего записи
RdpSessionBeginAtYESdatetime2Дата начала открытия RDP-сессии. Чтобы по завершении можно было оценить затраченное на открытие; RDP-сессии/ожидание загрузки профиля пользователя время

RpaProjectLaunchVariables

Переменная Rpa-проекта, которую робот считает/запишет по OperationKey

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
RpaProjectLaunchIdNOintЗапуск Rpa-проекта
RpaProjectVariableIdNOintПеременная проекта
ValueYESnvarcharСтроковое представление значения
ReadedAtYESdatetime2
WrittedAtYESdatetime2

RpaProjectQueue

Состояние очереди проектов на выполнение - только для отображения в UI, в качестве реальной очереди используется RabbitMQ

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ProjectIdNOint
CreatedAtNOdatetime2
UpdatedAtYESdatetime2
LostNObit
PublishFailedNObit
OperationKeyYESuniqueidentifierИдентификатор операции
RobotIdYESintРобот, которому на выполнение назначен проект
InstanceCreatedIdYESint
InstanceUpdatedAtYESdatetime2
InstanceUpdatedIdYESint
ErrorMsgYESnvarcharТекст ошибки запуска
ErrorRobotIdYESintРобот, на котором произошел сбой запуска
ForceDeletedAtYESdatetime2Признак ручного (принудительного) удаления проекта из очереди
AssignmentIdYESintЗадание, в рамках которого проект назначается на выполнение
DurationLevelYESint
TriggerEventJsonYESnvarchar
ReadedAtYESdatetime2Дата извлечения из очереди без подтверждения
RepeatedYESbitПовторный запуск из UI Оркестратора
WorkerOverflowCountNOintКоличество повторных помещений в очередь по причине перегруженности машины робота
LaunchChainKeyNOuniqueidentifierКлюч цепочки запусков.
UserFolderIdNOintПапка пользователя, в контексте которой произощло событие; Для кэширования списка Id роботов папки

RpaProjectRobots

Привязка роботов к проекту

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ProjectIdNOint
RobotIdNOint
OrdNOintЧем выше, тем приоритетней
ReasonYESnvarcharПричина, по которой осуществлена привязка

RpaProjectTags

Тэг RPA-проекта

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
RpaProjectIdNOint
TagIdNOuniqueidentifier
CreatedAtNOdatetime2

RpaProjectWorkflows

Процесс Rpa-проекта, прочитанный из файла

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
FileIdNOuniqueidentifier
WorkflowNOnvarchar

RpaProjects

RpaProject-файл и его параметры запуска

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharГлобально уникальное наименование проекта
DescriptionYESnvarcharОписание проекта
MainWorkflowYESnvarchar
SoftPlatformNOint
DisabledNObit
RunConfigYESintКонфигурация запуска стандартная
RunConfigCustomYESnvarcharКонфигурация запуска специальная
MockNObitИспользовать заглушки
DurationLevelYESintУровень продолжительности задержки в очереди задержки
ParentIdYESintРодительская версия
VersionNOintНомер версии
CreatedAtNOdatetime2Дата создания записи
TenantIdYESnvarcharИдентификатор тенанта
RobotDistrVersionsYESnvarcharСписок версий дистрибутивов роботов
CloseRDPSessionNObitПосле выполнения проекта роботом закрыть RDP-сессию
ActiveNObitФлаг активности
ProjectArchiveIdYESintЗаполняется после загрузки файла проекта, дублирует 1-1 связь в существующей реализации
ExclusiveLaunchNObitПроект запускается в единственном экземпляре
NoDuplicateDeferredQueueNObitНе повторять в очереди ожидания
PublishSourceYESintИсточник, из которого был опубликован проект (залит архив)
ProjectVersionYESnvarcharНомер версии (в соответствии с принятой системой нумерации версий у разработчиков проектов).; Берется из метаданных проекта. Может быть отредактировано
PreReleaseNObitПризнак, что версия является предрелизной.; Берется из метаданных проекта или устанавливается Оркестратором.
VersionCommentsYESnvarcharКомментарии к текущей версии
IdeaHubIdYESnvarcharГлобально-уникальный идентификатор шаблона проекта, определяемый в IdeaHub
LimitedLaunchYESintОграниченный запуск
SessionsReleaseDelayNOintЗадержка релиза сессии (мсек) - сессия может очень быстро понадобиться; другому роботу, чтобы её не пересоздавать заново. Только для ExclusiveSessionsRelease = false
ExclusiveSessionsReleaseNObitЕсли поднят этот флаг, робот, когда освобождает сессию, не смотрит на отсутствие релиза сессии у других роботов.; Должно использоваться, когда только один робот закрывает сессию,; чтобы не ломать работу остальных роботов в этой сессии
IgnoreProjectCompletedTriggerNObitЗавершение процесса может триггерить запуск задания; Если false, то завершение процесса не зажигает триггер

RpaProjectVariables

Привязка переменных проекта к заданию. Эти переменные считываются при загрузке проекта. Их список и имена (и значение, если есть) – фиксированы, через UI Оркестратора и роботами не меняется

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
ProjectIdNOint
NameYESnvarcharНаименование переменной. Уникальное в рамках проекта
ValueYESnvarcharСтроковое представление значения
DirectionNOIntНаправление

RpaProjectVariableTemps

Переменная Rpa-проекта, прочитанная из файла проекта и временно сохраненная для привязки к проекту

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
FileIdNOuniqueidentifier
MainWorkflowNOnvarchar
NameNOnvarchar
ValueYESnvarcharСтроковое представление значения
DirectionNOIntНаправление

Schedules

Расписание

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharНаименование
DescriptionYESnvarcharОписание
CronStringYESnvarcharКрон-строка расписания
ScheduleJsonYESnvarcharСериализованная в Json ViewModel формы настройки расписания
IgnoredSaSuNObitСуббота и воскресенье - рабочие дни
UseProductionCalendarNObitСогласовано с производственным календарем
TenantIdYESnvarcharИдентификатор тенанта
ScheduleModifiedDateYESdatetime2Дата последнего редактирования расписания
ProductionCalendarIdYESintСогласовано с производственным календарем
ProductionCalendar2IdYESintСогласовано с производственным календарем2

StatesSlaConfig

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
AgentUnavailabilityFirstSecNOintПродолжительность недоступности Агента после которой считается, что он не доступен
AgentUnavailabilityRepeatedlySecNOintПродолжительность недоступности Агента после которой происходит повторное оповещение
RpaProjectQueueRiseCriticalQueueLengthNOintКритическая длина очереди
RpaProjectQueueRiseRepeatedlySecNOintПродолжительность нахождения очереди в критическом состоянии после которой происходит повторное оповещение

Tags

Тэг. Используется для поиска объектов

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
ValueNOnvarcharЗначение
CreatedAtNOdatetime2Дата создания

Tenants

Тенант (для случая, когда тенанты хранятся в БД)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOnvarcharИдентификатор тенанта
NameNOnvarcharНаименование тенанта
TimeOffsetNOintСмещение времени в часах
CreatedAtNOdatetime2Дата создания записи
UpdatedAtYESdatetime2Дата изменения записи
DeletedAtYESdatetime2Дата удаления записи
EmailYESnvarchar
PasswordYESnvarchar
Pop3YESnvarchar
Pop3PortYESint
RequireAuthenticateYESbit
UseSslYESbit
AgentHttpsNObitИспользовать Https при обращении к агенту
UseStandartNotSSLPortYESbitПоставить true, если почтовик настроен на один из стандартных портов (SMTP:25 or 587,POP3:110,IMAP:143); (не зависит от настройки UseSsl); Подробнее: https://github.com/jstedfast/MailKit/blob/master/FAQ.md#SslHandshakeException
LoginYESnvarcharЕсли задано, используется вместо Email
RemoveReceivedYESbitУдалять письмо после получения
RpaProjectQueueProcessingTypeYESintПараметры очереди проектов на выполнение; Если не задан, используется из GeneralSettings
ImapPortYESint-
ImapFolderYESnvarchar-
ImapYESnvarchar-
AgentPortNOintПорт агента
AgentTimeoutNOintТайм-аут обращения к агенту

Triggers

Триггер для задания

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
TypeNOintТип триггера
CreatedAtNOdatetime2Дата создания триггера
UpdatedAtYESdatetime2Дата изменения триггера
AssignmentIdNOint
FiredAtYESdatetime2Дата срабатывания триггера
LastErrorMsgYESnvarcharСообщение об ошибке при последнем срабатывании
ScheduleIdYESintРасписание
NextFiredAtYESdatetime2Дата следующего запуска триггера шедулера
IncomingEmailIdYESint
ExchangeQueueIdYESuniqueidentifierОчередь обмена данными
WorkerIdYESintМашина Робота
WorkerFolderYESnvarcharПапка на машине Робота
RpaProjectIdYESint
ProjectCompletedOkYESbit
ProjectCompletedErrorYESbit
ByWorkerYESbit

True - Папка на машине Робота

False - Сетевая шара

ShareFolderYESnvarcharСетевая шара
LockAtYESdatetime2Блокировка (служебное поле), чтобы одновременно несколько инстансов не поставили в очередь выполнение проекта задания этого триггера
NodeLockYESintИдентификатор ноды, заблокировавшей триггер в БД
VersionNOintСлужебное поле для разруливания конкурентного доступа
IncomingFromYESnvarchar
IncomingSubjectYESnvarchar
IncomingEmailIntevalInSecondsYESintИнтервал запросов к почтовому серверу
IncomingEmailWindowSizeYESintМаксимальное количество писем, забираемых за один раз
ChangeTypeYESint
FullPathYESnvarchar
OldFullPathYESnvarchar
WatcherFilterYESnvarcharФильтр для содержимого папки
FiredAtEmailYESdatetime2Дата срабатывания от получения новых писем
FromRobotIdYESintРобот, который зажег триггер
CountNewExchangeQueueItemsYESintКоличество новых элементоы очереди, при наличии которого сработает триггер
CronStringYESnvarcharКрон-строка расписания, по которой происходит запуск опроса очереди
IntervalYESintИнтервал опроса в минутах
FiredAtNewItemsYESdatetime2Дата срабатывания от наличия в очереди новых элементов
TagsYESnvarcharСтрока тэгов, через запятую. Если заданы, то только на элементы с данными тэгами будет триггериться
HardKillYESbitЕсли установлено и True - принудительная остановка робота с проектом; Если установлено и False - поднять флаг мягкой остановки

UserRobotQuotas

Квота пользователя на лицензии робота

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UserIdNOnvarcharИдентификатор пользователя из БД ltoolsidentity
EnterpriseRobotQuotaYESintКвота на Enterprise лицензии
StandardRobotQuotaYESintКвота на Standard лицензии
TenantIdYESnvarcharИдентификатор тенанта
DesktopRobotQuotaYESintКвота на Desktop лицензии

UserSystemEventTypes

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

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
EventTypeNOint
UserIdYESnvarchar

UserUISettings

Клиентские настройки для пользователя

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
UserNameYESnvarcharИмя пользователя
SettingsYESnvarcharСтрока данных с настройками
TenantIdYESnvarchar-

WorkerIpAddresses

IP-адреса машин Роботов, которые агенты сообщили Оркестратору

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
KeyNOnvarcharИдентификатор машины
IpAddressNOnvarcharIP-адрес
CreatedAtNOdatetime2Дата создания записи

WorkerNoRdpPeriods

Периоды “простоя” машины роботов - когда не поднята ни одна RDP-сессия для оркестраторных роботов (учитываются только сессии, поднятые службой RDP2)

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOuniqueidentifier
IsPauseFlagYESbitПризнак техперерыва для службы RDP2
StartededAtYESdatetime2Дата/время начала периода простоя.; Включает погрешность в один шаг работы службы RDP2 (по умолчанию 5 сек.)
StoppeddAtYESdatetime2Дата/время завершения простоя.; Включает погрешность в один шаг работы службы RDP2 (по умолчанию 5 сек.)
WorkerIdNOintИдентификатор машины роботов

Workers

Машина робота

п/п

Наименование поляДопускает NULLТип данныхОписание
IdNOint
NameYESnvarcharПроизвольное наименование
IpAddressYESnvarcharIP или DNS
AdminNameYESnvarcharЛогин администратора
AdminPasswordYESnvarcharПароль администратора
DisabledNObitПринзак логического удаления
TestSucceededDateYESdatetime2Дата тестирования доступности рабочей машины
TestSucceededYESbitРезультат тестирования доступности рабочей машины
NoSuccesRaiseDateYESdatetime2Дата начала недоступности. Как становится доступной, эта дата обнуляется
NotificatedYESbitСобытие доступности/недоступности отправлено
TenantIdYESnvarcharИдентификатор тенанта
MaxSimulRobotCountYESintМаксимальное количество одновременно работающих роботов
CurrentSimulRobotCountNOintТекущее количество одновременно работающих роботов
IsRunningNObitПризнак вкл/выключенного Агента, выключенный Агент отличается от недоступного и не участвует в опросах машин роботов,; в лог не пишутся сообщения о недоступности.
MemoryPrcntYESnumeric% RAM (среднее значение из полученной пачки); Собирается из метрик производительности при опросе состояния машины робота
LoadingDynamicAtYESdatetime2Дата фиксации информации о динамике нагрузки.; Проставляется при получении метрик производительности при опросе состояния машины робота,; если нагрузка существенно поменялась. Используется для определения факта, что текущая нагрузка; держится достаточно долго в некотором диапазоне
LoadingDynamicYESintДинамика нагрузки; Вычисляется при опросе состояния машины робота и текущих зафиксированных параметров нагрузки
CPUPrcntYESnumeric% CPU (среднее значение из полученной пачки); Собирается из метрик производительности при опросе состояния машины робота
NoRdpPauseDurationInSecondsYESintДлительность паузы без сессий роботов (оркестраторных).
NeedNoRdpPauseYESbitФлаг поднимается если нужно устроить "паузу" на машине без сессий роботов (оркестраторных).; Флаг сбрасывается автоматически после начала паузы.
IsNoRdpPauseYESbitФлаг поднимается автоматические если установлен NeedNoRdpPause и на сервере нет активных сессий роботов (оркестраторных); Флаг сбрасывается автоматически по истечении паузы (длительность задается в NoRdpPauseDurationInSeconds).
NodeIdYESintИдентификатор ноды, которая меняла запись
LinuxYESbitLinux-машина
AgentVersionYESnvarcharВерсия Агента, которую агент отдает при его опросе

Оглавление

[Описание структуры БД ltools 1](#описание-структуры-бд-ltools)

[__EFMigrationsHistory 1](#efmigrationshistory)

[Agents 1](#agents)

[Assets 2](#assets)

[AssetRobots 3](#assetrobots)

[Assignments 3](#assignments)

[AssignmentSchedulerSignalNodeConfirms 4](#assignmentschedulersignalnodeconfirms)

[AssignmentVariables 5](#assignmentvariables)

[BlackWhiteIpStudioRules 5](#blackwhiteipstudiorules)

[BusyRobotLicenseItems 5](#busyrobotlicenseitems)

[BusyRobotLicenses 6](#busyrobotlicenses)

[BusyStudioLicenses 6](#busystudiolicenses)

[ConfigHash 6](#confighash)

[CurrentSystemParameters 6](#currentsystemparameters)

[DeployTemplates 6](#deploytemplates)

[ExchangeQueueRobotPermissions 7](#exchangequeuerobotpermissions)

[ExchangeQueues 7](#exchangequeues)

[ExchangeQueueStatisticAvgs 9](#exchangequeuestatisticavgs)

[ExchangeQueueStatistics 10](#exchangequeuestatistics)

[ExchangeQueueValueEvents 10](#exchangequeuevalueevents)

[ExchangeQueueValueMetadata 11](#exchangequeuevaluemetadata)

[ExchangeQueueValuePrefetchReadeds 11](#exchangequeuevalueprefetchreadeds)

[ExchangeQueueValues 11](#exchangequeuevalues)

[ExchangeQueueValueTags 13](#exchangequeuevaluetags)

[ExchangeQueueValuesRobotLocks 14](#exchangequeuevaluesrobotlocks)

[FolderObjects 14](#folderobjects)

[FolderObjects2 14](#folderobjects2)

[Folders 15](#folders)

[Folders2 15](#folders2)

[FolderUsers 15](#folderusers)

[FolderUsers2 16](#folderusers2)

[GeneralSettings 16](#generalsettings)

[IncomingEmailLogs 17](#incomingemaillogs)

[IncomingEmails 17](#incomingemails)

[IncomingEmailWindowLogs 18](#incomingemailwindowlogs)

[IPv4Addresses 18](#ipv4addresses)

[IPv4Masks 19](#ipv4masks)

[LoadTests 19](#loadtests)

[LoadTestScheduleItemActiveRobots 19](#loadtestscheduleitemactiverobots)

[LoadTestScheduleItemActives 20](#loadtestscheduleitemactives)

[LoadTestScheduleItems 20](#loadtestscheduleitems)

[LoadTestSchedules 20](#loadtestschedules)

[LoadTestScopes 21](#loadtestscopes)

[LoadTestScopeSchedulerSignalNodeConfirms 21](#loadtestscopeschedulersignalnodeconfirms)

[LoadTestScopeTriggers 21](#loadtestscopetriggers)

[LogsDump 22](#logsdump)

[Nodes 22](#nodes)

[NuGetTasks 23](#nugettasks)

[ProductionCalendars 23](#productioncalendars)

[ProductionCalendar2 23](#productioncalendar2)

[ProductionCalendar2Items 24](#productioncalendar2items)

[Rdp2AddressFilters 24](#rdp2addressfilters)

[RobotAgentSessions 24](#robotagentsessions)

[RobotDeployTrackings 24](#robotdeploytrackings)

[RobotDistrExistsNodeConfirms 25](#robotdistrexistsnodeconfirms)

[RobotDistrs 25](#robotdistrs)

[RobotGroupItems 26](#robotgroupitems)

[RobotGroups 26](#robotgroups)

[Robots 26](#robots)

[RobotSoftKillSignals 28](#robotsoftkillsignals)

[RobotStartTrackings 28](#robotstarttrackings)

[RobotUnlockQueue 28](#robotunlockqueue)

[RolePermissions 29](#rolepermissions)

[RootFolderUsers2 29](#rootfolderusers2)

[RpaProjectArchiveExistsNodeConfirms 29](#rpaprojectarchiveexistsnodeconfirms)

[RpaProjectArchives 29](#rpaprojectarchives)

[RpaProjectLaunches 30](#rpaprojectlaunches)

[RpaProjectLaunchVariables 31](#rpaprojectlaunchvariables)

[RpaProjectQueue 32](#rpaprojectqueue)

[RpaProjectRobots 33](#rpaprojectrobots)

[RpaProjectTags 33](#rpaprojecttags)

[RpaProjectWorkflows 33](#rpaprojectworkflows)

[RpaProjects 33](#rpaprojects)

[RpaProjectVariables 35](#rpaprojectvariables)

[RpaProjectVariableTemps 35](#rpaprojectvariabletemps)

[Schedules 35](#schedules)

[StatesSlaConfig 36](#statesslaconfig)

[Tags 36](#tags)

[Tenants 36](#tenants)

[Triggers 37](#triggers)

[UserRobotQuotas 39](#userrobotquotas)

[UserSystemEventTypes 39](#usersystemeventtypes)

[UserUISettings 39](#useruisettings)

[WorkerIpAddresses 40](#workeripaddresses)

[WorkerNoRdpPeriods 40](#workernordpperiods)

[Workers 40](#workers)

[1] Здесь и далее системные таблицы использовать пользователю запрещено. За исключением согласованных с Вендором случаев. Иначе это может привести к краху системы

[2] Название таблицы оставлено для совместимости, не соответствует её использованию

[3] Зарезервировано

[4] Зарезервировано

[5] Зарезервировано

[6] Зарезервировано

[7] Зарезервировано

[8] Зарезервировано

[9] Зарезервировано

[10] Зарезервировано

[11] Зарезервировано

[12] Зарезервировано

[13] Зарезервировано