powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
5 сообщений из 5, страница 1 из 1
Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
    #37206212
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветсвую, коллеги!
Есть вопрос по макросам (Excel 2003).
Собственно в чём трабл, некий макрос толкается в цикле по 100 раз с клиентской части к примеру и из одних Excel файлов рождается куча маленьких (деваться было некуда из-за часто менющихся алгоритмов обработки файлов) .
Вся эта конструкция работала 2 года без проблем, но выросли объёмы и началось... Сейчас проблема в том, что если макрос работает более 5-ти минут (хотя бы 30 минут ждал ответ от макроса сцобако), то программа считает процесс ошибочным и возвращает на клиент ошибку. Может кто с таким сталкивался, как это лечить? Спрасибо

Сам вызов макроса в цикле из внешней программы выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
try
ole.Run("Module3.Begin_work_av_newtecnology" , &
string(path_name_av ), &
string(file_name_av ), &
string(lpu_name_av ) 
) 
CATCH (runtimeerror error2)
str_macr = "Module3.Begin_work_av_newtecnology" + ' ' + &
string(path_name_av ) + ' , ' + &
string(file_name_av ) + ' , ' + &
string(lpu_name_av ) 
messagebox("Ошибка!",'Не смог выполнить макрос! ' + error2.text + '~n' + &
' Споткнулся на файле =' + file_name_av + ' для ЛПУ = ' + lpu_name_av + '~n' + &
' Попытался выполнить ' + '~n' + str_macr ,StopSign!,Ok!)


return - 1 
...
Рейтинг: 0 / 0
Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
    #37206444
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может есть в офисе что то типа:
oExcel.SetAutomationTimeout(<timeout_on_seconds>)
...
Рейтинг: 0 / 0
Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
    #37206463
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
    #37206475
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, сам нашёл описание, думаю победим:

SetAutomationTimeout
Description Sets the number of milliseconds that a PowerBuilder client waits before
canceling an OLE procedure call to the server.
Applies to OLEObject objects
Syntax oleobject.SetAutomationTimeout ( interval )
Return value Integer. Returns 0 if it succeeds and -1 if it fails.
...
Рейтинг: 0 / 0
Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
    #37206522
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Век живи и учись, ещё и в форуме написано тоже самое , да и ответ про 5-ть минут я получил:

Controls
OLEObject objects

Syntax
oleobject.SetAutomationTimeout ( interval )

Argument Description
oleobject The name of an OLEObject variable containing the object for which you want to set the timeout period.
interval A 32-bit signed long integer value (in milliseconds) specifying how long a PowerBuilder client waits before canceling a procedure call. The default value is 300,000 milliseconds (5 minutes). Specifying 0 or a negative value resets interval to the default value.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Внешняя программа вызывает макрос и если более 5-ти минут, то выдаётся ошибка ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]