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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.11.2013, 13:12   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Чудес не бывает Запустите трассировку перед выполнением пакетного задания, использующего fileNameNext(), и потом посмотрите в TraceParcer'е, где именно какой метод выполнялся.

PS. Я так понимаю, речь о приложении AX 2009? Потому что в 2012 соотв. метод уже "различает", на клиенте он выполняется или на сервере.
За это сообщение автора поблагодарили: androzavr (1).
Старый 14.11.2013, 17:21   #2  
androzavr is offline
androzavr
Участник
 
4 / 10 (1) +
Регистрация: 02.02.2011
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Чудес не бывает
Ура! Вера в несуществование чудес получила очередное подтверждение...
Не дошел я до трассировки. Пока выбирал файлы для тестирования, наконец заметил отличие в тех, что вызывали ошибку и тех, что не вызывали ошибку - ошибочные файлы уже существовали в папке назначения, а нормальные все были новые. Соответственно сразу возникла мысль, что может все-таки fileNameNext() не всегда вызывается. Полез шерстить код и таки нашел чуть раньше вызов WinApiServer::fileExists().
Косяк - детский! Стыдно даже в нем признаваться, но дабы ни у кого не возникло вдруг веры в чудеса решил стерпеть и признаться...
Все дело в невероятнейшем стечении обстоятельств! Тестировал создание дубликатов файлов на разработческом приложении без пакетника, а на тестовом сервере не попадалось одинаковых имен файлов. Удивительное совпадение.

Итак, извиняюсь за преждевременно поднятую панику и, если позволите, пока свежо, пару вопросов не совсем по теме (не знаю как здесь обозначить "оффтоп"):
1) gl00mie, можете пояснить о какой трассировке и главное "TraceParcer'е" Вы говорили? Это термины из Ax2012? Или речь все-таки о Профайлере кода в Ax2009? Ведь я правильно понял, что это точно не трассировка SQL и не трассировка, которая включается галочками на вкладке "Разработка" в параметрах пользователя?
2) Если не сложно можете выслать мне код метода fileNameNext() с Ax2012, который различает на каком уровне он выполняется. Просто интересно посмотреть как Они это сделали, потому что у самого было несколько разных идей, но остановился пока на самом простом варианте (добавил в свой класс похожий метод)). Думаю не нарушит сильно авторских прав и лицензионных соглашений...

Ответить можно в личку. Тему засорять больше не посмею...
Старый 14.11.2013, 18:55   #3  
androzavr is offline
androzavr
Участник
 
4 / 10 (1) +
Регистрация: 02.02.2011
Возник еще один вопрос, касательно ошибки "Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте". Пока игрался с классами, вызывающими ошибку, заметил, что она не перехватывается try-catch'ем. Вместо сообщения "Произошла такая-то ошибка..." выполнение прерывается в месте вызова клиентского класса и вываливает инфолог.
Можно-ли с этим что-то поделать?
Я понимаю, конечно, что такого просто-напросто нельзя допускать. И отправлять в рабочую среду код, пусть и обрабатывающий такого рода ошибки нельзя, просто хочется понять почему она не перехватывается. Такое поведение сделано специально, чтоб горе-программисты не пытались писать кривой код? Или ошибку обработать все-таки можно?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47
Не могу вызвать метод класса Red Stranger DAX: Программирование 10 12.04.2005 17:57
Метод Filter датасорса - только стринг ??? Mechanizm DAX: Программирование 2 01.06.2004 12:58
как вызвать метод "деда" ? Omeo DAX: Программирование 23 26.05.2004 16:07
Как вызвать метод на COMVariant? Andronov DAX: Программирование 2 06.08.2003 08:29

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

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

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