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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.11.2010, 15:53   #1  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Автоматизация отправки накладной по e-mail
Стоит задача автоматизации процесса отправки накладной Торг-12.

Сейчас процесс выглядит следующим образом.
Есть Приемо-сдатчики, которые напрямую работают при отгрузке груза, они же Разносят накладную и формируют пакет документов для водителей (ТТН).

Есть менеждеры, которые работаю с клиентами (формируют заказы, ведут переговоры и тд). Менеджеры отправляют своим клиентам по почте ТОРГ-12. Делают это вручную, импортируют ТОРГ-12 в PDF, потом отправляют вложением.

На эту работу уходит много времени, и автоматизация данного процесса необходима.

Ищу правильное решение, дабы не наломать дров, не изобретать велосипед.
Желательно максимально приближенно к стандартному функционалу.
Прошу совета в каком направлении смотреть?
Старый 11.11.2010, 16:13   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
В стандарте когда выводится аксаптовский репорт, его можно не только экспортнуть в файл или отправить на принтер, но и отправить по почте.
Можете написать функцию, которая по определенным параметрам будет отправлять эти накладные на почту клиентов, используя стандартный механизм.
Изображения
Тип файла: bmp примерПочта.bmp (220.0 Кб, 415 просмотров)
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 11.11.2010, 17:00   #3  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
Цитата:
Сообщение от lev Посмотреть сообщение
В стандарте когда выводится аксаптовский репорт, его можно не только экспортнуть в файл или отправить на принтер, но и отправить по почте.
Можете написать функцию, которая по определенным параметрам будет отправлять эти накладные на почту клиентов, используя стандартный механизм.
На сколько я понял функция должна сгенерировать отчет, затем отправить его на почту?

А как можно программно сгенерировать отчет?
Может есть похожий пример?
Старый 11.11.2010, 17:26   #4  
AxaptaUser is offline
AxaptaUser
Участник
 
56 / 17 (1) ++
Регистрация: 09.03.2007
В вашем случае можно доработать обработку накладной по конкретному заказу следующим образом:
- автоматически заполнять емайл клиента и тему письма в настройках печати документа
и при разноске накладной с галочкой "Печать" письмо с накладной должно отправляться клиенту.
Старый 11.11.2010, 19:30   #5  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 429 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Сформировать файл из накладной программно - не сложно.
Какая у вас версия Аксапта ?

Например, для 3-й версии будет работать так (пример)

X++:
static void Job1(Args _args)
{
    custInvoiceJour     custInvoiceJour;
    PrintJobSettings    printJobSettings = new PrintJobSettings();
    SalesReport_Invoice_RU SalesReport_Invoice_RU = new SalesReport_Invoice_RU();

    ;
    custInvoiceJour = custInvoiceJour::findRecId(449627);

    printJobSettings.setTarget(PrintMedium::File);
    printJobSettings.format(PrintFormat::RTF);
    printJobSettings.fileName("c:\\invoice.rtf");

    SalesReport_Invoice_RU.setParameters(PrintCopyOriginal::Original, custInvoiceJour);

    if (SalesReport_Invoice_RU.prompt())
    {
        SalesReport_Invoice_RU.printJobSettings().unpackPrintJobSettings(printJobSettings.packPrintJobSettings());
        SalesReport_Invoice_RU.run();
    }
}
А дальше возможны варианты.
Можно отправлять этот файл через почтовый клиент Аксапты (SysMailer), (с сервера пакетной обработки например).

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

Тут все зависит от типа почтового клиента, который используется в вашей комании
(thebat, Outlook, OutlookExpress и так далее)

Например этот код отправляет письмо открывая почтовый клиент пользователя по умолчанию:

X++:
boolean sendMAPI(str _to, str _cc, str _subj, str _text, FileName _attachFileName = "")
{
    #Mapi
    Mapi          mapi  = new Mapi();
    MapiMessage   msg   = new MapiMessage();
    MapiRecipDesc recip = new MapiRecipDesc();
    MapiFileDesc  file  = new MapiFileDesc();
    ;

    recip.Name(_to);
    recip.RecipClass(#MAPI_TO);

    msg.setRecipNo(1, recip);

    if (_cc)
    {
        recip.Name(_cc);
        recip.RecipClass(#MAPI_CC);
        msg.setRecipNo(2, recip);
    }

    msg.subject(_subj);
    msg.text(_text);

    if (_attachFileName)
    {
        file.fileName(_attachFileName);
        msg.setFileNo(1, file);
    }

    mapi.Logon("", "", #MAPI_USE_DEFAULT);
    mapi.SendMail(msg, #MAPI_DIALOG);
    mapi.Logoff();

    return true;
}
Но надежнее использовать com интерфейс почтовой программы.
Если интересно - могу привести код отправки письма с вложением через COM интерфейс Outlook
За это сообщение автора поблагодарили: erudit (2), BOAL (2), ena_ax (1), fedka (1).
Старый 11.11.2010, 19:46   #6  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Цитата:
Сообщение от someOne Посмотреть сообщение

Но надежнее использовать com интерфейс почтовой программы.
Если интересно - могу привести код отправки письма с вложением через COM интерфейс Outlook
Интересно! Конечно, привести, чтоб был полный ассортимент на выбор.
Старый 11.11.2010, 19:50   #7  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 429 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Все просто в общем то...

X++:
boolean sendOutlook(str _to, str _cc, str _subj, str _text, FileName _attachFileName = "")
{
    COM     outlook = new COM("Outlook.Application");
    COM     letter = Outlook.CreateItem("");
    COM     attachments;
    ;

    letter.To(_to);
    letter.CC(_cc);
    letter.Subject(_subj);
    letter.Body(_text);

    if (_attachFileName)
    {
        attachments = letter.Attachments();
        attachments.add(_attachFileName);
    }

    letter.display();

    return true;
}

Последний раз редактировалось someOne; 11.11.2010 в 19:52.
Старый 12.11.2010, 08:17   #8  
ena_ax is offline
ena_ax
Участник
 
254 / 46 (2) +++
Регистрация: 06.12.2006
У меня Axapta 4.0

Коллеги спасибо за идеи, и особенно за приведенный код. Буду пробовать.
Старый 19.06.2015, 15:58   #9  
BokarevSS is offline
BokarevSS
Участник
 
63 / 12 (1) ++
Регистрация: 13.01.2009
pdf
Попробовал воспользоваться примером. Получил "Ошибка времени выполнения. Неправильный тип номера поля". Как мне ее исправить? Искал по форуму решения, и нашел рекомендацию, что какие то связи в DataSource не созданы-не понял что имелось ввиду, или может это не то.
Ax3.0sp5fp2

Последний раз редактировалось BokarevSS; 19.06.2015 в 16:05.
Старый 20.06.2015, 15:26   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от BokarevSS Посмотреть сообщение
Попробовал воспользоваться примером. Получил "Ошибка времени выполнения. Неправильный тип номера поля".
Ax3.0sp5fp2
А в каком участке кода эта ошибка возникает?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Бухгалтерские проводки по отборочной накладной PMS DAX: Функционал 12 24.04.2012 13:45
Подмена аналитик при разноске отборочной накладной evv DAX: Программирование 9 01.12.2010 13:52
palleagermark: Setting up E-mail parameters on the AX 2009 VPC July 2008 image Blog bot DAX Blogs 0 31.10.2008 10:05
Новые счета в разноске в 3 SP Alex_R2 DAX: База знаний и проекты 13 22.06.2006 15:36
Оплата поставщику и регистрация накладной (счет-факутры) May DAX: Функционал 4 29.07.2003 17:18

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

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

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