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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.04.2008, 18:01   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Ну, я просто написал класс-обертку для обращений к COM. Соответственно, любое обращение в этом классе оборачивается в try...catch и я всегда знаю какой объект ошибся.
А можно поподробнее ?
Старый 09.04.2008, 12:28   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,716 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
А можно поподробнее ?
Ни разу не разбирал класс ComOfficeDocument_RU ? С Excel или Word из Axapta не работал?

Идея заключается в том, что ты, конечно, можешь какждый раз в теле программы писать нечто вроде

X++:
COM  comObject;

comObject = new COM('MyCom');
comObject.method();
Однако можно создать класс в событии new которого создавать экземпляр нужного COM-объекта, а для обращения к методам этого Com-объекта создать дополнительные методы класса. Тогда тот же код будет выглядет примерно так:

X++:
MyClassForCom  myClassForCom;

myClassForCom = new MyClassForCom();
myClassForCom.method();
Получается, что к методам Com объекта обращаешся не "напрямую", а через "обертку". Собственный класс, внутри которого и делаются все нужные обращения к методам Com-объекта с дополнительным "отловом" возможных ошибок.
Старый 17.04.2008, 18:56   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Ни разу не разбирал класс ComOfficeDocument_RU ? С Excel или Word из Axapta не работал?
Пшшш...
Спокуха !
Зачем так раздражаться ?

Работал с COM. Вопрос был связан с тем как обертку try Catch сделал. По идее если есть внешняя обертка - вложенный try Catch и транзакции то может и не сработать.

Интересно можно ли это обойти. Т.е. заставить гарантировано выдавать корректное сообщение об ошибке.
Старый 18.04.2008, 11:46   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,716 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Работал с COM. Вопрос был связан с тем как обертку try Catch сделал. По идее если есть внешняя обертка - вложенный try Catch и транзакции то может и не сработать.

Интересно можно ли это обойти. Т.е. заставить гарантировано выдавать корректное сообщение об ошибке.
М-да, внятно выражать свои мысли тоже надо уметь

Внешний Try...Catch - никак не мешает вложенному Try...Catch. Перехватывает ошибку всегда ближайший try...catch. Если надо "передать" исключение на предыдущий уровень, то просто после try..Catch генеришь исключение

throw error("Ошибка")

или возвращаешь "пустое" (ошибочное) значение, которое обрабатывается во внешнем методе.

А вот транзакция действительно мешает. Но тут ничего не поделаешь. Вне зависимости от того, кто именно сгенерил ошибку - COM или внутренний объект Axapta. При любом раскладе произойдет вылет в try...catch ближайший к началу транзакции самого верхнего уровня.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05
Ax3 KR2: Создание пользователя в ActiveDirectory belugin DAX: Программирование 14 06.06.2007 13:44
Куда пропадают лицензии в Ax3.0 SP3 KR2? falcon65 DAX: Администрирование 2 10.05.2007 09:55
Проблема с получение коллекции (массива) из COM-объекта. VES DAX: Программирование 6 24.03.2006 18:59
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:26.