Возникает примерно через раз при выполнении команды "Перейти к определению" ИР адаптера.
ScriptEngine.Machine.ExternalSystemException: {Модуль C:\Portable\TurboConf\user_scripts\RDT.os / Ошибка в строке: 639 / Внешнее исключение (System.Runtime.InteropServices.COMException): Время ожидания операции истекло. (Исключение из HRESULT: 0x80131505)}
СтарыйИД = ТурбоКонф.ПолучитьRuntimeId();
---> System.Runtime.InteropServices.COMException: Время ожидания операции истекло. (Исключение из HRESULT: 0x80131505)
в UIAutomationClient.IUIAutomation.GetFocusedElement()
в TurboConf.Core.TurboAPI.TurboApi.GetCurrentElementRuntimeId(Int32 parentLevels)
в TurboConf.HostApplication.Api.GetCurrentElementRuntimeId()
в lambda_method(Closure , Api , IValue[] )
в ScriptEngine.Machine.Contexts.AutoContext`1.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в ScriptEngine.Machine.MachineInstance.ResolveMethodFunc(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
--- Конец трассировки внутреннего стека исключений ---
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, IVariable[] parameters, ScriptOptions options)
Ссылка скрыта
#1, ред. 19 ноября 2023 18:32
Как это воспроизвести? Пробовал вызывать несколько раз, не воспроизводится.
#2, 19 ноября 2023 19:14
Стабильного воспроизведения не выявил. Возникает эта ошибка иногда. Раньше она возникала чаще (до того, как ты увеличил макс. время ожидания).
#3, ред. 19 ноября 2023 19:21
(2) tormozit, попробуй выгрузить настройки в файл. В нем увеличить параметр
UIAutomationConnectionTimeout до 4000, загрузить снова и поработать, будет ли дальше возникать эта ошибка.
#4, 21 ноября 2023 23:33
С настройками UIAutomationConnectionTimeout 4000 мс проблема повторяется?
bolsun изменил статус на На выяснении
#5, ред. 22 ноября 2023 00:39
UIAutomationConnectionTimeout не менял, т.к. значение 4000 мс показалось выходит за разумные рамки. Проблема пока больше не возникала, но возможно заслонена другими проблемами.
#6, 22 ноября 2023 00:43
Это нормальное значение, когда платформа занята и не отвечает. Раньше значение параметра было - бесконечность.
#7, 22 ноября 2023 00:44
Но раз проблемы больше нет, то пока тикет закрываю
bolsun изменил статус на Закрыто
#8, ред. 25 ноября 2023 23:20
Сегодня ошибка возникала уже 2 раза в той же ситуации. При этом платформа не подвисала.
Попробовал еще 2 раза подряд. Ошибка повторяется. На 3-й раз удалось выполнить команду без ошибки.
ScriptEngine.Machine.ExternalSystemException: {Модуль C:\Portable\TurboConf\user_scripts\RDT.os / Ошибка в строке: 651 / Внешнее исключение (System.Runtime.InteropServices.COMException): Время ожидания операции истекло. (Исключение из HRESULT: 0x80131505)}
СтарыйИД = ТурбоКонф.ПолучитьRuntimeId();
---> System.Runtime.InteropServices.COMException: Время ожидания операции истекло. (Исключение из HRESULT: 0x80131505)
в UIAutomationClient.IUIAutomation.GetFocusedElement()
в TurboConf.Core.TurboAPI.TurboApi.GetCurrentElementRuntimeId(Int32 parentLevels)
в TurboConf.HostApplication.Api.GetCurrentElementRuntimeId()
в lambda_method(Closure , Api , IValue[] )
в ScriptEngine.Machine.Contexts.AutoContext`1.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в ScriptEngine.Machine.MachineInstance.ResolveMethodFunc(Int32 arg)
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
--- Конец трассировки внутреннего стека исключений ---
в ScriptEngine.Machine.MachineInstance.MainCommandLoop()
в ScriptEngine.Machine.MachineInstance.ExecuteCode()
в ScriptEngine.Machine.MachineInstance.ExecuteMethod(IRunnable sdo, Int32 methodIndex, IValue[] arguments)
в ScriptEngine.Machine.Contexts.ScriptDrivenObject.CallAsFunction(Int32 methodNumber, IValue[] arguments, IValue& retValue)
в TurboConf.HostApplication.HostApplicationForm.ExecuteScript(Script script, Keys ctrl, Keys alt, Keys shift, ScreenForm statusForm, String entryPoint, ScriptOptions options, IVariable[] parameters)
Ссылка скрыта
tormozit изменил статус на Открыто
#9, ред. 25 ноября 2023 23:30
(8) tormozit, в строке 651 на которую указывает ошибка опять вижу неправильную последовательность получения RuntimeId, которую по какой-то причине ты никак не хочешь поменять.
Еще раз обращаю внимание, что в момент нажатия Enter окно (а это диалог Windows) перестает существовать.
bolsun изменил статус на На выяснении
#10, ред. 25 ноября 2023 23:38
Тогда мне непонятна логика использования тобой этого идентификатора. Поэтому я пока отключу их получение.
Раньше я считал что ты по его изменению определяешь смену фокуса ввода. Поэтому я получал его в самый последний момент перед открытием нового окна.
#11, ред. 25 ноября 2023 23:44
#12, 25 ноября 2023 23:42
Просто нужно поменять местами
#13, 25 ноября 2023 23:45
Вот здесь правильно сделано
#14, 25 ноября 2023 23:49
Но дальше опять же закомментировано
// ТурбоКонф.ЖдатьСменуТекущегоЭлемента(СтарыйИД, 1000, Истина);
Так что смысла в этом СтарыйИД = ТурбоКонф.ПолучитьRuntimeId();
не было.
#15, ред. 25 ноября 2023 23:51
Как вариант убери просто все ТурбоКонф.ПолучитьRuntimeId();
и добавь
Чтобы фокус установился в поле.
#16, ред. 25 ноября 2023 23:57
А вообще мы вроде забыли с чего все началось, и зачем вообще понадобилось ТурбоКонф.ПолучитьRuntimeId();
Предлагаю их убрать в этих местах, и увеличить время таймаута установки соединения с 2000 до 4000 мс как я писал в одном из тикетов.
#17, 25 ноября 2023 23:56
Открытие диалога сохранения или загрузки вполне может выскочить за этот лимит.