Запуск альтернативного кода в любом месте шаблона

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Здравствуйте. Имеется большой код шаблона с большим числом действий. Также имеется сайт, при работе с которым часто происходит разлогинивание в абсолютно любом месте. Есть ли какая-то возможность в любом месте кода при возникновении окна авторизации запускать проверку на наличие именно этого окна, производить авторизацию и возвращаться на тот же самый шаг кода, где вылезло окно? На каждый шаг прописывать выход по красной ветке не подходит, шаблон большой и действий больше 100.

Про BadEnd знаю, но как заставить после его отработки вернуть продолжение программы с места ошибки, не могу понять. Повторюсь, что окно авторизации может вылезти абсолютно в любом месте и продолжить работу нужно именно с этого шага.
Заранее спасибо за любую помощь.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 673
Благодарностей
1 855
Баллы
113
  • Спасибо
Реакции: tanichev и blamingas

Alex733

Client
Регистрация
27.11.2017
Сообщения
316
Благодарностей
230
Баллы
43
Если в кубиках предусмотрено ожидание нужного элемента, то реализовать
асинхронный метод проверки на логин в начале шаблона.
Есть недостаток: возможны утечки памяти, если поток работает долго и если не прибивать асинхронный метод после завершения потока.
 
  • Спасибо
Реакции: blamingas

nicanil

Client
Регистрация
06.03.2016
Сообщения
2 242
Благодарностей
1 802
Баллы
113
Если используете C#, то можно создать свой метод, который перед необходимым действием будет проверять наличие\отсутствие нужного текста\окна. Если текст есть, то логинимся повторно и только потом приступаем к действию.

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

Но в любом случае, текущий проект придётся немного (или много) переписать.
 
  • Спасибо
Реакции: blamingas

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
На каждый шаг прописывать выход по красной ветке не подходит, шаблон большой и действий больше 100.
это графический редактор, поэтому придется использовать красную линию после каждого действия.
Либо полностью писать на c# , но там будет тоже самое. надо будет ловить исключения и вызывать обработчик.
 
  • Спасибо
Реакции: blamingas

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Спасибо. Часть кода на c#, но большинство все же на стандартных кубиках. Чтобы не переписывать весь код, добавляя исключений, то идея с асинхронным методом довольно интересная, но пока что сложновата в реализации с моим уровнем C#.

В мыслях вертится идея как-то попытаться привязаться к id действия, вызвавшего ошибку.
Допустим, есть идентификатор действия 70367991-a1a4-4cab-a6e7-b8a81b018a5c в месте где возникла ошибка, вызванная ненахождением нужного элемента на странице вследствие выскочившего окна авторизации. Программа уходит на BadEnd, где происходит авторизация. И вот после окончания авторизации, возможно ли как-то используя тот самый id ошибки, ведущий на кубик где произошла остановка, вернуться из BadEnd назад на него и продолжить работу с места остановки?
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
Спасибо. Часть кода на c#, но большинство все же на стандартных кубиках. Чтобы не переписывать весь код, добавляя исключений, то идея с асинхронным методом довольно интересная, но пока что сложновата в реализации с моим уровнем C#.

В мыслях вертится идея как-то попытаться привязаться к id действия, вызвавшего ошибку.
Допустим, есть идентификатор действия 70367991-a1a4-4cab-a6e7-b8a81b018a5c в месте где возникла ошибка, вызванная ненахождением нужного элемента на странице вследствие выскочившего окна авторизации. Программа уходит на BadEnd, где происходит авторизация. И вот после окончания авторизации, возможно ли как-то используя тот самый id ошибки, ведущий на кубик где произошла остановка, вернуться из BadEnd назад на него и продолжить работу с места остановки?
Забудь про BadEnd. это аварийный выход. Он срабатывает только один раз за запуск шаблона.
Телепортов тоже нет и не будет.
используй красные линии для обработки исключений, это графический редактор, здесь только так.
 
  • Спасибо
Реакции: blamingas

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Понял, спасибо за помощь!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)