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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2010, 19:46   #1  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
System.Net.Mail + Batch + send mail
Не получается отослать емайл, когда запускаю BATCH
Выкидивает вот в этом месте:

Цитата:
CLR object not initialized.
CLR Object could not be created.
X++:
        attachementCollection = mailMessage.get_Attachments();
        if (attachementCollection)
        {
---->>            attachment = new System.Net.Mail.Attachment(tmpFilename);
            if (!attachment)
                throw error("errrorororoorororororo");
                
            attachementCollection.Add(attachment);
        }
Вроде всё делаю как надо... Е-майл посылается если класс запустить на прямую, а не через BATCH...

Есть также активация CLR
X++:
    try
    {
        clr = new InteropPermission(InteropKind::ClrInterop);
        clr.assert();
    }
    catch
    {
       throw error("Cannot access CLR object");
    }
Где я чего пропустил?
Спасибо

Использую DYNAMICS AX 2009

PS: SysMailer не использую, так как try/catch не ловит Exception и выкидывает из цикла.. а надо пройтись по всем записям
Старый 21.01.2010, 15:57   #2  
rkorchagin is offline
rkorchagin
Участник
 
81 / 69 (3) ++++
Регистрация: 26.09.2006
Попробуй чтобы класс вызвыющий ф-ции .neta работал на клиенте. RunOn Client. Была похожая проблема - вызывали ф-ции .neta для рисования штрих кода на репорте - а репорт печатался в батче. Без батча был OK а в батче вылетал. Заработало только когда вызов запихал в класс c RunOn cleint и до кучи ему метод - client public .....
Старый 21.01.2010, 17:27   #3  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
SysMailer не использую, так как try/catch не ловит Exception и выкидывает из цикла.. а надо пройтись по всем записям
А снаружи блока try/catch не начата транзакция, случаем?
Старый 22.01.2010, 14:39   #4  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Всё в порядке:
1.) надо "RunOn Client"
2.) + вызвать Dispose() на "AttachmentCollection", чтоб файлы не-"lock"-его
Старый 18.10.2010, 11:55   #5  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
Подниму старую тему, так как начала появлятся тот же баг...

При посылки на несуществуюший или внешний е-майл (ну типа СМТП настроен так, что можно только по домену посылать), то не ловится Exception.

Архитектура такая - Web -> .NET Connector -> Axapta static method.

Выполняя код в Ахапте - Exeption ловится,.. Через WEB, - Exception просто проподает, и код дальше не выполняется.. хота ВЕБ не грохается.. то есть .NET Connector не умерает и непрерывает код в .NET/ASP апликации.

Где копать? Конструкция такая:
X++:
    clr = new InteropPermission(InteropKind::ClrInterop);
    clr.assert();

    try
    {
         mymail.Send(mailmessage);
    }
    catch (Exception::CLRError)
    {
        throw error(...); // не доходет сюда
    }
    catch
    {
        throw error(..); // не доходет и сюда!!
    }

    info("Зы..."); // можно печатать что хочешь, через ВЕБ сюда не дойдешь :(

    if (mailmessage)
        mailmessage.Dispose();

    CodeAccessPermission::revertAssert();
Старый 18.10.2010, 12:16   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,309 / 3546 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Вот тут (FTP в AX4) был приведен пример как отловить ошибки не на уровне АХ. Может та конструкция поможет? (хотя если try/catch не ловится - дело хуже)
__________________
Возможно сделать все. Вопрос времени
Старый 18.10.2010, 12:24   #7  
Delfins is offline
Delfins
Участник
 
320 / 39 (2) +++
Регистрация: 20.09.2005
Адрес: Riga, Latvia
В том то и дело... неловится. Иначе бы я не спрашивал.
X++:
catch /* ALL */ {}
Часть проблемы и в том, чо посылка е-майл находится в транзакции... это типа, если ошибка посылки (не указан адрес и т.д. проверки), то не сохраняет. По ходу надо наверное будет бизнес-логику поменять. (сохранить данные, а с е-майлами - пусть будет как будет..)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dax-lessons: Alert user using Net send - x++ Blog bot DAX Blogs 0 04.05.2009 14:05
axaptapedia: Batch processing Blog bot DAX Blogs 0 29.01.2009 17:05
dax-lessons: Alert user using Net send - x++ Blog bot DAX Blogs 0 17.09.2008 13:05

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

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

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