<h3class="ui center aligned icon header">СОСТОЯНИЕ</h3>
{% if config.robot_is_started_bool %}
<h2class="ui center aligned icon header green">
<iclass="circular play icon"></i>
Включен
</h2>
{% else %}
<h2class="ui center aligned icon header red">
<iclass="circular stop icon"></i>
Выключен
</h2>
{% endif %}
</div>
<divclass="column">
<h3class="ui center aligned icon header">ДЕЙСТВИЯ</h3>
<pclass="ui center aligned"><buttonclass="ui right labeled icon button"id="{{config.robot_key_str}}-log-btn"onclick="{{config.robot_key_str}}_logs()"><iclass="right file alternate icon"></i> Скачать лог </button></p>
<pclass="ui center aligned"><buttonclass="ui right labeled icon button"id="{{config.robot_key_str}}-info-btn"onclick="{{config.robot_key_str}}_info()"><iclass="right info icon"></i> Скачать инструкцию </button></p>
</div>
</div>
<divclass="ui vertical divider">
</div>
</div>
{% if config.robot_is_started_bool %}
<pclass="ui center aligned"><buttononclick="{{config.robot_key_str}}_action_stop()"id="{{config.robot_key_str}}-action-stop"class="ui fluid right labeled icon button red"><iclass="right stop icon"></i> Выключить робота </button></p>
{% else %}
<pclass="ui center aligned"><buttononclick="{{config.robot_key_str}}_action_start()"id="{{config.robot_key_str}}-action-start"class="ui fluid right labeled icon button green"><iclass="right play icon"></i> Включить робота </button></p>
{% endif %}
<h3class="ui center aligned icon header">ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ</h3>
rem "%~dp0..\Resources" - УСТАНОВКА ПУТИ ОТ РАСПОЛОЖЕНИЯ ФАЙЛА, ВКОТОРОМ НАПИСАН ЭТОТ ТЕКСТ. ВНИМАНИЕ! ПОСЛЕ %~dp0 СИМВОЛ \ СТАВИТЬ НЕ ТРЕБУЕТСЯ
rem "%cd%\..\Resources" - УСТАНОВКА ПУТИ ОТ РАБОЧЕЙ ДИРЕКТОРИИ, В КОТОРОЙ БЫЛ ВЫЗВАН ЭТОТ СКРИПТ. ВНИМАНИЕ! ПОСЛЕ %cd% СИМВОЛ \ СТАВИТЬ ТРЕБУЕТСЯ ОБЯЗАТЕЛЬНО
rem Пример использования python-win-configure.cmd python - выполнить команду python в настроенном окружении
gotocomment_set_path
rem ПРИМЕР КОНСТРУКЦИИ ДЛЯ ДОБАВЛЕНИЯ ДИРЕКТОРИИ В ПЕРЕМЕННУЮ ОКРУЖЕНИЯ PATH
* **Вариант 1:** Подписка на премиальную техническую поддержку от вендора
* **Вариант 1:** Подписка на премиальную техническую поддержку от вендора (ежемесячно от 66 900 руб. без НДС)
* **Вариант 2:** Покупка бессрочной лицензии на текущую версию pyOpenRPA и ниже
* **Вариант 2:** Покупка бессрочной лицензии на текущую версию pyOpenRPA и ниже (разовый платеж 299 000 руб. без НДС)
* **Вариант 3:** Покупка бессрочной лицензии на 1-го робота, который будет использовать текущую версию pyOpenPRA и ниже
* **Вариант 3:** Покупка бессрочной лицензии на 1-го робота, который будет использовать текущую версию pyOpenPRA и ниже (разовый платеж 99 000 руб. без НДС)
Используя ПО pyOpenRPA Вы осознаете свою ответственность в случаях нарушения лицензионного законодательства и совершения неправомерных действий.
Используя ПО pyOpenRPA Вы осознаете свою ответственность в случаях нарушения лицензионного законодательства и совершения неправомерных действий.
@ -163,8 +163,8 @@ pyOpenRPA - роботы помогут!
Использование компонента OpenCV: ОС Windows 7/8/8/10 (Windows Server только с 2016)
Использование компонента OpenCV: ОС Windows 7/8/8/10 (Windows Server только с 2016)
В июле 2022 будет выпущен релиз pyOpenRPA, который будет работать на ОС семейства Linux (Ubuntu / Astra)
В июле 2022 будет выпущен релиз pyOpenRPA, который будет работать на ОС семейства Linux (Ubuntu / Astra)
errorMsg="Попытка авторизации не прошла успешно (для пользователя не заявлен доступ к оркестратору pyOpenRPA. Обратитесь в техническую поддержку)"
raiseErrorException(text=errorMsg)
else:
errorMsg="Попытка авторизации не прошла успешно (неверная пара логин / пароль)"
raiseErrorException(text=errorMsg)
else:
else:
raiseAuthException()
raiseHTTPException(status_code=401,detail="Попытка авторизации не прошла успешно (неполная пара логин / пароль)",headers={'Content-type':'text/html','WWW-Authenticate':'Basic'})
else:returnNone# Credentials are not required - return none
else:returnNone# Credentials are not required - return none
# Перевод встроенных fastapi функций на авторизацию
lRouteList=[]
lRouteList=[]
forlIteminapp.router.routes:
forlIteminapp.router.routes:
lRouteList.append(lItem)
lRouteList.append(lItem)
@ -144,81 +123,32 @@ for lItem in lRouteList:
tags=["FastAPI"]
tags=["FastAPI"]
)
)
# объявление классов для дальнейшей обработки вызываемых исключений (обязательно должны наследоваться от EXception)
asyncdefBackwardCompatibityBeginWrapperNoAuth(inBeginTokenStr,inRequest:Request,inResponse:Response):# Old from v1.3.1 (updated to FastAPI)
defBackwardCompatibityBeginWrapperNoAuth(inBeginTokenStr,inRequest:Request,inResponse:Response,inBodyStr:str=Body("")):# Old from v1.3.1 (updated to FastAPI)
lUACBool=dUAC(inKeyList=lUACCPTemplateKeyList+[lItemKeyStr])# Check if render function is applicable User Access Rights (UAC)
lUACBool=dUAC(inRoleKeyList=lUACCPTemplateKeyList+[lItemKeyStr])# Check if render function is applicable User Access Rights (UAC)
iflItemKeyStr=="VersionCheck":lUACBool=True# For backward compatibility for the old fron version which not reload page when new orch version is comming
iflItemKeyStr=="VersionCheck":lUACBool=True# For backward compatibility for the old fron version which not reload page when new orch version is comming
lUACBool=dUAC(inKeyList=lUACCPTemplateKeyList+[lItemKeyStr])# Check if render function is applicable User Access Rights (UAC)
lUACBool=dUAC(inRoleKeyList=lUACCPTemplateKeyList+[lItemKeyStr])# Check if render function is applicable User Access Rights (UAC)
iflItemKeyStr=="VersionCheck":lUACBool=True# For backward compatibility for the old fron version which not reload page when new orch version is comming
iflItemKeyStr=="VersionCheck":lUACBool=True# For backward compatibility for the old fron version which not reload page when new orch version is comming
iflValueStr!=lServerLogListHashStrandlServerLogListHashStr!=""andlServerLogListHashStr!=None:# Case if Hash is not equal Fix because None can be obtained without JSON decode
iflValueStr!=lServerLogListHashStrandlServerLogListHashStr!=""andlServerLogListHashStr!=None:# Case if Hash is not equal Fix because None can be obtained without JSON decode
iflL:lL.warning("Внимание! Вручную была вызвана функция SettingsTemplate.Create - начиная с версии pyOpenRPA v1.2.7 глобальный словарь настроек создается автоматически!")
iflL:lL.warning("Pay attention! Your code has been call SettingsTemplate.Create - since pyOpenRPA v1.2.7 GSettings is creating automatically")
"""L+,W+: Вернуть глобальный словарь настроек Оркестратора. Во время выполнения программы глобальный словарь настроек существует в единственном экземпляре (синглтон)
"""L+,W+: Применить операцию .append к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. Пример: Добавить значение в конец списка (list).
"""L+,W+: Вернуть глобальный словарь настроек Оркестратора. Во время выполнения программы глобальный словарь настроек существует в единственном экземпляре (синглтон)
"""L+,W+: Применить операцию .append к обьекту, расположенному по адресу списка ключей inKeyList в глобальном словаре настроек Оркестратора GSettings. Пример: Добавить значение в конец списка (list).
<metaname="description"content="Ведущий RPA разработчик российского программного обеспечения. RPA платформа позволяет решать любые бизнес-задачи. Комплексное решение от компании RPA pyOpenRPA. Первое открытое российское RPA решение для крупного / среднего / малого бизнеса. Доступная автоматизация для каждого."/>
<metaname="description"content="Ведущий RPA разработчик российского программного обеспечения. RPA платформа позволяет решать любые бизнес-задачи. Комплексное решение от компании RPA pyOpenRPA. Первое открытое российское RPA решение для крупного / среднего / малого бизнеса. Доступная автоматизация для каждого."/>
<div><iclass="clipboard list icon"></i><span>Роботы</span><iclass="clipboard list icon"></i></div>
<iclass="clipboard list icon"></i>
<divid="orpa-workspace-expand"onclick="orpa_workspace_expand()"style="margin-top:10px; color:teal; font-weight:normal; cursor: pointer"><iclass="expand icon"></i><span>Развернуть на весь экран</span><iclass="expand icon"></i></div>
Роботы
<divid="orpa-workspace-compress"onclick="orpa_workspace_compress()"style="margin-top:10px; color:teal; font-weight:normal; cursor: pointer; display:none;"><iclass="compress icon"></i><span>Свернуть на часть экрана</span><iclass="compress icon"></i></div>
"""L-,W+: Техническая функция: Получить список параметров последних уровней UIO селектора по UIO объектам, которые удовлетворяют входящим inUIOSelector, поиск по которым будет производится от уровня inElement.
"""L-,W+: Техническая функция: Получить список параметров последних уровней UIO селектора по UIO объектам, которые удовлетворяют входящим inUIOSelector, поиск по которым будет производится от уровня inElement.
"""L-,W+: Выполнить активность inActionName над UIO объектом, полученным с помощью UIO селектора inUIOSelector. Описание возможных активностей см. ниже.
"""L-,W+: Выполнить активность inActionName над UIO объектом, полученным с помощью UIO селектора inUIOSelector. Описание возможных активностей см. ниже.
"""L+,W+: Выполнить запуск браузера Chrome. Если вы скачали pyOpenRPA вместе с репозиторием, то будет использоваться встроенный браузер Google Chrome. Если установка pyOpenRPA производилась другим способом, то требуется указать расположение браузера Google Chrome и соответствующего WebDriver
"""L+,W+: Выполнить запуск браузера Chrome. Если вы скачали pyOpenRPA вместе с репозиторием, то будет использоваться встроенный браузер Google Chrome. Если установка pyOpenRPA производилась другим способом, то требуется указать расположение браузера Google Chrome и соответствующего WebDriver.
"""L+,W+: Ожидать появление UI элемента на веб странице (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
"""L+,W+: Ожидать появление UI элемента на веб странице (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
"""L+,W+: Ожидать исчезновение UI элемента с веб страницы (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
"""L+,W+: Ожидать исчезновение UI элемента с веб страницы (блокирует выполнение потока), заданного по UIO селектору inUIOSelectorStr. Выполнять ожидание на протяжении inWaitSecFloat (по умолчанию 60 сек.). Проверка производится с интервалом inWaitIntervalSecFloat (по умолчанию 1 сек.)
exceptJavascriptException:raiseJavascriptException("Отсутствуют координаты для идентификации веб-элемента. Пожалуйста, в следующий раз двигайте мышью")