AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.09.2016, 21:35   #1  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
Старый 29.09.2016, 21:39   #2  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от IvanS Посмотреть сообщение
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
пакетник всегда крутится на сервере, соответственно должна стоять правильная компонента доступа - 64-разрядная. если аос крутится на той же машине, что и клиент, то скорее всего на ней уже установлена 32-разрядная версия.

установить рядом 64-разрядную сестру можно только в "тихом" режиме

Excel version

To work well with Excel we need to have ODBC Excel 64 bit driver installed on the server

http://www.microsoft.com/en-us/downl....aspx?id=13255

cmd (as administrator)

AccessDatabaseEngine_x64 /passive
__________________
Felix nihil admirari
Старый 29.09.2016, 21:57   #3  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от wojzeh Посмотреть сообщение
пакетник всегда крутится на сервере, соответственно должна стоять правильная компонента доступа - 64-разрядная. если аос крутится на той же машине, что и клиент, то скорее всего на ней уже установлена 32-разрядная версия.

установить рядом 64-разрядную сестру можно только в "тихом" режиме

Excel version

To work well with Excel we need to have ODBC Excel 64 bit driver installed on the server

http://www.microsoft.com/en-us/downl....aspx?id=13255

cmd (as administrator)

AccessDatabaseEngine_x64 /passive
Но ведь на параллельном сервере все работает без каких-либо дополнительных операций- это и смущает
Старый 29.09.2016, 22:03   #4  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от IvanS Посмотреть сообщение
Но ведь на параллельном сервере все работает без каких-либо дополнительных операций- это и смущает
так на параллельном сервере, наверное, и стоит "правильная" 64-разрядная сестра.

залезь и посмотри, какие версии установлены.

не забывай также, что разные версии Excel требуют разной строки подключения в коде. там или прописывать весь зоопарк ноевого ковчега, или договориться, какая именно версия будет использоваться повсеместно.
__________________
Felix nihil admirari
Старый 30.09.2016, 06:44   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
643 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от IvanS Посмотреть сообщение
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
Скорее всего у вас один из .NET объектов возвращает null. А затем уже при обращении к его методам падает вся аксапта. Сделайте проверку на null.
Бывает что catch срабатывает, но уже после защищенной секции идет обращение к методам нулевого объекта. Т.е. инфолог появляется, но вы не успеваете его заметить, т.к. аксапта уже упала. Попробуйте сделать паузу в catch, и изучить ошибки.

Если интересно получить весь стек ошибок можно попробовать такой приемчик. Не знаю как для других версий, но для АХ4 требует подключить ссылку к библиотеке Microsoft.Dynamics.BusinessConnectorNet.dll, которая хранится в папке Client/Bin
X++:
public void run()
{
    try
    {
        new InteropPermission(InteropKind::ClrInterop).assert();

        // ... CLR code

        CodeAccessPermission::revertAssert();
    }
    catch (Exception::CLRError)
    {
        this.clrWarning();
    }
}
X++:
public void clrWarning()
{
    Microsoft.Dynamics.BusinessConnectorNet.BusinessConnectorException  lastException;
    ;

    lastException = ClrInterop::getLastException();
    while(lastException)
    {
        warning(lastException.get_Message());
        lastException = lastException.get_InnerException();
    }
}
__________________
// no comments
Старый 30.09.2016, 08:14   #6  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от dech Посмотреть сообщение
Скорее всего у вас один из .NET объектов возвращает null. А затем уже при обращении к его методам падает вся аксапта. Сделайте проверку на null.
Все создается и не нулевое, наделал везде проверок на инициализацию объектов .Net.
application_net и workbooks_net. В этой части все хорошо, ошибка падает на методе
X++:
workbook_net = workbooks_net.Open(_fileName, _updateLinks, _readOnly, _format, _password, _writeResPassword, _ignoreReadOnlyRecommended, origin, _delimiter, _editable, _notify, _converter, _addToMru, _local, _corruptLoad);
Цитата:
Сообщение от dech Посмотреть сообщение
Попробуйте сделать паузу в catch
в catch вообще не попадает нигде
Цитата:
Сообщение от dech
Еще может быть проблема, что на тестовом сервере у вас установлен клиент, а на рабочем - нет. И где-то в недрах вашего пакетника вызывается класс c RunOn=Client
Клиент установлен на обоих серверах, версии абсолютно одинаковые.
Приложения в части Excel абсолютно одинаковые и у всех RunOn=CalledFrom, если бы ошибка была в этом была бы ругань на некорректную инициализацию классов, но все эти ошибки я давно исправил.
Теги
.net, ax2009, excel, законченный пример, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Импорт даты через Excel OliaM DAX: Функционал 2 13.12.2007 10:32
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Чтение Excel-ячейки в Аксапте (2.5) через COM AKIS DAX: Программирование 3 25.03.2004 20:18

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:18.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.