2. Функции¶
Общее¶
Раздел содержит всю необходимую информацию о функциях pyOpenRPA.Orchestrator
При необходимости вы всегда можете обратиться в центр поддержки клиентов pyOpenRPA. Контакты: 2. Лицензия & Контакты
Что такое активность (ActivityItem)?¶
Архитектура pyOpenRPA позволяет обмениваться сообщениями о выполнении функций через механизм активностей (ActivityItem).
На стороне Агента и Оркестратора реализована процессорная очередь, которая последовательно выполняет поставленные активности. Результат этих активностей сообщается инициатору (см. функции группы Agent… в Оркестраторе)
Функции¶
# ПРИМЕР 1 (ОСНОВНОЙ)
from pyOpenRPA import Orchestrator
Orchestrator.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
# ПРИМЕР 2 (ВСПОМОГАТЕЛЬНЫЙ)
from pyOpenRPA.Orchestrator import __Orchestrator__
__Orchestrator__.OSCMD(inCMDStr = "git status", inRunAsyncBool=True)
Группа функций Agent…
Взаимодействие между Оркестратором и Агентом, который развертнут на других графических сессиях, где будет происходить запуск робота.
Группа функций GSettings…
Вспомогательные функции для работы с глобальным словарем настроек Оркестратора
Группа функций Storage…
Функции для взаимодействия со специальным хранилищем переменных, предназначенного для хранения информации от роботов.
!ВНИМАНИЕ! Данное хранилище сохраняется при перезагрузке Оркестратора из панели управления.
Группа функций OS…
Функции взаимодействия с командной строкой на сессии, где запущен Оркестратор.
Группа функций Process…
Запуск / остановка процессов на сессии Оркестратора.
Группа функций Processor…
Функции взаимодействия с процессорной очередью. Если требуется выполнить синхронизацию нескольких разных задач, то можно их отправлять в процессорную очередь.
Группа функций Python…
Функции взаимодействия с Python модулями.
Группа функций RDPSession…
Запуск, отключение, перезапуск, отправка CMD команд, раскрыть на весь экран на RDP сессию
Группа функций Web…
Управление веб-сервером Оркестратора.
Группа функций UAC…
Управление ролевой моделью доступа пользователей к панели управления Оркестратора. Актуально для подключения бизнес-пользователей.
Группа функций Scheduler…
Установка расписания на различные активности.
Описание каждой функции начинается с обозначения L+,W+, что означает, что функция поддерживается в ОС Linux (L) и поддерживается в Windows (W)
Functions:
|
L+,W+: Создать Активность (ActivityItem). |
|
L+,W+: Создать синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна). |
L+,W+: Загрузить все функции из импортированных модулей sys.modules в ActivityItem синонимы - полезно для отладки со стороны панели управления. |
|
|
L+,W+: Обновить синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна). |
L+,W+: Анализ аргументов функции по синониму (текстовому ключу). |
|
|
L+,W+: Получить список синонимов (текстовых ключей), доступных для использования в Активностях (ActivityItem). |
|
L+,W+: Добавить активность в словарь активностей выбранного Агента |
|
L+,W+: Выполнить проверку, что активность (ActivityItem) была отправлена на сторону Агента. |
|
L+,W+: Выполнить проверку, что активность (ActivityItem) была выполнена на стороне Агента и результат был получен на стороне Оркестратора. |
|
L+,W+: Ожидает появления результата по активности (ActivityItem). |
|
L+,W+: Отправка команды командной строки на сессию, где работает pyOpenRPA.Agent. |
L+,W+: Добавить бинарную информацию в существующий бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым, декодированным с формата base64: inFileDataBase64Str |
|
L+,W+: Создать бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым, декодированным с формата base64: inFileDataBase64Str |
|
L+,W+: Выполнить чтение бинарного файла и получить содержимое в формате base64 (строка) |
|
|
L+,W+: Создать бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым inFileDataBytes |
|
L+,W+: Чтение бинарного файла на стороне Агента по адресу inFilePathStr. |
|
L+,W+: Отправить файл по адресу inOrchestratorFilePathStr со стороны Оркестратора и сохранить по адресу inAgentFilePathStr на стороне Агента. |
|
L+,W+: Создать текстовый файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым inFileDataStr в кодировке inEncodingStr |
|
L+,W+: Чтение текстового файла на стороне Агента по адресу inFilePathStr. |
|
L+,W+: Выполнить операцию logoff на стороне пользователя. |
L-,W+: Получить список процессов, которые выполняется на сессии Агента. |
|
|
L+,W+: Вернуть глобальный словарь настроек Оркестратора. |
|
L+,W+: Применить операцию .append к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. |
|
L+,W+: Получить значение из глобального словаря настроек Оркестратора GSettings по списку ключей. |
|
L+,W+: Применить оператор сложения (+) к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. |
|
L+,W+: Установить значение из глобального словаря настроек Оркестратора GSettings по списку ключей. |
|
L-,W+: Отправить команду на выполнение на сессию, где выполняется Оркестратор. |
|
L+,W+: Выполнить верификацию доменного (локального) пользователя по паре логин/пароль |
|
L+,W+: Выполнить отключение сессии, на которой выполняется Оркестратор. |
|
L-,W+: Отправить сигнал на удаленную перезагрузку операционной системы. |
|
L+,W+: Отправить сигнал на перезагрузку операционной системы. |
|
L+,W+: Инициализация ядра Оркестратора (всех потоков) |
L+,W+: Ожидать инициализацию ядра Оркестратора |
|
L+,W+: Проверить, запущен ли Оркестратор с правами администратора. |
|
L+,W+: Проверить, было ли проинициализировано ядро Оркестратора |
|
L+,W+: Получить логгер Оркестратора |
|
|
L+,W+: Выполнить поиск и инициализацию пользовательских .py файлов в Оркестраторе (например панелей управления роботов) |
L-,W+: Перезапустить Оркестратор с правами локального администратора. |
|
|
L+,W+: Перезапуск Оркестратора с сохранением информации о запущенных RDP сессиях. |
L+,W+: Базовый объект расписания, который можно использовать для запуска / остановки роботов. |
|
|
L+,W+: Восстановить состояние Оркестратора, если ранее состояние Оркестратора было сохранено с помощью функции OrchestratorSessionSave: |
|
L+,W+: Сохранить состояние Оркестратора (для дальнейшего восстановления в случае перезапуска): |
|
L+,W+: Запустить функцию в отдельном потоке. |
|
L+,W+: Периодический вызов функции Python. |
|
L-,W+: Проверить, запущен ли процесс, который в наименовании содержит inProcessNameWOExeStr. |
|
L-,W+: Вернуть список процессов, запущенных на ОС, где работает Оркестратор. |
|
L-,W+: Запуск процесса на сессии Оркестратора, если на ОС не запущен процесс inStopProcessNameWOExeStr. |
|
L-,W+: Остановить процесс на ОС, где работает Оркестратор, под учетной записью inUserNameStr. |
|
L+,W+: Добавить активность (ActivityItem) в процессорную очередь. |
|
L+,W+: Создать Активность (ActivityItem). |
|
L+,W+: Создать синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна). |
|
L+,W+: Обновить синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна). |
|
L+,W+: Импорт модуля и выполнение функции в процессе Оркестратора. |
|
L-,W+: Отправить CMD команду на удаленную сесиию через RDP окно (без Агента). |
|
L-,W+: Выполнить подключение к RDP и следить за стабильностью соединения со стороны Оркестратора. |
|
L-,W+: Выполнить отключение RDP сессии и прекратить мониторить его активность. |
|
L-,W+: Получение файла со стороны RDP сессии на сторону Оркестратора через UI инструменты RDP окна (без Агента). |
|
L-,W+: Отправка файла со стороны Оркестратора на сторону RDP сессии через UI инструменты RDP окна (без Агента). |
|
L-,W+: Выполнить отключение (logoff) на RDP сессии и прекратить мониторить активность со стороны Оркестратора. |
|
L-,W+: Прекратить мониторить активность RDP соединения со стороны Оркестратора. |
L-,W+: Выполнить запуск процесса на RDP сессии через графические UI инструменты (без Агента). |
|
|
L-,W+: Отправка CMD команды в RDP окне на остановку процесса (без Агента). |
|
L-,W+: Выполнить переподключение RDP сессии и продолжить мониторить его активность. |
|
L-,W+: Создать шаблон подключения RDP (dict). |
L+,W+: Добавить активность по расписанию. |
|
|
L+,W+: Проверить, существует ли ключ inRobotNameStr в хранилище пользовательской информации StorageDict (GSettings > StarageDict) |
|
L+,W+: Получить содержимое по ключу робота inRobotNameStr в хранилище пользовательской информации StorageDict (GSettings > StarageDict) |
|
L+,W+: Проверить права доступа для пользователя запроса по списку ключей до права. |
|
L+,W+: Добавить супертокен (полный доступ). |
|
L+,W+: Дообогащение словаря доступа UAC пользователя inADStrinADLoginStr. |
|
L+,W+: Вернуть UAC (User Access Control) словарь доступов для пользователя, который отправил запрос. |
|
L+,W+: Создание сообщения ИТ аудита с такими сведениями как (Домен, IP, логин и тд.). |
|
L+,W+: Добавить панель управления робота в Оркестратор. |
|
L+,W+: Настроить веб-сервер Оркестратора. |
L+,W+: Вернуть экземпляр HTTP запроса, если функция вызвана в потоке, который был порожден для отработки HTTP запроса пользователя. |
|
|
L+,W+: Извлечь данные в байт виде из тела (body) HTTP запроса. |
|
L+,W+: Извлечь из тела (body) запроса HTTP JSON данные и преобразовать в Dict / List структуры языка Python. |
|
L+,W+: Извлечь данные в виде строки из тела (body) HTTP запроса. |
|
L+,W+: Извлечь файл (наименование + содержимое в виде строки байт b““) из HTTP запроса пользователя. |
|
L+,W+: Извлечь декодированный URL путь из HTTP запроса пользователя в формате строки. |
|
L+,W+: Установить ответ на HTTP запрос пользователя. |
|
L+,W+: Подключить функцию Python к URL. |
|
L+,W+: Подключить файл к URL. |
|
L+,W+: Подключить папку к URL. |
|
L+,W+: Изменить адрес главной страницы Оркестратора. |
|
L+,W+: Информация о пользователе, который отправил HTTP запрос. |
|
L+,W+: Проверить, авторизован ли HTTP запрос с помощью супер токена (токен, который не истекает). |
|
L+,W+: Вернуть словарь доступа UAC в отношении пользователя, который выполнил HTTP запрос inRequest |
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemCreate
(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=None, inArgLoggerStr=None, inGUIDStr=None, inThreadBool=False)[исходный код]¶ L+,W+: Создать Активность (ActivityItem). Активность можно использовать в ProcessorActivityItemAppend или в Processor.ActivityListExecute или в функциях работы с Агентами.
# ПРИМЕР from pyOpenRPA import Orchestrator # ВАРИАНТ 1 def TestDef(inArg1Str, inGSettings, inLogger): pass lActivityItem = Orchestrator.ActivityItemCreate( inDef = TestDef, inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = "inGSettings", inArgLoggerStr = "inLogger") # lActivityItem: # { # "Def":TestDef, # "ArgList":inArgList, # "ArgDict":inArgDict, # "ArgGSettings": "inArgGSettings", # "ArgLogger": "inLogger" # } # ВАРИАНТ 2 def TestDef(inArg1Str): pass Orchestrator.ActivityItemDefAliasUpdate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") lActivityItem = Orchestrator.ActivityItemCreate( inDef = "TestDefAlias", inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = None, inArgLoggerStr = None) # lActivityItem: # { # "Def":"TestDefAlias", # "ArgList":inArgList, # "ArgDict":inArgDict, # "ArgGSettings": None, # "ArgLogger": None # }
- Параметры
inDef – Функция Python или синоним (текстовый ключ)
inArgList – Список (list) неименованных аргументов к функции
inArgDict – Словарь (dict) именованных аргументов к функции
inArgGSettingsStr – Текстовое наименование аргумента GSettings (если требуется передавать)
inArgLoggerStr – Текстовое наименование аргумента logger (если требуется передавать)
inGUIDStr – ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
inThreadBool – True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
- Результат
- lActivityItemDict= {
«Def»:inDef, # def link or def alias (look gSettings[«Processor»][«AliasDefDict»]) «ArgList»:inArgList, # Args list «ArgDict»:inArgDict, # Args dictionary «ArgGSettings»: inArgGSettingsStr, # Name of GSettings attribute: str (ArgDict) or index (for ArgList) «ArgLogger»: inArgLoggerStr, # Name of GSettings attribute: str (ArgDict) or index (for ArgList) «GUIDStr»: inGUIDStr, «ThreadBool»: inThreadBool
}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemDefAliasCreate
(inDef, inAliasStr=None, inGSettings=None)[исходный код]¶ L+,W+: Создать синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна).
# ПРИМЕР from pyOpenRPA import Orchestrator def TestDef(): pass lAliasStr = Orchestrator.ActivityItemDefAliasCreate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") # Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
- Параметры
inDef – функция Python
inAliasStr – Строковый ключ (синоним), который можно будет использовать в Активности (ActivityItem)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
Строковый ключ, который был назначен. Ключ может быть изменен, если входящий текстовый ключ был уже занят.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemDefAliasModulesLoad
()[исходный код]¶ L+,W+: Загрузить все функции из импортированных модулей sys.modules в ActivityItem синонимы - полезно для отладки со стороны панели управления.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemDefAliasUpdate
(inDef, inAliasStr, inGSettings=None)[исходный код]¶ L+,W+: Обновить синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна).
# USAGE from pyOpenRPA import Orchestrator def TestDef(): pass Orchestrator.ActivityItemDefAliasUpdate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") # Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
- Параметры
inDef – функция Python
inAliasStr – Строковый ключ (синоним), который можно будет использовать в Активности (ActivityItem)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
Строковый ключ, который был назначен. Ключ будет тем же, если входящий текстовый ключ был уже занят.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemHelperDefAutofill
(inDef)[исходный код]¶ L+,W+: Анализ аргументов функции по синониму (текстовому ключу).
- Параметры
inDef – Часть текстового ключ (начало / середина / конец)
- Результат
Преднастроенная структура активности (ActivityItem) {
»Def»: None, «ArgList»: [], «ArgDict»: {}, «ArgGSettingsStr»: None, «ArgLoggerStr»: None
}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ActivityItemHelperDefList
(inDefQueryStr=None)[исходный код]¶ L+,W+: Получить список синонимов (текстовых ключей), доступных для использования в Активностях (ActivityItem).
- Параметры
inDefStr – Часть текстового ключ (начало / середина / конец)
- Результат
Список доступных ключей в формате: [«ActivityItemDefAliasUpdate», «ActivityItemDefAliasCreate», etc…]
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemAdd
(inHostNameStr, inUserStr, inActivityItemDict, inGSettings=None)[исходный код]¶ L+,W+: Добавить активность в словарь активностей выбранного Агента
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inActivityItemDict – Активность (ActivityItem). См. функцию ProcessorActivityitemCreate
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemExists
(inHostNameStr, inUserStr, inGUIDStr, inGSettings=None)[исходный код]¶ L+,W+: Выполнить проверку, что активность (ActivityItem) была отправлена на сторону Агента.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inGUIDStr – ГУИД (GUID) активности (ActivityItem)
- Результат
True - Активность присутствует ; False - Активность еще не была отправлена на сторону Агента
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemReturnExists
(inGUIDStr, inGSettings=None)[исходный код]¶ L+,W+: Выполнить проверку, что активность (ActivityItem) была выполнена на стороне Агента и результат был получен на стороне Оркестратора.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inGUIDStr – ГУИД (GUID) активности (ActivityItem)
- Результат
True - Активность присутствует; False - Активность еще не была выполнена на стороне Агента
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentActivityItemReturnGet
(inGUIDStr, inCheckIntervalSecFloat=0.5, inGSettings=None)[исходный код]¶ L+,W+: Ожидает появления результата по активности (ActivityItem). Возвращает результат выполнения активности.
!ВНИМАНИЕ! Замораживает поток, пока не будет получен результат. !ВНИМАНИЕ! Запускать следует после того как будет инициализировано ядро Оркестратора (см. функцию OrchestratorInitWait), иначе будет инициирована ошибка.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inGUIDStr – ГУИД (GUID) активности (ActivityItem)
inCheckIntervalSecFloat – Интервал в секундах, с какой частотой выполнять проверку результата. По умолчанию 0.5
- Результат
Результат выполнения активности. !ВНИМАНИЕ! Возвращаются только то результаты, которые могут быть интерпретированы в JSON формате.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSCMD
(inHostNameStr, inUserStr, inCMDStr, inRunAsyncBool=True, inSendOutputToOrchestratorLogsBool=True, inCMDEncodingStr='cp1251', inGSettings=None, inCaptureBool=True)[исходный код]¶ L+,W+: Отправка команды командной строки на сессию, где работает pyOpenRPA.Agent. Результат выполнения команды можно выводить в лог оркестратора.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inCMDStr – Команда для исполнения на стороне сессии Агента
inRunAsyncBool – True - Агент не ожидает окончания выполнения команды. !ВНИМАНИЕ! Логирование в такой ситуации будет невозможно; False - Агент ожидает окончания выполнения операции.
inSendOutputToOrchestratorLogsBool – True - отправлять весь вывод от команды в логи Оркестратора; Flase - Не отправлять; Default True
inCMDEncodingStr – Кодировка DOS среды, в которой исполняется команда. Если некорректно установить кодировку - русские символы будут испорчены. По умолчанию установлена «cp1251»
inCaptureBool – True - не запускать приложение как отдельное. Результат выполнения команды будет выводиться в окне Агента (если окно Агента присутствует на экране). False - команда будет запущена в отдельном DOS окне.
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileBinaryDataBase64StrAppend
(inHostNameStr, inUserStr, inFilePathStr, inFileDataBase64Str, inGSettings=None)[исходный код]¶ L+,W+: Добавить бинарную информацию в существующий бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым, декодированным с формата base64: inFileDataBase64Str
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Полный путь к сохраняемому файлу на стороне Агента.
inFileDataBase64Str – Строка в формате base64 для отправки в создаваемый файл на стороне Агента.
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileBinaryDataBase64StrCreate
(inHostNameStr, inUserStr, inFilePathStr, inFileDataBase64Str, inGSettings=None)[исходный код]¶ L+,W+: Создать бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым, декодированным с формата base64: inFileDataBase64Str
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Полный путь к сохраняемому файлу на стороне Агента.
inFileDataBase64Str – Строка в формате base64 для отправки в создаваемый файл на стороне Агента.
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileBinaryDataBase64StrReceive
(inHostNameStr, inUserStr, inFilePathStr, inGSettings=None)[исходный код]¶ L+,W+: Выполнить чтение бинарного файла и получить содержимое в формате base64 (строка)
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Путь к бинарному файлу на чтение на стороне Агента
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileBinaryDataBytesCreate
(inHostNameStr, inUserStr, inFilePathStr, inFileDataBytes, inGSettings=None)[исходный код]¶ L+,W+: Создать бинарный файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым inFileDataBytes
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Полный путь к сохраняемому файлу на стороне Агента.
inFileDataBytes – Строка байт (b““) для отправки в создаваемый файл на стороне Агента.
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileBinaryDataReceive
(inHostNameStr, inUserStr, inFilePathStr)[исходный код]¶ L+,W+: Чтение бинарного файла на стороне Агента по адресу inFilePathStr.
!ВНИМАНИЕ - СИНХРОННАЯ! Функция не завершится, пока не будет получен результат чтения на стороне Агента.
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Путь к бинарному файлу, который требуется прочитать на стороне Агента
- Результат
Строка байт (b““) - содержимое бинарного файла
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileSend
(inHostNameStr, inUserStr, inOrchestratorFilePathStr, inAgentFilePathStr, inGSettings=None)[исходный код]¶ L+,W+: Отправить файл по адресу inOrchestratorFilePathStr со стороны Оркестратора и сохранить по адресу inAgentFilePathStr на стороне Агента. Поддерживает передачу крупных файлов (более 2-х Гб.). Функция является синхронной - не закончит свое выполнение, пока файл не будет передан полностью.
!ВНИМАНИЕ - ПОТОКОБЕЗОПАСНАЯ! Вы можете вызвать эту функцию до инициализации ядра Оркестратора. Оркестратор добавит эту функцию в процессорную очередь на исполение. Если вам нужен результат функции, то необходимо сначала убедиться в том, что ядро Оркестратора было инициализированно (см. функцию OrchestratorInitWait).
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inOrchestratorFilePathStr – Полный путь к передаваемому файлу на стороне Оркестратора.
inAgentFilePathStr – Полный путь к локации, в которую требуется сохранить передаваемый файл.
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileTextDataStrCreate
(inHostNameStr, inUserStr, inFilePathStr, inFileDataStr, inEncodingStr='utf-8', inGSettings=None)[исходный код]¶ L+,W+: Создать текстовый файл, который будет расположен по адресу inFilePathStr на стороне Агента с содержимым inFileDataStr в кодировке inEncodingStr
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Полный путь к сохраняемому файлу на стороне Агента.
inFileDataStr – Строка для отправки в создаваемый файл на стороне Агента.
inEncodingStr – Кодировка текстового файла. По умолчанию utf-8
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSFileTextDataStrReceive
(inHostNameStr, inUserStr, inFilePathStr, inEncodingStr='utf-8', inGSettings=None)[исходный код]¶ L+,W+: Чтение текстового файла на стороне Агента по адресу inFilePathStr. По ГИУД с помощью функции AgentActivityItemReturnGet можно будет получить текстовую строку данных, которые были расположены в файле.
!ВНИМАНИЕ - АСИНХРОННАЯ! Функция завершится сразу, не дожидаясь окончания выполнения операции на стороне Агента.
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inFilePathStr – Путь к бинарному файлу, который требуется прочитать на стороне Агента
inEncodingStr – Кодировка текстового файла. По умолчанию utf-8
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentOSLogoff
(inHostNameStr, inUserStr)[исходный код]¶ L+,W+: Выполнить операцию logoff на стороне пользователя.
- Параметры
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
AgentProcessWOExeUpperUserListGet
(inHostNameStr, inUserStr, inGSettings=None)[исходный код]¶ L-,W+: Получить список процессов, которые выполняется на сессии Агента. Все процессы фиксируются без постфикса .exe, а также в верхнем регистре.
ПРИМЕР РЕЗУЛЬТАТА, КОТОРЫЙ МОЖНО ПОЛУЧИТЬ ПО ГУИД ЧЕРЕЗ ФУНКЦИЮ AgentActivityItemReturnGet: [«ORCHESTRATOR», «AGENT», «CHROME», «EXPLORER», …]
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inHostNameStr – Наименование хоста, на котором запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
inUserStr – Наименование пользователя, на графической сессии которого запущен Агент. Наименования подключенных агентов доступно для просмотра в панели управления
- Результат
ГУИД (GUID) строка Активности (ActivityItem). Далее можно ожидать результат этой функции по ГУИД с помощью функции AgentActivityItemReturnGet
-
pyOpenRPA.Orchestrator.__Orchestrator__.
GSettingsGet
(inGSettings=None)[исходный код]¶ L+,W+: Вернуть глобальный словарь настроек Оркестратора. Во время выполнения программы глобальный словарь настроек существует в единственном экземпляре (синглтон)
- Параметры
inGSettings – Дополнительный словарь настроек, который необходимо добавить в основной глобальный словарь настроек Оркестратора (синглтон)
- Результат
Глобальный словарь настроек GSettings
-
pyOpenRPA.Orchestrator.__Orchestrator__.
GSettingsKeyListValueAppend
(inValue, inKeyList=None, inGSettings=None)[исходный код]¶ L+,W+: Применить операцию .append к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. Пример: Добавить значение в конец списка (list).
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.GSettingsKeyListValueAppend( inGSettings = gSettings, inValue = "NewValue", inKeyList=["NewKeyDict","NewKeyList"]): # result inGSettings: { # ... another keys in gSettings ..., # "NewKeyDict":{ # "NewKeyList":[ # "NewValue" # ] # } #}
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inValue – Значение для установки в глобальный словарь настроек Оркестратора GSettings
inKeyList – Список ключей, по адресу которого выполнить добавление в конец списка (list)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
GSettingsKeyListValueGet
(inKeyList=None, inGSettings=None)[исходный код]¶ L+,W+: Получить значение из глобального словаря настроек Оркестратора GSettings по списку ключей.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inKeyList – Список ключей, по адресу которого получить значение из GSettings
- Результат
Значение (тип данных определяется форматом хранения в GSettings)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
GSettingsKeyListValueOperatorPlus
(inValue, inKeyList=None, inGSettings=None)[исходный код]¶ L+,W+: Применить оператор сложения (+) к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. Пример: соединить 2 списка (list).
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.GSettingsKeyListValueOperatorPlus( inGSettings = gSettings, inValue = [1,2,3], inKeyList=["NewKeyDict","NewKeyList"]): # result inGSettings: { # ... another keys in gSettings ..., # "NewKeyDict":{ # "NewKeyList":[ # "NewValue", # 1, # 2, # 3 # ] # } #}
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inValue – Значение для установки в глобальный словарь настроек Оркестратора GSettings
inKeyList – Список ключей, по адресу которого выполнить добавление в конец списка (list)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
GSettingsKeyListValueSet
(inValue, inKeyList=None, inGSettings=None)[исходный код]¶ L+,W+: Установить значение из глобального словаря настроек Оркестратора GSettings по списку ключей.
Пример: Для того, чтобы установить значение для ключа car в словаре {«complex»:{«car»:»green»}, «simple»:»HELLO»}, необходимо передать список ключей: [«complex», «car»]
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inValue – Значение для установки в глобальный словарь настроек Оркестратора GSettings
inKeyList – Список ключей, по адресу которого установить значение в GSettings
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OSCMD
(inCMDStr, inRunAsyncBool=True, inLogger=None)[исходный код]¶ L-,W+: Отправить команду на выполнение на сессию, где выполняется Оркестратор.
- Параметры
inCMDStr – Команда на отправку
inRunAsyncBool – True - выполнить команду в асинхронном режиме (не дожидаться окончания выполнения программы и не захватывать результат выполнения); False - Ждать окончания выполнения и захватывать результат
inLogger – Логгер, в который отправлять информацию о результате выполнения команды
- Результат
Строка результата выполнения команды. Если inRunAsyncBool = False
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OSCredentialsVerify
(inUserStr, inPasswordStr, inDomainStr='')[исходный код]¶ L+,W+: Выполнить верификацию доменного (локального) пользователя по паре логин/пароль
- Параметры
inUserStr – Наименование пользователя
inPasswordStr – Пароль
inDomainStr – Домен. Если домена нет - не указывать или «»
- Результат
True - Учетные данные верны; False - Учетные данные представлены некорректно
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OSLogoff
()[исходный код]¶ L+,W+: Выполнить отключение сессии, на которой выполняется Оркестратор.
- Результат
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OSRemotePCRestart
(inHostStr, inForceBool=True, inLogger=None)[исходный код]¶ L-,W+: Отправить сигнал на удаленную перезагрузку операционной системы.
!ВНИМАНИЕ! Перезапуск будет принят, если учетная запись имеет полномочия на перезапуск на соответсвующей машине.
- Параметры
inHostStr – Имя хоста, который требуется перезагрузить
inForceBool – True - принудительная перезагрузка; False - мягкая перезагрузка (дождаться окончания выполнения всех операций). По умолчанию True
inLogger – Логгер, в который отправлять информацию о результате выполнения команды
- Результат
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OSRestart
(inForceBool=True, inLogger=None)[исходный код]¶ L+,W+: Отправить сигнал на перезагрузку операционной системы.
!ВНИМАНИЕ! Перезапуск будет принят, если учетная запись имеет полномочия на перезапуск на соответсвующей машине.
- Параметры
inForceBool – True - принудительная перезагрузка; False - мягкая перезагрузка (дождаться окончания выполнения всех операций). По умолчанию True
inLogger – Логгер, в который отправлять информацию о результате выполнения команды
- Результат
-
pyOpenRPA.Orchestrator.__Orchestrator__.
Orchestrator
(inGSettings=None, inDumpRestoreBool=True, inRunAsAdministratorBool=True)[исходный код]¶ L+,W+: Инициализация ядра Оркестратора (всех потоков)
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inDumpRestoreBool – True - Восстановить информацию о RDP сессиях и StorageDict; False - не восстанавливать
inRunAsAdministratorBool – True - Проверить права администратратора и обеспечить их; False - Не обеспечивать права администратора
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorInitWait
() → None[исходный код]¶ L+,W+: Ожидать инициализацию ядра Оркестратора
!ВНИМАНИЕ!: НИ В КОЕМ СЛУЧАЕ НЕ ЗАПУСКАТЬ ЭТУ ФУНКЦИЮ В ОСНОВНОМ ПОТОКЕ, ГДЕ ПРОИСХОДИТ ИНИЦИАЛИЗАЦИЯ ЯДРА ОРКЕСТРАТОРА - ВОЗНИКНЕТ ВЕЧНЫЙ ЦИКЛ
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorIsAdmin
()[исходный код]¶ L+,W+: Проверить, запущен ли Оркестратор с правами администратора. Права администратора нужны Оркестратору только для контроля графической сессии, на которой он запущен. Если эти права выделить индивидуально, то права администратора будут необязательны.
- Результат
True - Запущен с правами администратора; False - Не запущен с правами администратора
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorIsInited
() → bool[исходный код]¶ L+,W+: Проверить, было ли проинициализировано ядро Оркестратора
- Результат
True - Ядро Оркестратора было проинициализировано; False - Требуется время на инициализацию
- Тип результата
bool
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorLoggerGet
() → logging.Logger[исходный код]¶ L+,W+: Получить логгер Оркестратора
- Результат
Логгер
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorPySearchInit
(inGlobPatternStr, inDefStr=None, inDefArgNameGSettingsStr=None, inAsyncInitBool=False)[исходный код]¶ L+,W+: Выполнить поиск и инициализацию пользовательских .py файлов в Оркестраторе (например панелей управления роботов)
Добавляет инициализированный модуль в пространство sys.modules как imported (имя модуля = имя файла без расширения).
ВНИМАНИЕ! ПРЕОБРАЗУЕТ ПУТИ МЕЖДУ WINDOWS И LINUX НОТАЦИЯМИ
# ВАРИАНТ ИСПОЛЬЗОВАНИЯ 1 (инициализация модуля py без вызова каких-либо функций внутри) # автоинициализация всех .py файлов, с префиксом CP_, которые расположены в папке ControlPanel Orchestrator.OrchestratorPySearchInit(inGlobPatternStr="ControlPanel\CP_*.py") # ВАРИАНТ ИСПОЛЬЗОВАНИЯ 2 (инициализация модуля py с вызовом функции внутри) - преимущественно для обратной совместимости старых версий панелей управления < 1.2.7 # автоинициализация всех .py файлов, с префиксом CP_, которые расположены в папке ControlPanel Orchestrator.OrchestratorPySearchInit(inGlobPatternStr="ControlPanel\CP_*.py", inDefStr="SettingsUpdate", inDefArgNameGSettingsStr="inGSettings") # ДЛЯ СПРАВКИ & ИСТОРИИ: Код выше позволил отказаться от блока кода ниже для каждого .py файла ## !!! For Relative import !!! CP Version Check try: sys.path.insert(0,os.path.abspath(os.path.join(r""))) from ControlPanel import CP_VersionCheck CP_VersionCheck.SettingsUpdate(inGSettings=gSettings) except Exception as e: gSettings["Logger"].exception(f"Exception when init CP. See below.")
- Параметры
inGlobPatternStr – Пример «..***_CP*.py»
inDefStr – ОПЦИОНАЛЬНО Строковое наименование функции. Преимущественно для обратной совместимости
inDefArgNameGSettingsStr – ОПЦИОНАЛЬНО Наименование аргумента, в который требуется передать GSettings (если необходимо)
inAsyncInitBool – ОПЦИОНАЛЬНО True - Инициализация py модулей в отдельных параллельных потоках - псевдопараллельное выполнение. False - последовательная инициализация
- Результат
Сведения об инициализированных модулях в структуре: { «ModuleNameStr»:{«PyPathStr»: «», «Module»: …}, …}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorRerunAsAdmin
()[исходный код]¶ L-,W+: Перезапустить Оркестратор с правами локального администратора. Права администратора нужны Оркестратору только для контроля графической сессии, на которой он запущен. Если эти права выделить индивидуально, то права администратора будут необязательны.
- Результат
True - Запущен с правами администратора; False - Не запущен с правами администратора
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorRestart
(inGSettings=None)[исходный код]¶ L+,W+: Перезапуск Оркестратора с сохранением информации о запущенных RDP сессиях.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorScheduleGet
() → <module „schedule“ from „C:\RPA\pyOpenRPA_repo\Resources\WPy64-3720\python-3.7.2.amd64\lib\site-packages\schedule\__init__.py“>[исходный код]¶ L+,W+: Базовый объект расписания, который можно использовать для запуска / остановки роботов. Подробнее про объект schedule и его примеры использования см. по адресу: schedule.readthedocs.io
# Однопоточный schedule Orchestrator.OrchestratorScheduleGet().every(5).seconds.do(lProcess.StatusCheckStart) #Многопоточный schedule. cм. описание Orchestrator.OrchestratorThreadStart Orchestrator.OrchestratorScheduleGet().every(5).seconds.do(Orchestrator.OrchestratorThreadStart,lProcess.StatusCheckStart)
- Результат
schedule объект
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorSessionRestore
(inGSettings=None)[исходный код]¶ L+,W+: Восстановить состояние Оркестратора, если ранее состояние Оркестратора было сохранено с помощью функции OrchestratorSessionSave:
RDP сессий, которые контролирует Оркестратор
Хранилища DataStorage в глобальном словаре настроек GSettings. DataStorage поддерживает хранение объектов Python
- (до версии 1.2.7)
_SessionLast_GSettings.pickle (binary)
- (начиная с версии 1.2.7)
_SessionLast_RDPList.json (encoding = «utf-8») _SessionLast_StorageDict.pickle (binary)
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorSessionSave
(inGSettings=None)[исходный код]¶ L+,W+: Сохранить состояние Оркестратора (для дальнейшего восстановления в случае перезапуска):
RDP сессий, которые контролирует Оркестратор
Хранилища DataStorage в глобальном словаре настроек GSettings. DataStorage поддерживает хранение объектов Python
- (до версии 1.2.7)
_SessionLast_GSettings.pickle (binary)
- (начиная с версии 1.2.7)
_SessionLast_RDPList.json (encoding = «utf-8») _SessionLast_StorageDict.pickle (binary)
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
OrchestratorThreadStart
(inDef, *inArgList, **inArgDict)[исходный код]¶ L+,W+: Запустить функцию в отдельном потоке. В таком случае получить результат выполнения функции можно только через общие переменные. (Например через GSettings)
- Параметры
inDef – Python функция
inArgList – Список неименованных аргументов функции inDef
inArgDict – Словарь именованных аргументов функции inDef
- Результат
threading.Thread экземпляр
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessDefIntervalCall
(inDef, inIntervalSecFloat, inIntervalAsyncBool=False, inDefArgList=None, inDefArgDict=None, inDefArgGSettingsNameStr=None, inDefArgLoggerNameStr=None, inExecuteInNewThreadBool=True, inLogger=None, inGSettings=None)[исходный код]¶ L+,W+: Периодический вызов функции Python.
- Параметры
inDef – Функция Python, которую потребуется периодически вызывать
inIntervalSecFloat – Интервал между вызовами функции в сек.
inIntervalAsyncBool – False - ожидать интервал inIntervalSecFloat только после окончания выполнения предыдущей итерации; True - Ожидать интервал сразу после запуска итерации
inDefArgList – Список (list) неименованных аргументов для передачи в функцию. По умолчанию None
inDefArgDict – Словарь (dict) именованных аргументов для передачи в функцию. По умолчанию None
inDefArgGSettingsNameStr – Наименование аргумента глобального словаря настроек Оркестратора GSettings (опционально)
inDefArgLoggerNameStr – Наименование аргумента логгера Оркестратора (опционально)
inExecuteInNewThreadBool – True - периодический вызов выполнять в отдельном потоке (не останавливать выполнение текущего потока); False - Выполнение периодического вызова в текущем потоке, в котором была вызвана функция ProcessDefIntervalCall. По умолчанию: True
inLogger – Логгер для фиксации сообщений выполнения функции (опционально)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessIsStarted
(inProcessNameWOExeStr)[исходный код]¶ L-,W+: Проверить, запущен ли процесс, который в наименовании содержит inProcessNameWOExeStr.
!ВНИМАНИЕ! ПРОВЕРЯЕТ ВСЕ ПРОЦЕССЫ ОПЕРАЦИОННОЙ СИСТЕМЫ. И ДРУГИХ ПОЛЬЗОВАТЕЛЬСКИХ СЕССИЙ, ЕСЛИ ОНИ ЗАПУЩЕНЫ НА ЭТОЙ МАШИНЕ.
# ПРИМЕР from pyOpenRPA import Orchestrator lProcessIsStartedBool = Orchestrator.ProcessIsStarted(inProcessNameWOExeStr = "notepad") # lProcessIsStartedBool is True - notepad.exe is running on the Orchestrator machine
- Параметры
inProcessNameWOExeStr – Наименование процесса без расширения .exe (WO = WithOut = Без) Пример: Для проверки процесса блокнота нужно указывать «notepad», не «notepad.exe»
- Результат
True - Процесс запущен на ОС ; False - Процесс не запущен на ОС, где работает Оркестратор
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessListGet
(inProcessNameWOExeList=None)[исходный код]¶ L-,W+: Вернуть список процессов, запущенных на ОС, где работает Оркестратор. В списке отсортировать процессы по количеству используемой оперативной памяти. Также можно указать перечень процессов, которые интересуют - функция будет показывать активные из них.
!ВНИМАНИЕ! ДЛЯ ПОЛУЧЕНИЯ СПИСКА ВСЕХ ПРОЦЕССОВ ОС НЕОБХОДИМО ЗАПУСКАТЬ ОРКЕСТРАТОР С ПРАВАМИ АДМИНИСТРАТОРА.
# ПРИМЕР from pyOpenRPA import Orchestrator lProcessList = Orchestrator.ProcessListGet() # Return the list of the process on the machine. # !ATTENTION! RUn orchestrator as administrator to get all process list on the machine.
- Параметры
inProcessNameWOExeList – Список процессов, среди которых искать активные. Если параметр не указывать - вернет перечень всех доступных процессов
- Результат
Сведения о запущенных процессах в следующем формате { «ProcessWOExeList»: [«notepad»,»…»], «ProcessWOExeUpperList»: [«NOTEPAD»,»…»], «ProcessDetailList»: [
- {
„pid“: 412, # Идентификатор процесса „username“: «DESKTOPUSER», „name“: „notepad.exe“, „vms“: 13.77767775, # В Мб „NameWOExeUpperStr“: „NOTEPAD“, „NameWOExeStr“: «„notepad“»},
{…}]
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessStart
(inPathStr, inArgList, inStopProcessNameWOExeStr=None)[исходный код]¶ L-,W+: Запуск процесса на сессии Оркестратора, если на ОС не запущен процесс inStopProcessNameWOExeStr.
!ВНИМАНИЕ! ПРИ ПРОВЕРКЕ РАНЕЕ ЗАПУЩЕННЫХ ПРОЦЕССОВ ПРОВЕРЯЕТ ВСЕ ПРОЦЕССЫ ОПЕРАЦИОННОЙ СИСТЕМЫ. И ДРУГИХ ПОЛЬЗОВАТЕЛЬСКИХ СЕССИЙ, ЕСЛИ ОНИ ЗАПУЩЕНЫ НА ЭТОЙ МАШИНЕ.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.ProcessStart( inPathStr = "notepad" inArgList = [] inStopProcessNameWOExeStr = "notepad") # notepad.exe will be started if no notepad.exe is active on the machine
- Параметры
inPathStr – Путь к файлу запускаемого процесса
inArgList – Список аргументов, передаваемых в запускаемый процесс. Пример: [«test.txt»]
inStopProcessNameWOExeStr – Доп. контроль: Не запускать процесс, если обнаружен запущенный процесс под наименованием inStopProcessNameWOExeStr без расширения .exe (WO = WithOut = Без)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessStop
(inProcessNameWOExeStr, inCloseForceBool, inUserNameStr='%username%')[исходный код]¶ L-,W+: Остановить процесс на ОС, где работает Оркестратор, под учетной записью inUserNameStr.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.ProcessStop( inProcessNameWOExeStr = "notepad" inCloseForceBool = True inUserNameStr = "USER_99") # Will close process "notepad.exe" on the user session "USER_99" (!ATTENTION! if process not exists no exceptions will be raised)
- Параметры
inProcessNameWOExeStr – Наименование процесса без расширения .exe (WO = WithOut = Без). Пример: Для проверки процесса блокнота нужно указывать «notepad», не «notepad.exe»
inCloseForceBool – True - принудительно завершить процесс. False - отправить сигнал на безопасное отключение (!ВНИМАНИЕ! - ОС не позволяет отправлять сигнал на безопасное отключение на другую сесиию - только на той, где работает Оркестратор)
inUserNameStr – Наименование пользователя, под именем которого искать процесс для остановки. По умолчанию «%username%» - искать процесс на текущей сессии
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessorActivityItemAppend
(inGSettings=None, inDef=None, inArgList=None, inArgDict=None, inArgGSettingsStr=None, inArgLoggerStr=None, inActivityItemDict=None)[исходный код]¶ L+,W+: Добавить активность (ActivityItem) в процессорную очередь.
# USAGE from pyOpenRPA import Orchestrator # EXAMPLE 1 def TestDef(inArg1Str, inGSettings, inLogger): pass lActivityItem = Orchestrator.ProcessorActivityItemAppend( inGSettings = gSettingsDict, inDef = TestDef, inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = "inGSettings", inArgLoggerStr = "inLogger") # Activity have been already append in the processor queue # EXAMPLE 2 def TestDef(inArg1Str): pass Orchestrator.ProcessorAliasDefUpdate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") lActivityItem = Orchestrator.ProcessorActivityItemCreate( inDef = "TestDefAlias", inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = None, inArgLoggerStr = None) Orchestrator.ProcessorActivityItemAppend( inGSettings = gSettingsDict, inActivityItemDict = lActivityItem) # Activity have been already append in the processor queue
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inDef – Функция Python или синоним (текстовый ключ)
inArgList – Список (list) неименованных аргументов к функции
inArgDict – Словарь (dict) именованных аргументов к функции
inArgGSettingsStr – Текстовое наименование аргумента GSettings (если требуется передавать)
inArgLoggerStr – Текстовое наименование аргумента logger (если требуется передавать)
inGUIDStr – ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
inThreadBool – True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
inActivityItemDict – Альтернативный вариант заполнения, если уже имеется Активность (ActivityItem). В таком случае не требуется заполнять аргументы inDef, inArgList, inArgDict, inArgGSettingsStr, inArgLoggerStr
:return ГУИД активности (ActivityItem)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessorActivityItemCreate
(inDef, inArgList=None, inArgDict=None, inArgGSettingsStr=None, inArgLoggerStr=None, inGUIDStr=None, inThreadBool=False)[исходный код]¶ L+,W+: Создать Активность (ActivityItem). Активность можно использовать в ProcessorActivityItemAppend или в Processor.ActivityListExecute или в функциях работы с Агентами.
Старая версия. Новую версию см. в ActivityItemCreate
# ПРИМЕР from pyOpenRPA import Orchestrator # ВАРИАНТ 1 def TestDef(inArg1Str, inGSettings, inLogger): pass lActivityItem = Orchestrator.ProcessorActivityItemCreate( inDef = TestDef, inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = "inGSettings", inArgLoggerStr = "inLogger") # lActivityItem: # { # "Def":TestDef, # "ArgList":inArgList, # "ArgDict":inArgDict, # "ArgGSettings": "inArgGSettings", # "ArgLogger": "inLogger" # } # ВАРИАНТ 2 def TestDef(inArg1Str): pass Orchestrator.ProcessorAliasDefUpdate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") lActivityItem = Orchestrator.ProcessorActivityItemCreate( inDef = "TestDefAlias", inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = None, inArgLoggerStr = None) # lActivityItem: # { # "Def":"TestDefAlias", # "ArgList":inArgList, # "ArgDict":inArgDict, # "ArgGSettings": None, # "ArgLogger": None # }
- Параметры
inDef – Функция Python или синоним (текстовый ключ)
inArgList – Список (list) неименованных аргументов к функции
inArgDict – Словарь (dict) именованных аргументов к функции
inArgGSettingsStr – Текстовое наименование аргумента GSettings (если требуется передавать)
inArgLoggerStr – Текстовое наименование аргумента logger (если требуется передавать)
inGUIDStr – ГУИД идентификатор активности (ActivityItem). Если ГУИД не указан, то он будет сгенерирован автоматически
inThreadBool – True - выполнить ActivityItem в новом потоке; False - выполнить последовательно в общем потоке процессорной очереди
- Результат
- lActivityItemDict= {
«Def»:inDef, # def link or def alias (look gSettings[«Processor»][«AliasDefDict»]) «ArgList»:inArgList, # Args list «ArgDict»:inArgDict, # Args dictionary «ArgGSettings»: inArgGSettingsStr, # Name of GSettings attribute: str (ArgDict) or index (for ArgList) «ArgLogger»: inArgLoggerStr, # Name of GSettings attribute: str (ArgDict) or index (for ArgList) «GUIDStr»: inGUIDStr, «ThreadBool»: inThreadBool
}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessorAliasDefCreate
(inDef, inAliasStr=None, inGSettings=None)[исходный код]¶ L+,W+: Создать синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна).
Старая версия. Новую версию см. ActivityItemDefAliasCreate
# USAGE from pyOpenRPA import Orchestrator def TestDef(): pass lAliasStr = Orchestrator.ProcessorAliasDefCreate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") # Now you can call TestDef by the alias from var lAliasStr with help of ActivityItem (key Def = lAliasStr)
- Параметры
inDef – функция Python
inAliasStr – Строковый ключ (синоним), который можно будет использовать в Активности (ActivityItem)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
Строковый ключ, который был назначен. Ключ может быть изменен, если входящий текстовый ключ был уже занят.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
ProcessorAliasDefUpdate
(inDef, inAliasStr, inGSettings=None)[исходный код]¶ L+,W+: Обновить синоним (текстовый ключ) для инициации выполнения функции в том случае, если запрос на выполнения пришел из вне (передача функций невозможна).
Старая версия. Новую версию см. ActivityItemDefAliasUpdate
# USAGE from pyOpenRPA import Orchestrator def TestDef(): pass Orchestrator.ProcessorAliasDefUpdate( inGSettings = gSettings, inDef = TestDef, inAliasStr="TestDefAlias") # Now you can call TestDef by the alias "TestDefAlias" with help of ActivityItem (key Def = "TestDefAlias")
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inDef – функция Python
inAliasStr – Строковый ключ (синоним), который можно будет использовать в Активности (ActivityItem)
- Результат
Строковый ключ, который был назначен. Ключ будет тем же, если входящий текстовый ключ был уже занят.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
PythonStart
(inModulePathStr, inDefNameStr, inArgList=None, inArgDict=None, inLogger=None)[исходный код]¶ L+,W+: Импорт модуля и выполнение функции в процессе Оркестратора.
Примечание
Импорт модуля inModulePathStr будет происходить каждый раз в вызовом функции PythonStart.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.PythonStart( inModulePathStr="ModuleToCall.py", # inModulePathStr: Working Directory\ModuleToCall.py inDefNameStr="TestDef") # Import module in Orchestrator process and call def "TestDef" from module "ModuleToCall.py"
- Параметры
inModulePathStr – Абсолютный или относительный путь (относительно рабочей директории процесса Оркестратора), по которому расположен импортируемый .py файл
inDefNameStr – Наименование функции в модуле .py
inArgList – Список (list) неименованных аргументов для передачи в функцию. По умолчанию None
inArgDict – Словарь (dict) именованных аргументов для передачи в функцию. По умолчанию None
inLogger – Логгер для фиксации сообщений выполнения функции (опционально)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionCMDRun
(inRDPSessionKeyStr, inCMDStr, inModeStr='CROSSCHECK', inGSettings=None)[исходный код]¶ L-,W+: Отправить CMD команду на удаленную сесиию через RDP окно (без Агента).
!ВНИМАНИЕ! Данная функция может работать нестабильно из-за использования графических элементов UI при работе с RDP. Мы рекомендуем использовать конструкцию взаимодействия Оркестратора с Агентом.
# ПРИМЕР from pyOpenRPA import Orchestrator lResultDict = Orchestrator.RDPSessionCMDRun( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inModeStr = 'LISTEN') # Orchestrator will send CMD to RDP and return the result (see return section)
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inCMDStr – Команда CMD, которую отправить на удаленную сессию
inModeStr – По умолчанию «CROSSCHECK». Варианты: «LISTEN» - Получить результат выполнения операции. Внимание! необходим общий буфер обмена с сессией Оркестратора! «CROSSCHECK» - Выполнить проверку, что операция была выполнена (без получения результата отработки CMD команды). Внимание! необходим общий буфер обмена с сессией Оркестратора! «RUN» - Не получать результат и не выполнять проверку
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
- Результат выполнения операции в соответсвии с параметрами инициализации функции. Выходная структура:
- {
«OutStr»: <> # Результат выполнения CMD (если inModeStr = «LISTEN») «IsResponsibleBool»: True|False # True - RDP приняло команду; False - обратная связь не была получена (если inModeStr = «CROSSCHECK»)
}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionConnect
(inRDPSessionKeyStr, inRDPTemplateDict=None, inHostStr=None, inPortStr=None, inLoginStr=None, inPasswordStr=None, inGSettings=None, inRedirectClipboardBool=True)[исходный код]¶ L-,W+: Выполнить подключение к RDP и следить за стабильностью соединения со стороны Оркестратора. !ВНИМАНИЕ! - Подключение будет проигнорировано, если соединение по таком RDP ключу уже было инициализировано ранее.
2 способа использования функции: ВАРИАНТ 1 (ОСНОВНОЙ): inGSettings, inRDPSessionKeyStr, inRDPTemplateDict. Для получения inRDPTemplateDict см. функцию Orchestrator.RDPTemplateCreate ВАРИАНТ 2 (ОБРАТНАЯ СОВМЕСТИМОСТЬ ДО ВЕРСИИ 1.1.20): inGSettings, inRDPSessionKeyStr, inHostStr, inPortStr, inLoginStr, inPasswordStr
# ПРИМЕР (ВАРИАНТ 1) from pyOpenRPA import Orchestrator lRDPItemDict = Orchestrator.RDPTemplateCreate( inLoginStr = "USER_99", inPasswordStr = "USER_PASS_HERE", inHostStr="127.0.0.1", inPortInt = 3389, inWidthPXInt = 1680, inHeightPXInt = 1050, inUseBothMonitorBool = False, inDepthBitInt = 32, inSharedDriveList=None) Orchestrator.RDPSessionConnect( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inRDPTemplateDict = lRDPItemDict) # Orchestrator will create RDP session by the lRDPItemDict configuration
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inRDPTemplateDict – Конфигурационный словарь (dict) RDP подключения (см. функцию Orchestrator.RDPTemplateCreate)
inLoginStr – Логин учетной записи, на которую будет происходить вход по RDP. Обратная совместимость до версии v 1.1.20. Мы рекомендуем использовать inRDPTemplateDict (см. функцию Orchestrator.RDPTemplateCreate)
inPasswordStr – Пароль учетной записи, на которую будет происходить вход по RDP. !ВНИМАНИЕ! Пароль нигде не сохраняется - конфиденциальность обеспечена. Обратная совместимость до версии v 1.1.20. Мы рекомендуем использовать inRDPTemplateDict (см. функцию Orchestrator.RDPTemplateCreate)
inHostStr – Имя хоста, к которому планируется подключение по RDP. Пример «77.77.22.22». Обратная совместимость до версии v 1.1.20. Мы рекомендуем использовать inRDPTemplateDict (см. функцию Orchestrator.RDPTemplateCreate)
inPortInt – RDP порт, по которому будет происходить подключение. По умолчанию 3389 (стандартный порт RDP). Обратная совместимость до версии v 1.1.20. Мы рекомендуем использовать inRDPTemplateDict (см. функцию Orchestrator.RDPTemplateCreate)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inRedirectClipboardBool – True - Синхронизировать буфер обмена между сессией Оркестратора и удаленной RDP сессией; False - Не синхронизировать буфер обмена. По умолчанию True (в целях обратной совместимости). !ВНИМАНИЕ! Для учетных записей роботов мы рекомендуем не синхронизировать буфер обмена, так как это может привести к ошибкам роботов, которые работают с клавиатурой и буфером обмена
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionDisconnect
(inRDPSessionKeyStr, inBreakTriggerProcessWOExeList=None, inGSettings=None)[исходный код]¶ L-,W+: Выполнить отключение RDP сессии и прекратить мониторить его активность.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.RDPSessionDisconnect( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey") # Orchestrator will disconnect RDP session and will stop to monitoring current RDP
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inBreakTriggerProcessWOExeList – Список процессов, наличие которых в диспетчере задач приведет к прерыванию задачи по остановке RDP соединения. Пример [«notepad»]
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionFileStoredRecieve
(inRDPSessionKeyStr, inRDPFilePathStr, inHostFilePathStr, inGSettings=None)[исходный код]¶ L-,W+: Получение файла со стороны RDP сессии на сторону Оркестратора через UI инструменты RDP окна (без Агента).
!ВНИМАНИЕ! Данная функция может работать нестабильно из-за использования графических элементов UI при работе с RDP. Мы рекомендуем использовать конструкцию взаимодействия Оркестратора с Агентом.
!ВНИМАНИЕ! Для работы функции требуется открыть доступ по RDP к тем дискам, с которых будет производится копирование файла.
# ПРИМЕР from pyOpenRPA import Orchestrator lResultDict = Orchestrator.RDPSessionFileStoredRecieve( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inHostFilePathStr = "TESTDIR\Test.py", inRDPFilePathStr = "C:\RPA\TESTDIR\Test.py") # Orchestrator will send CMD to RDP and return the result (see return section)
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inRDPFilePathStr – Откуда скопировать файл. !Абсолютный! путь на стороне RDP сессии. Пример: «C:RPATESTDIRTest.py»
inHostFilePathStr – Куда скопировать файл. Относительный или абсолютный путь к файлу на стороне Оркестратора. Пример: «TESTDIRTest.py»
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionFileStoredSend
(inRDPSessionKeyStr, inHostFilePathStr, inRDPFilePathStr, inGSettings=None)[исходный код]¶ L-,W+: Отправка файла со стороны Оркестратора на сторону RDP сессии через UI инструменты RDP окна (без Агента).
!ВНИМАНИЕ! Данная функция может работать нестабильно из-за использования графических элементов UI при работе с RDP. Мы рекомендуем использовать конструкцию взаимодействия Оркестратора с Агентом.
!ВНИМАНИЕ! Для работы функции требуется открыть доступ по RDP к тем дискам, с которых будет производится копирование файла.
# ПРИМЕР from pyOpenRPA import Orchestrator lResultDict = Orchestrator.RDPSessionFileStoredSend( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inHostFilePathStr = "TESTDIR\Test.py", inRDPFilePathStr = "C:\RPA\TESTDIR\Test.py") # Orchestrator will send CMD to RDP and return the result (see return section)
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inHostFilePathStr – Откуда взять файл. Относительный или абсолютный путь к файлу на стороне Оркестратора. Пример: «TESTDIRTest.py»
inRDPFilePathStr – Куда скопировать файл. !Абсолютный! путь на стороне RDP сессии. Пример: «C:RPATESTDIRTest.py»
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionLogoff
(inRDPSessionKeyStr, inBreakTriggerProcessWOExeList=None, inGSettings=None)[исходный код]¶ L-,W+: Выполнить отключение (logoff) на RDP сессии и прекратить мониторить активность со стороны Оркестратора.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.RDPSessionLogoff( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inBreakTriggerProcessWOExeList = ['Notepad']) # Orchestrator will logoff the RDP session
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inBreakTriggerProcessWOExeList – Список процессов, наличие которых в диспетчере задач приведет к прерыванию задачи по остановке RDP соединения. Пример [«notepad»]
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
True - Отключение прошло успешно; False - были зафиксированы ошибки при отключении.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionMonitorStop
(inRDPSessionKeyStr, inGSettings=None)[исходный код]¶ L-,W+: Прекратить мониторить активность RDP соединения со стороны Оркестратора. Данная функция не уничтожает активное RDP соединение.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.RDPSessionMonitorStop( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey") # Orchestrator will stop the RDP monitoring
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionProcessStartIfNotRunning
(inRDPSessionKeyStr, inProcessNameWEXEStr, inFilePathStr, inFlagGetAbsPathBool=True, inGSettings=None)[исходный код]¶ L-,W+: Выполнить запуск процесса на RDP сессии через графические UI инструменты (без Агента).
!ВНИМАНИЕ! Данная функция может работать нестабильно из-за использования графических элементов UI при работе с RDP. Мы рекомендуем использовать конструкцию взаимодействия Оркестратора с Агентом.
# ПРИМЕР from pyOpenRPA import Orchestrator Orchestrator.RDPSessionProcessStartIfNotRunning( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inProcessNameWEXEStr = 'Notepad.exe', inFilePathStr = "path\to he\executable\file.exe" inFlagGetAbsPathBool = True) # Orchestrator will start the process in RDP session
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inProcessNameWEXEStr – Наименование процесса с расширением .exe (WEXE - WITH EXE - С EXE). Параметр позволяет не допустить повторного запуска процесса, если он уже был запущен. Example: «Notepad.exe»
inFilePathStr – Путь к файлу запуска процесса на стороне RDP сессии
inFlagGetAbsPathBool – True - Преобразовать относительный путь inFilePathStr в абсолютный с учетом рабочей директории Оркестратора; False - Не выполнять преобразований
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionProcessStop
(inRDPSessionKeyStr, inProcessNameWEXEStr, inFlagForceCloseBool, inGSettings=None)[исходный код]¶ L-,W+: Отправка CMD команды в RDP окне на остановку процесса (без Агента).
!ВНИМАНИЕ! Данная функция может работать нестабильно из-за использования графических элементов UI при работе с RDP. Мы рекомендуем использовать конструкцию взаимодействия Оркестратора с Агентом.
# ПРИМЕР from pyOpenRPA import Orchestrator lResultDict = Orchestrator.RDPSessionProcessStop( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inProcessNameWEXEStr = 'notepad.exe', inFlagForceCloseBool = True) # Orchestrator will send CMD to RDP and return the result (see return section)
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inProcessNameWEXEStr – Наименование процесса, который требуется выключить с расширением .exe (WEXE - WITH EXE - С EXE). Пример: «Notepad.exe»
inFlagForceCloseBool – True - Принудительное отключение. False - Отправка сигнала на безопасное отключение (если процесс поддерживает)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPSessionReconnect
(inRDPSessionKeyStr, inRDPTemplateDict=None, inGSettings=None)[исходный код]¶ L-,W+: Выполнить переподключение RDP сессии и продолжить мониторить его активность.
# ПРИМЕР from pyOpenRPA import Orchestrator lRDPItemDict = Orchestrator.RDPTemplateCreate( inLoginStr = "USER_99", inPasswordStr = "USER_PASS_HERE", inHostStr="127.0.0.1", inPortInt = 3389, inWidthPXInt = 1680, inHeightPXInt = 1050, inUseBothMonitorBool = False, inDepthBitInt = 32, inSharedDriveList=None) Orchestrator.RDPSessionReconnect( inGSettings = gSettings, inRDPSessionKeyStr = "RDPKey", inRDPTemplateDict = inRDPTemplateDict) # Orchestrator will reconnect RDP session and will continue to monitoring current RDP
- Параметры
inRDPSessionKeyStr – Ключ RDP сессии - необходим для дальнейшей идентификации
inRDPTemplateDict – Конфигурационный словарь (dict) RDP подключения (см. функцию Orchestrator.RDPTemplateCreate)
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
RDPTemplateCreate
(inLoginStr, inPasswordStr, inHostStr='127.0.0.1', inPortInt=3389, inWidthPXInt=1680, inHeightPXInt=1050, inUseBothMonitorBool=False, inDepthBitInt=32, inSharedDriveList=None, inRedirectClipboardBool=True)[исходный код]¶ L-,W+: Создать шаблон подключения RDP (dict). Данный шаблон далее можно использовать в Orchestrator.RDPSessionConnect
# ПРИМЕР from pyOpenRPA import Orchestrator lRDPItemDict = Orchestrator.RDPTemplateCreate( inLoginStr = "USER_99", inPasswordStr = "USER_PASS_HERE", inHostStr="127.0.0.1", inPortInt = 3389, inWidthPXInt = 1680, inHeightPXInt = 1050, inUseBothMonitorBool = False, inDepthBitInt = 32, inSharedDriveList=None, inRedirectClipboardBool=False)
- Параметры
inLoginStr – Логин учетной записи, на которую будет происходить вход по RDP
inPasswordStr – Пароль учетной записи, на которую будет происходить вход по RDP. !ВНИМАНИЕ! Пароль нигде не сохраняется - конфиденциальность обеспечена
inHostStr – Имя хоста, к которому планируется подключение по RDP. Пример «77.77.22.22»
inPortInt – RDP порт, по которому будет происходить подключение. По умолчанию 3389 (стандартный порт RDP)
inWidthPXInt – Разрешение ширины RDP графической сессии в пикселях. По умолчанию 1680
inHeightPXInt – Разрешение высоты RDP графической сессии в пикселях. По умолчанию 1050
inUseBothMonitorBool – True - Использовать все подключенные мониторы на RDP сессии; False - Использовать только один монитор на подключенной RDP сессии
inDepthBitInt – Глубина цвета на удаленной RDP графической сессии. Допустимые варианты: 32 || 24 || 16 || 15. По умолчанию 32
inSharedDriveList – Перечень общих дисков, доступ к которым предоставить на сторону удаленной RDP сессии. Пример: [«c», «d»]
inRedirectClipboardBool – True - Синхронизировать буфер обмена между сессией Оркестратора и удаленной RDP сессией; False - Не синхронизировать буфер обмена. По умолчанию True (в целях обратной совместимости). !ВНИМАНИЕ! Для учетных записей роботов мы рекомендуем не синхронизировать буфер обмена, так как это может привести к ошибкам роботов, которые работают с клавиатурой и буфером обмена
- Результат
- {
«Host»: inHostStr, # Адрес хоста, пример «77.77.22.22» «Port»: str(inPortInt), # RDP порт, пример «3389» «Login»: inLoginStr, # Логин УЗ, пример «test» «Password»: inPasswordStr, # Пароль УЗ, пример «test» «Screen»: {
»Width»: inWidthPXInt, # Разрешение ширины RDP графической сессии в пикселях. По умолчанию 1680 «Height»: inHeightPXInt, Разрешение высоты RDP графической сессии в пикселях. По умолчанию 1050 «FlagUseAllMonitors»: inUseBothMonitorBool, «DepthBit»: str(inDepthBitInt)
}, «SharedDriveList»: inSharedDriveList, «RedirectClipboardBool»: True, ###### PROGRAM VARIABLE ############ «SessionHex»: «77777sdfsdf77777dsfdfsf77777777», «SessionIsWindowExistBool»: False, «SessionIsWindowResponsibleBool»: False, «SessionIsIgnoredBool»: False
}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
SchedulerActivityTimeAddWeekly
(inTimeHHMMStr='23:55:', inWeekdayList=None, inActivityList=None, inGSettings=None)[исходный код]¶ L+,W+: Добавить активность по расписанию. Допускается указание времени и дней недели, в которые производить запуск.
# ПРИМЕР from pyOpenRPA import Orchestrator # ВАРИАНТ 1 def TestDef(inArg1Str): pass lActivityItem = Orchestrator.ProcessorActivityItemCreate( inDef = TestDef, inArgList=[], inArgDict={"inArg1Str": "ArgValueStr"}, inArgGSettingsStr = None, inArgLoggerStr = None) Orchestrator.SchedulerActivityTimeAddWeekly( inGSettings = gSettingsDict, inTimeHHMMStr = "04:34", inWeekdayList=[2,3,4], inActivityList = [lActivityItem]) # Activity will be executed at 04:34 Wednesday (2), thursday (3), friday (4)
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inTimeHHMMStr – Время запуска активности. Допускаются значения от «00:00» до «23:59». Example: «05:29»
inWeekdayList – Список (list) дней недели, в которые выполнять запуск список активностей (ActivityItem list). 0 (понедельник) - 6 (воскресенье). Пример: [0,1,2,3,4]. По умолчанию устанавливается каждый день [0,1,2,3,4,5,6]
inActivityList – Список активностей (ActivityItem list) на исполнение
-
pyOpenRPA.Orchestrator.__Orchestrator__.
StorageRobotExists
(inRobotNameStr)[исходный код]¶ L+,W+: Проверить, существует ли ключ inRobotNameStr в хранилище пользовательской информации StorageDict (GSettings > StarageDict)
- Параметры
inRobotNameStr – Наименование (ключ) робота. !ВНИМАНИЕ! Наименование чувствительно к регистру
- Результат
True - ключ робота присутствует в хранилище; False - отсутствует
-
pyOpenRPA.Orchestrator.__Orchestrator__.
StorageRobotGet
(inRobotNameStr)[исходный код]¶ L+,W+: Получить содержимое по ключу робота inRobotNameStr в хранилище пользовательской информации StorageDict (GSettings > StarageDict)
- Параметры
inRobotNameStr – Наименование (ключ) робота. !ВНИМАНИЕ! Наименование чувствительно к регистру
- Результат
Значение или структура, которая расположена по адресу (GSettings > StarageDict > inRobotNameStr)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
UACKeyListCheck
(inRequest, inRoleKeyList) → bool[исходный код]¶ L+,W+: Проверить права доступа для пользователя запроса по списку ключей до права.
# ВАРИАНТ ИСПОЛЬЗОВАНИЯ 1 (инициализация модуля py без вызова каких-либо функций внутри) # автоинициализация всех .py файлов, с префиксом CP_, которые расположены в папке ControlPanel Orchestrator.UACKeyListCheck(inRequest=lRequest, inRoleKeyList=["ROBOT1","DISPLAY_DASHBOARD"])
- Параметры
inRequest – Экземпляр request (from http.server import BaseHTTPRequestHandler)
inRoleKeyList – Список ключей, права доступа к которому требуется проверить
- Результат
True - Пользователь обладает соответствующим правом; False - Пользователь не обладает соответствующим правом
-
pyOpenRPA.Orchestrator.__Orchestrator__.
UACSuperTokenUpdate
(inSuperTokenStr, inGSettings=None)[исходный код]¶ L+,W+: Добавить супертокен (полный доступ). Супертокены используются для подключения к Оркестратору по API
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inSuperTokenStr – Кодовая строковая комбинация, которая будет предоставлять доступ роботу / агенту для взаимодействия с Оркестратором по API
-
pyOpenRPA.Orchestrator.__Orchestrator__.
UACUpdate
(inADLoginStr, inADStr='', inADIsDefaultBool=True, inURLList=None, inRoleHierarchyAllowedDict=None, inGSettings=None)[исходный код]¶ L+,W+: Дообогащение словаря доступа UAC пользователя inADStrinADLoginStr. Если ранее словарь не устанавливался, то по умолчанию он {}. Далее идет дообогащение теми ключами, которые присутствуют в inRoleHierarchyAllowedDict
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inADLoginStr – Логин пользователя
inADStr – Домен пользователя. Если пусто - локальный компьютер или домен по-умолчанию, который настроен в ОС
inADIsDefaultBool – True - домен настроен по умолчанию; False - домен требуется обязательно указывать
inURLList –
Список разрешенных URL для пользователя. Для добавления URL рекомендуем использовать функции WebURLConnectDef, WebURLConnectFile, WebURLConnectFolder Формат: {
»Method»: «GET» || «POST», «URL»: «/GetScreenshot», «MatchType»: «BeginWith» || «Equal» || «EqualCase» || «Contains» || «EqualNoParam», «ResponseDefRequestGlobal»: Функция python || «ResponseFilePath»: Путь к файлу || «ResponseFolderPath»: Путь к папке, в которой искать файлы, «ResponseContentType»: пример MIME «image/png», «UACBool»:False - не выполнять проверку прав доступа по запросу, «UseCacheBool»: True - кэшировать ответ},
inRoleHierarchyAllowedDict – Словарь доступа пользователя UAC. Пустой словарь - полный доступ
-
pyOpenRPA.Orchestrator.__Orchestrator__.
UACUserDictGet
(inRequest) → dict[исходный код]¶ L+,W+: Вернуть UAC (User Access Control) словарь доступов для пользователя, который отправил запрос. Пустой словарь - супердоступ (доступ ко всему)
- Параметры
inRequest – Экземпляр request (from http.server import BaseHTTPRequestHandler)
- Результат
Словарь доступов пользователя. Пустой словарь - супердоступ (доступ ко всему)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebAuditMessageCreate
(inRequest=None, inOperationCodeStr='-', inMessageStr='-')[исходный код]¶ L+,W+: Создание сообщения ИТ аудита с такими сведениями как (Домен, IP, логин и тд.). Данная функция особенно актуальна в том случае, если требуется реализовать дополнительные меры контроля ИТ системы.
# ПРИМЕР from pyOpenRPA import Orchestrator lWebAuditMessageStr = Orchestrator.WebAuditMessageCreate( inRequest = lRequest, inOperationCodeStr = "OP_CODE_1", inMessageStr="Success"): # Логгирование сообщения lLogger.info(lWebAuditMessageStr)
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
inOperationCodeStr – Код операции, который принят в компании в соответствии с регламентными процедурами
inMessageStr – Дополнительное сообщение, которое необходимо отправить в сообщение об ИТ аудите
- Результат
Формат сообщения: «WebAudit :: DOMAINUSER@101.121.123.12 :: operation code :: message»
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebCPUpdate
(inCPKeyStr, inHTMLRenderDef=None, inJSONGeneratorDef=None, inJSInitGeneratorDef=None, inGSettings=None)[исходный код]¶ L+,W+: Добавить панель управления робота в Оркестратор. Для панели управления открыт доступ для использования функции-генератора HTML, генератора JSON данных, генератора JS кода.
- Параметры
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
inCPKeyStr – Текстовый ключ панели управления. Ключ для каждой панели управления должен быть уникальным!
inHTMLRenderDef – Функция Python для генерации HTML кода. Для использования Jinja2 шаблонов HTML см. pyOpenRPA.Orchestrator.Managers.ControlPanel
inJSONGeneratorDef – Функция Python для генерации JSON контейнера для отправки на клиентскую часть Оркестратора
inJSInitGeneratorDef – Функция Python для генерации JS кода для отправки на клиентскую часть Оркестратора
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebListenCreate
(inServerKeyStr='Default', inAddressStr='', inPortInt=80, inCertFilePEMPathStr=None, inKeyFilePathStr=None, inGSettings=None)[исходный код]¶ L+,W+: Настроить веб-сервер Оркестратора.
- Параметры
inAddressStr – IP адрес для прослушивания. Если «», то прослушивать запросы со всех сетевых карт. Если «127.0.0.1», то слушать запросы только с той ОС, на которой работает Оркестратор
inPortInt – Номер порта для прослушивания. Если HTTP - 80; Если HTTPS - 443. По умолчанию 80. Допускается установка других портов
inCertFilePEMPathStr – Путь файлу сертификата, сгенерированного в .pem (base64) формате. Обязателен при использовании защищенного HTTPS/SSL соединения.
inKeyFilePathStr – Путь к файлу закрытого ключа в base64 формате
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestGet
()[исходный код]¶ L+,W+: Вернуть экземпляр HTTP запроса, если функция вызвана в потоке, который был порожден для отработки HTTP запроса пользователя.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestParseBodyBytes
(inRequest=None)[исходный код]¶ L+,W+: Извлечь данные в байт виде из тела (body) HTTP запроса.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
Строка байт b““ или None (если тело запроса было пустым)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestParseBodyJSON
(inRequest=None)[исходный код]¶ L+,W+: Извлечь из тела (body) запроса HTTP JSON данные и преобразовать в Dict / List структуры языка Python.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
Словарь (dict), список (list) или None (если тело запроса было пустым)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestParseBodyStr
(inRequest=None)[исходный код]¶ L+,W+: Извлечь данные в виде строки из тела (body) HTTP запроса.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
Текстовая строка „“ или None (если тело запроса было пустым)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestParseFile
(inRequest=None)[исходный код]¶ L+,W+: Извлечь файл (наименование + содержимое в виде строки байт b““) из HTTP запроса пользователя.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
Кортеж формата (FileNameStr, FileBodyBytes) or (None, None), если файл не был обнаружен
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestParsePath
(inRequest=None)[исходный код]¶ L+,W+: Извлечь декодированный URL путь из HTTP запроса пользователя в формате строки.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
str, пример: /pyOpenRPA/Debugging/DefHelper
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebRequestResponseSend
(inResponeStr, inRequest=None, inContentTypeStr: Optional[str] = None, inHeadersDict: Optional[dict] = None)[исходный код]¶ L+,W+: Установить ответ на HTTP запрос пользователя.
- Параметры
inResponeStr – Тело ответа (строка)
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
inContentTypeStr – МИМЕ тип. Пример: «html/text»
inHeadersDict – Словарь (dict) ключей, которые добавить в headers HTTP ответа на запрос пользователя
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebURLConnectDef
(inMethodStr, inURLStr, inMatchTypeStr, inDef, inContentTypeStr='application/octet-stream', inGSettings=None, inUACBool=None)[исходный код]¶ L+,W+: Подключить функцию Python к URL.
- Параметры
inMethodStr – Метод доступа по URL «GET» || «POST»
inURLStr – URL адрес. Пример «/index»
inMatchTypeStr – Тип соответсвия строки URL с inURLStr: «BeginWith» || «Contains» || «Equal» || «EqualCase» || «EqualNoParam»
inDef – Функция Python. Допускаются функции, которые принимают следующие наборы параметров: 2:[inRequest, inGSettings], 1: [inRequest], 0: []
inContentTypeStr – МИМЕ тип. По умолчанию: «application/octet-stream»
inUACBool – True - Выполнять проверку прав доступа пользователя перед отправкой ответа; False - не выполнять проверку прав доступа пользователя
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebURLConnectFile
(inMethodStr, inURLStr, inMatchTypeStr, inFilePathStr, inContentTypeStr=None, inGSettings=None, inUACBool=None, inUseCacheBool=False)[исходный код]¶ L+,W+: Подключить файл к URL.
- Параметры
inMethodStr – Метод доступа по URL «GET» || «POST»
inURLStr – URL адрес. Пример «/index»
inMatchTypeStr – Тип соответсвия строки URL с inURLStr: «BeginWith» || «Contains» || «Equal» || «EqualCase» || «EqualNoParam»
inFilePathStr – Путь к файлу на диске, который возвращать пользователю по HTTP
inContentTypeStr – МИМЕ тип. Если None - выполнить автоматическое определение
inUACBool – True - Выполнять проверку прав доступа пользователя перед отправкой ответа; False - не выполнять проверку прав доступа пользователя
inUseCacheBool – True - выполнить кэширование страницы, чтобы в следющих запросах открыть быстрее; False - не кэшировать
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebURLConnectFolder
(inMethodStr, inURLStr, inMatchTypeStr, inFolderPathStr, inGSettings=None, inUACBool=None, inUseCacheBool=False)[исходный код]¶ L+,W+: Подключить папку к URL.
- Параметры
inMethodStr – Метод доступа по URL «GET» || «POST»
inURLStr – URL адрес. Пример «/index»
inMatchTypeStr – Тип соответсвия строки URL с inURLStr: «BeginWith» || «Contains» || «Equal» || «EqualCase» || «EqualNoParam»
inFolderPathStr – Путь к папке на диске, в которой искать файл и возвращать пользователю по HTTP
inUACBool – True - Выполнять проверку прав доступа пользователя перед отправкой ответа; False - не выполнять проверку прав доступа пользователя
inUseCacheBool – True - выполнить кэширование страницы, чтобы в следющих запросах открыть быстрее; False - не кэшировать
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebURLIndexChange
(inURLIndexStr: str = '/')[исходный код]¶ L+,W+: Изменить адрес главной страницы Оркестратора. По умолчанию „/“
- Параметры
inURLIndexStr (str, опционально) – Новый адрес главной страницы Оркестратора.
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebUserInfoGet
(inRequest=None)[исходный код]¶ L+,W+: Информация о пользователе, который отправил HTTP запрос.
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
Сведения в формате {«DomainUpperStr»: «PYOPENRPA», «UserNameUpperStr»: «IVAN.MASLOV»}
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebUserIsSuperToken
(inRequest=None, inGSettings=None)[исходный код]¶ L+,W+: Проверить, авторизован ли HTTP запрос с помощью супер токена (токен, который не истекает).
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
inGSettings – Глобальный словарь настроек Оркестратора (синглтон)
- Результат
True - является супертокеном; False - не является супертокеном
-
pyOpenRPA.Orchestrator.__Orchestrator__.
WebUserUACHierarchyGet
(inRequest=None)[исходный код]¶ L+,W+: Вернуть словарь доступа UAC в отношении пользователя, который выполнил HTTP запрос inRequest
- Параметры
inRequest – Экземпляр HTTP request. Опционален, если сообщение фиксируется из под потока, который был инициирован запросом пользователя
- Результат
UAC словарь доступа или {}, что означает полный доступ