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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2010, 11:24   #2  
dmitro is offline
dmitro
Участник
 
48 / 19 (1) ++
Регистрация: 18.07.2008
Адрес: Москва, РФ
решения есть. но так просто их вам никто не даст, сами понимаете

цепочка примерно такая:

класс EventNotificationWorkflow отвечает за отправку e-mail, метод create(), из таблицы EventInbox, созданной ядром workflow ранее..

X++:
        if (inbox.EmailTemplateId)
        {

            userInfo = SysUserInfo::find(inbox.UserId);

            if (userInfo && userInfo.EventWorkflowTasksInEmail)
            {
                if (SysEmailDistributor::validateEmail(userInfo.Email))
                {
                     inbox.SendEmail = true;
                     inbox.EmailRecipient = userInfo.Email;
                     this.sendMail();
                }
            }
        }
метод newInfoNoDrillDown() для задания параметров этой самой отправки, вызывается из класса-обработчика событий SysWorkflowEventDispatcher из метода sendNotifications()

X++:
                notificationSettings = configNotification.getNotification(_action);
                if (notificationSettings && notificationSettings.parmEnabled() == NoYes::Yes)
                {
                    users = SysWorkflowEventDispatcher::resolveParticipant(_context, notificationSettings.parmAssignTo(), _notificationId);
                    setEnumerator = users.getEnumerator();

                    while(setEnumerator.moveNext())
                    {
                        // verify that the user has access to the data
                        documentData = Workflow::getDocumentRecord(_context, setEnumerator.current());
                        if (documentData.RecId == 0)
                        {
                            continue; // does this throw
                        }

                        subject = SysWorkflowEventDispatcher::getNotificationSubject(_notificationLevel, _notificationType, setEnumerator.current());
                        notification = EventNotificationWorkflow::newInfoNoDrillDown(
                            setEnumerator.current(),
                            subject,
                            WorkflowParameters::find().WorkItemEmailId);
обратите внимание на выделенные места resolveParticipant() + notificationSettings.parmAssignTo() + setEnumerator.current(), именно там происходит "доставание" из ParticipantProvider нашей группы юзеров и для каждого юзера запуск отправки сообщения. Тут, как мне кажется, и надо смотреть.

Последний раз редактировалось dmitro; 04.08.2010 в 11:27.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Документооборот Eldar9x DAX: Программирование 9 07.06.2008 09:25
Про документооборот andreynikolai DAX: Программирование 30 06.10.2006 09:34
Документооборот. Создание файла по шаблону. NJD DAX: Программирование 4 11.05.2005 10:52
Документооборот wb DAX: Программирование 1 07.02.2005 15:56
Кто нибудь пытался релизовать ДОКУМЕНТООБОРОТ в Аксапта? edd DAX: Функционал 10 21.07.2003 15:48

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

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

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