Consider this scenario.
When an Opportunity is reassigned then an email needs to be sent to the newly assigned user.
The Table Level Script needs to fire correctly whether a single Opportunity is reassigned through the user interface or whether a batch of Opportunities are reassigned by another table level script. E.g. "A Table Level Script to update Opportunities when a Company is Reassigned".
The code below for an UpdateRecord event function will send an email that will aggregate the changes made and will work when either a single opportunity is changed or when a set of records have been updated.
function UpdateRecord() { var oppoRecord = CRM.FindRecord("opportunity",WhereClause); var userRecord = CRM.FindRecord("users","user_userid ="+ Values("oppo_assigneduserid")); var messagetext = "Please check the following opportunities\r\n"; while (!oppoRecord.eof) { messagetext += oppoRecord.oppo_description +"\r\n"; oppoRecord.NextRecord(); } var myMailObject = CRM.GetBlock("messageblock"); with (myMailObject) { DisplayForm = false; mSubject = "New Oppos"; mBody = messagetext; mShowCC = true; mShowBCC = true; //TO|CC|BCC are valid recipients AddRecipient(userRecord.user_emailaddress,userRecord.user_firstname+ " "+userRecord.user_lastname,"TO"); Mode=2; Execute(); if (mSentOK) { //Valid = false; //ErrorStr = "Email Sent"; } else { //Valid = false; //ErrorStr = "There has been a problem: "+mErrorMessage; } } }
Note. This script does not create an communication record.