Я создал новый класс со статическим методом, который я легко могу позвонить с любого .update()
способом, чтобы предупредить меня, когда запись изменений, и что изменилось в записи.
Он использует встроенные шаблоны электронной почты Ax.
static void CompareAndEmail(str emailTemplateName, str nameField, str recipient, Common original, Common modified)
{
UserInfo userInfo;
Map emailParameterMap = new Map(Types::String, Types::String);
str changes;
int i, fieldId;
DictTable dictTable = new DictTable(original.TableId);
DictField dictField;
;
for (i=1; i<=dictTable.fieldCnt(); i++)
{
fieldId = dictTable.fieldCnt2Id(i);
dictField = dictTable.fieldObject(fieldId);
if (dictField.isSystem())
continue;
if (original.(fieldId) != modified.(fieldId))
{
changes += strfmt("%1: %2 -> %3 \n\r",
dictField.name(),
original.(fieldId),
modified.(fieldId)
);
}
}
//Send Notification Email
select Name from UserInfo where userInfo.id == curUserId();
emailParameterMap.insert("modifiedBy", userInfo.Name);
emailParameterMap.insert("tableName", dictTable.name());
emailParameterMap.insert("recordName", original.(dictTable.fieldName2Id(nameField)));
emailParameterMap.insert("recordChanges", changes);
SysEmailTable::sendMail(emailTemplateName, "en-us", recipient, emailParameterMap);
}
Затем в методе .update()
я просто добавить одну строку
//Compare and email differences
RecordChangeNotification::CompareAndEmail(
"RecChange", //Template to use
"Name", //Name field of the record (MUST BE VALID)
"[email protected]", //Recipient email
this_Orig, //Original record
this //Modified record
);
Единственное, что я хочу, чтобы улучшить являются:
- переместив имя шаблона и получателя в таблицу , для упрощения обслуживания
- лучшее форматирование для списка изменений, я не знаю, как шаблон (см.: here)
Это не «фиктивный запрос». Когда изменения сохраняются, мы хотим отправить уникальную электронную почту с измененными полями и их предыдущими значениями. Слишком поздно отправлять ежедневную партию.Это 2010 год, мы не должны работать с ночными партиями для доставки информации. Продавцы редко обновляются, но если они изменены, наши руководители хотят знать НЕМЕДЛЕННО. – CaffGeek 2010-11-30 16:47:02
Итак, запустите отчет каждую минуту или час, что подходит вашим руководителям. – 2010-12-01 19:37:29