Skip to main content

Salesforce Trigger On After Insert


If you want to know what is salesforce trigger and when can we have trigger run ,please check my previous post about Salesforce trigger.

In this post i will  be explaining how you can run your trigger after insert of record into database.

Lests take an example.

if you want to send email to someone in your organization  after every new account is created

so you will need
1) Trigger implementation
2) Html email body/template
3) email receipants

Trigger Implementation:

From Setup, click Customize -> Accounts -> Triggers
In the triggers section, click New.
In the trigger editor, delete the default template code and enter this trigger definition:
>
1.  trigger NewAccountCreationSendEmail on Account (after insert)      { 2.           for(Account act: Trigger.New)                {                        //code to send email Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); String toEmail = "emailid@gmail.com"; String[] toAddresses = new String[] {toEmail}; mail.setToAddresses(toAddresses); mail.setSubject('New Account is created'); String template = 'Hello {0}, \nNew Account has been Created. Here are the details - \n\n'; template+= 'Account Name- {1}\n'; template+= 'Account Owner - {2}\n'; template+= 'Account Contact - {3}\n'; List args = new List(); args.add(toEmail); args.add(act.Name); args.add(act.OwnerId); args.add(act.AccountNumber); String formattedHtml = String.format(template, args); mail.setPlainTextBody(formattedHtml); Messaging.SendEmail(new Messaging.SingleEmailMessage[] {mail});                }      }
First line of  code defines the trigger

trigger Trigger_Account_Send_Email on Account (after insert)

It gives the trigger a name, specifies the object on which it operates, and defines the events that cause it to fire. For example, this trigger is called NewAccountCreationSendEmail, it operates on the Account object, and runs after new Accounts are inserted into the database. 

Second line in the trigger is for loop of Account records  referenced by contents of a trigger context variable called Trigger.new. Trigger context variables such as Trigger.new are implicitly defined in all triggers and provide access to the records that caused the trigger to fire. In this case, Trigger.new contains all the new Accounts that are  inserted.

for(Account act: Trigger.New)

You can use same trigger before insert,you just have to change parameter on first line from "after insert" to "before insert"


Comments

Popular posts from this blog

How To Kill Tomcat HTTP Stuck Thread

Stuck Thread Problem: In one of our application we were facing issue of stuck thread ,it can not complete current work and also not able to accept new work. Once thread is stuck,CPU utilization starts increasing slowly, as stucked thread is utilizing more CPU, other threads start performing slowly makes the environment slow for users  and at some point it brings your server down. Restarting server in business hours is not good for anyone ,and it creates the bad impression of IT department to business. Identify Stuck Threads: To identify which are stuck threads ,you can use jconsole and  topthreads plugin.once you identified the top http threads which are consuming more memory you can kill stuck threads using below solution. Stuck Thread Solution: so we have implemented below solution for stuck thread which we found on web. in java you can create jsp with below code and call jsp using URL something like this- http://servername:port/context/jspname.jsp?threadName=h

Read PDF in Boomi

If you need to read pdf from Boomi Atom installation path,then use code something like this in map function. byte[] filebytes = new File('\\\\'+path+'\\'+filename+'.pdf').readBytes() String strEncoded= filebytes.encodeBase64().toString() name = filename+".pdf"; fileContent= strEncoded; fileContent stores the encoded base 64 data.

How to create dynamic table in email body - Dell Boomi

1-Create xml profile as shown below. 2-If there is chance that few elements/rows may or may not have values then provide default empty space so all columns will be maintained properly. 3-You can also provide width ,color etc as shown in profile. 4-You need to provide Header label as default value as per requirement.