EventInbox and EventInboxData are two tables which will store the data related to alerts.
So one can easily generate alert by creating a record in EventInbox for xx user.
The problem with above approach is that alert will be triggered but if the user want to see for which record alert is triggered (by clicking on Go to Origin) than it will fail.
Always remember to make use of helper class in DAX 2011 , whenever you want to use existing feature / functionality from standard product.
Following job illustrates how to use helper class EventNotification to generate alert for InventTable record !
static void Event_sendAlertByCode(Args _args)
{
EventNotificationSource _source;
EventNotification event = EventNotification::construct(EventNotificationSource::Sync);
InventTable inventTable;
;
inventTable = InventTable::find('B-R14'); // sample record for which alert is shown
event.parmRecord(inventTable);
event.parmUserId(curuserid()); // user for which this alert to be shown
event.parmDataSourceName('InventTable'); //form datasource
event.parmMenuFunction(new MenuFunction('InventTable', MenuItemtype::Display));
event.parmSubject('Test');
event.parmMessage('Test Event alert');
event.create();
}
When you run the above job , you can see alert for that user
Select the alert created above and click on Go to origin, then u will find record as,
By making use of helper class hardly we wrote 10 lines of code to accomplish the alert feature and thereby ensuring the quality of code, so always check twice for existing helper class before writing your own!!!!
I copied the code and pasted in a job. and started running it, then it showed me the following error
ReplyDelete"Method 'send' in COM object of class 'CDO.Message' returned error code 0x80040213 () which means: The transport failed to connect to the server."
Note:The above Process is done in Ax2009