Приложения

Приложение 1. Типы в системе ROBIN

Каждая платформа реализации оперирует нативными типами своих данных. Для обеспечения кроссплатформенности и передачи сложных объектов между разыми системными компонентами выполняется приведение нативных типов к кроссплатформенным DTO Robin-типам - типам объектов передаваемых данных.

Ниже представлен список Robin-типов, возможность их сериализации и соответствие нативным типам для каждой платформы. Приведение нативных типов к Robin-типам выполняется с помощью Robin-конверторов.

В колонке «Чем является нативный тип внутри .NET» есть 3 варианта типов:

  1. Нативный тип. Пример (net): System.Collections.Generic.List, string и др.

В этом случае необходимо приводить к тому типу, который указан в столбце. Примеры (net):

  • Для коллекций System.Collections.Generic.List:

List<object> Services = (List<object>)parameters[«Services»];

  • Для словарей System.Collections.Generic.Dictionary<string, object>:

Dictionary<string, object> options= (Dictionary<string, object>)parameters[«Options»];

  1. DTO. Пример (net):

Robin.Type.RobinFilePath

Nuget

Robin.Type.FilePath.2.0.0

В этом случае необходимо сначала добавить указанный Nuget-пакет в проект. Далее выполнить приведение в следующем формате (пример для net):

  • Путь к файлу:

var pathToFile = ((RobinFilePath) parameters[«Path2File»])

  • Web-элемент:

var webElement = ((RobinWebElement) parameters[«CoolElementName»])

  1. Если указан прочерк, значит используемый тип – контекст. В этом случае необходимо также сначала добавить указанный Nuget-пакет в проект. Далее выполнить приведение в следующем формате (пример для net):

var xmlContext = (XmlContext)parameters[«XML_INSTANCE»];

Приложение 2. Сервисы, предоставляемые движком

Введение

Все сервисы находятся в пространстве имен Robin.Engine.Services.Interfaces, для удобства использования можно добавить директиву using

Для использования сервиса нужно добавить его в конструктор основного класса действия (класса, который наследует BaseRobinAction).

ActionLogger

Сервис логирования есть в родительском классе, доступен из каждого действия по имени Logger.

Есть 5 уровней логирования: Debug, Info, Warn, Error и Business. При каждом вызове логгера, производится проверка порога логирования на уровне сценария (устанавливается в приложении, откуда запускается робот) и на уровне действия (устанавливается в студии). Логи уровня бизнес логируются всегда.

Есть перегрузки с форматированной строкой, такая строка попадет в лог студии в таком же виде.

Есть перегрузки с коллбэком, который будет вызван, если уровень сообщение не ниже установленных порогов логирования. Для добавления форматированной строки нужно добавить в словарь пару с ключом «message».

Лог передается из действия в приложение-инициатор сессии (студия, плеер, и т. д.) и в файл лога робота.

Методы

Примеры использования

ConfigurationService

Сервис для получения конфигурационных параметров, расположенных в файле %LOCALAPPDATA%robinenv.cfg

Методы

Примеры использования

ConverterService

Сервис для получения презентационного значения для объекта (не путать с конвертацией в строку). Сервис возвращает значение объекта, представленное в удобном для чтения виде.

Методы

Примеры использования

DisposeService

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

Методы

Примеры использования

ResourcesFolderService

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

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

Методы

Примеры использования