X++ CODE TO GENERATE ALERT FOR RECORD IN DAX 2011

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!!!!

1 comment:

  1. I copied the code and pasted in a job. and started running it, then it showed me the following error

    "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

    ReplyDelete

Note: Only a member of this blog may post a comment.