Тема: Ошибка при выгрузке нескольких файлов

Добрый день.

Столкнулся с проблемой. Периодически на разных объектах при вызове File.CheckOut у пользователей возникает ошибка "Ошибка загрузки файла", как правило на файлах большого объема. При повторном выполнении команды все проходит гладко...
Сегодня проблема повторилась уже на служебном объекте с библиотеками, которые выгружаются при запуске в Sub Startup(), что для нас критично. Часть файлов выгружается, но на одном все время вылетает с ошибкой... Прикладываю скриншоты.
У кого-нибудь такое было!?

Ошибка при выгрузке нескольких файлов

Ошибка при выгрузке нескольких файлов

Ошибка при выгрузке нескольких файлов

Версия TDMS 4.0.208

Re: Ошибка при выгрузке нескольких файлов

bannies пишет:

Добрый день.

Столкнулся с проблемой. Периодически на разных объектах при вызове File.CheckOut у пользователей возникает ошибка "Ошибка загрузки файла", как правило на файлах большого объема. При повторном выполнении команды все проходит гладко...
Сегодня проблема повторилась уже на служебном объекте с библиотеками, которые выгружаются при запуске в Sub Startup(), что для нас критично. Часть файлов выгружается, но на одном все время вылетает с ошибкой... Прикладываю скриншоты.
У кого-нибудь такое было!?

Версия TDMS 4.0.208


аналогичная фигня стала проявляться и у нас (((. Встроенная команда экспорт файла работает точно также с ошибкой, при этом сам файл на редактирование и просмотр открывается. И еще, даже если удалить файл из карточки и загрузить его заново, ошибка остается. А вот банальное перетаскивание файла из карточки в папку на компьютере работает

Re: Ошибка при выгрузке нескольких файлов

Давайте по порядку. Для начала я бы обновился. Ваш системный софт СУЩЕСТВЕННО изменился за последние три года, а TDMS нет.
1. Последняя версия TDMS 4.0.254
2. У вас физически файл есть?
3. Включайте полные логи и присылайте на support@tdms.ru/ Там же при необходимости запрос на получение новой сборки.

Re: Ошибка при выгрузке нескольких файлов

Данная ошибка возможна по следующей причине:

Запоминаем объект workObj например в Dictionary.

Потом обновляем файл itextsharp.dll - перезаписывая новой версией itextsharp.dll. Т.е. файлом с таким же именем.

Потом обращаемся к workObj из Dictionary и говорим
workObj.files(0).CheckOut

workObj - содержит устаревшую копию объекта и его файлов. Там есть файл с таким же именем, но прошлым телом которое было удалено и перезаписано новым.

Т.о. пытаемся выгрузить прошлую версию файла. А не добавленную после. Это и приводит к ошибке, что объект - т.е. файл с устаревшим(удаленным) телом не найден.
Если сделать
set workObj = thisapplication.GetObjectByGUID(workObj.guid)
то после этого checkout пройдет.

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