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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.04.2016, 06:59   #1  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Правило генерации оповещений
Как сделать так, чтобы в оповещении, которое приходит на электронную почту указывался UserId и ФИО пользователя, который поменял запись.

Сейчас правило оповещений такое:

Цитата:
%message%

Go to %for%


Go to %for%
__________________________________________________

Alert details

Occurred:
%occurred%

For:
%for%
Company:
%company%
Event: %event%
Additional info: %data%


View Alert
Change Alert Rule



__________________________________________________
Dynamics AX Alerts
You may receive an error when clicking on the links if Microsoft Dynamics AX cannot be launched from this computer.
Необходимо сделать как-то так:

Цитата:
%message%
Пользователь изменивший запись: %ModifiedByUserId% %ModifiedByUserName%
Go to %for%


Go to %for%
__________________________________________________

Alert details

Occurred:
%occurred%

For:
%for%
Company:
%company%
Event: %event%
Additional info: %data%


View Alert
Change Alert Rule



__________________________________________________
Dynamics AX Alerts
You may receive an error when clicking on the links if Microsoft Dynamics AX cannot be launched from this computer.

Последний раз редактировалось iiipoizone; 28.04.2016 в 07:02.
Старый 28.04.2016, 08:30   #2  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Не получится, если только MS не сделал недокументированных в https://technet.microsoft.com/ru-ru/.../aa834423.aspx ссылок на подстановки в шаблоны email.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 28.04.2016, 08:55   #3  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Я хочу сделать это через изменение кода x++.
Подставлять значения в теги %ModifiedByUserId% я могу.
А вот понять как через _buffer получить modifiedBy запутался.

Менял класс EventActionEmail - но ничего не выходит
Старый 28.04.2016, 09:55   #4  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А поиск на форуме ничего не дал? я выкладывал целый проект, в котором сделано то, что вы хотите и даже больше. Форумчане также его немного расширяли для удобства.
__________________
Ivanhoe as is..
Старый 28.04.2016, 10:00   #5  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Проект расширения стандартных оповещений AX 4.0
__________________
Ivanhoe as is..
Старый 28.04.2016, 13:18   #6  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Тему видел.
Нужен для AX 2009.
посмотрел SharedProject_KCAI_EventExtension.zip со сравнением. На удивление в xpo нет никаких изменений. Даже некоторые методы в классах отсутсвуют в xpo
Для AX 4.0 проект код очень сильно отличается

Попробую сделать как здесь:
Цитата:
tatic str getFieldValueFromCode(str _fieldByCode, common _buffer)
...
// if the table exists
if (bufferTable)
{
parentBuffer = _buffer;
// the table here is the "parent" table to _buffer
// it comes to a parent table: we need to locate one
if (tId != _buffer.TableId)
{
// Realised for Sales and Purchase orders only
// Sales orders
if ((tId == tableNum(SalesTable)) && (_buffer.TableId == tableNum(SalesLine)))
{
parentBuffer = SalesTable::find(SalesLine::findRecId(_buffer.RecId).SalesId);
}
// Purchase orders
if ((tId == tableNum(PurchTable)) && (_buffer.TableId == tableNum(PurchLine)))
{
parentBuffer = PurchTable::find(PurchLine::findRecId(_buffer.RecId).PurchId);
}
}

Последний раз редактировалось iiipoizone; 28.04.2016 в 13:25.
Старый 28.04.2016, 13:47   #7  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2155 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Проект расширения стандартных оповещений AX 4.0 вот версия для 2009.
__________________
Ivanhoe as is..
Старый 29.04.2016, 07:22   #8  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Ничего не понимаю, в сравнении "xpo" с "cus" нет никаких изменений. Хотя проект не применял. Все методы, классы, job'ы. Все уже есть
И как он вместо %ModifiedBy% должен поставить значение Table.ModifiedBy если он отсутствует в map в классе EventActionEmail :

X++:
       parameterMap.insert('occurred',           dateTime2Str(DateTimeUtil::applyTimeZoneOffset(_inbox.AlertCreatedDateTime, DateTimeUtil::getUserPreferredTimeZone()), DateFlags::FormatAll));
        parameterMap.insert('for',                _inbox.AlertedFor);
        parameterMap.insert('company',            _inbox.CompanyId);
        parameterMap.insert('data',               data);
        parameterMap.insert('subject',            _inbox.Subject);
        parameterMap.insert('message',            _inbox.Message);
        parameterMap.insert('LinkToBusinessData', drillDownGroup + '?DrillDown_'     + int642str(_inbox.InboxId));
        parameterMap.insert('LinkToAlertRule',    drillDownGroup + '?ViewAlertRule_' + int642str(_inbox.InboxId));
        parameterMap.insert('LinkToAlert',        drillDownGroup + '?ViewAlert_'     + int642str(_inbox.InboxId));
        parameterMap.insert('event',              event);
        parameterMap.insert('alertid',            _inbox.InboxId);

Последний раз редактировалось iiipoizone; 29.04.2016 в 08:12.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проект расширения стандартных оповещений AX 4.0 Ivanhoe DAX: Функционал 34 11.02.2016 15:34
Генерация оповещений Akri DAX: Функционал 2 13.01.2012 13:08
Ошибка: Удаление в DataBaseLog настроек для оповещений KiselevSA DAX: Администрирование 0 15.02.2010 11:53
Проект для создания оповещений из кода ax 4.0 Ivanhoe DAX: Программирование 0 13.01.2010 11:26
Новое событие в генерации оповещений Axaptus DAX: Программирование 2 07.12.2007 17:39

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:29.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.