28.04.2016, 06:59 | #1 |
Участник
|
Правило генерации оповещений
Как сделать так, чтобы в оповещении, которое приходит на электронную почту указывался 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 |
Злыдни
|
Не получится, если только MS не сделал недокументированных в https://technet.microsoft.com/ru-ru/.../aa834423.aspx ссылок на подстановки в шаблоны email.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
28.04.2016, 08:55 | #3 |
Участник
|
Я хочу сделать это через изменение кода x++.
Подставлять значения в теги %ModifiedByUserId% я могу. А вот понять как через _buffer получить modifiedBy запутался. Менял класс EventActionEmail - но ничего не выходит |
|
28.04.2016, 09:55 | #4 |
Участник
|
А поиск на форуме ничего не дал? я выкладывал целый проект, в котором сделано то, что вы хотите и даже больше. Форумчане также его немного расширяли для удобства.
__________________
Ivanhoe as is.. |
|
28.04.2016, 10:00 | #5 |
Участник
|
__________________
Ivanhoe as is.. |
|
28.04.2016, 13:18 | #6 |
Участник
|
Тему видел.
Нужен для 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 |
Участник
|
Проект расширения стандартных оповещений AX 4.0 вот версия для 2009.
__________________
Ivanhoe as is.. |
|
29.04.2016, 07:22 | #8 |
Участник
|
Ничего не понимаю, в сравнении "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. |
|