Transcript
Page 1: Triggers for Admins: A Five-step Framework for Creating Triggers

Triggers for Admins: A Five-step Framework for Creating Triggers(a play in 5 acts)Veronica Beck Ashima Saigal

@gandhilover

Page 2: Triggers for Admins: A Five-step Framework for Creating Triggers

Place

Customer or

Partner logo in

white area of

slide, centered

Ashima SaigalDatabase Sherpa founder

Summer 2014 MVP

Page 3: Triggers for Admins: A Five-step Framework for Creating Triggers

Place

Customer or

Partner logo in

white area of

slide, centered

Veronica BeckBigger Boat Consulting Senior Consultant

Page 4: Triggers for Admins: A Five-step Framework for Creating Triggers

Setting

“We want our own custom campaign

member statuses, but it’s a pain to

have to add them every time we

create a campaign.” – Celeste, yoga

studio owner

Page 5: Triggers for Admins: A Five-step Framework for Creating Triggers

Audience Participation

We have some suggestions:

● Breathe! You can do it.

● Replace trepidation with curiosity.

● Know this won’t happen overnight.

● Remember, you are not alone.

Page 6: Triggers for Admins: A Five-step Framework for Creating Triggers

Triggers for Admins

Act 1: Where do I write code?

Act 2: Gather Your Resources

Act 3: Clarify Your Requirements

Act 4: Code and Test

Act 5: Finalize and Launch!

Page 7: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 1: Where do I write code?

Developer Org: https://developer.salesforce.com/gettingstarted

Page 8: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 1: Where do I write code?

Page 9: Triggers for Admins: A Five-step Framework for Creating Triggers

Go to Setup.

Find the object where you want the trigger.

Click on Triggers.

Act 1: Where do I write code?

Page 10: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 1: Where do I write code?

Click the New button, and voila!

Page 11: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 1: Where do I write code?

Some other tools for writing code:

• Salesforce Developer Console

• Eclipse

[there are many more!]

Page 12: Triggers for Admins: A Five-step Framework for Creating Triggers

● www.sfdc99.com

● Creator David Liu presents: “Anyone

can learn to code Apex!” On

Wednesday at 11 am

Act 2: Gather your resources

Page 13: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 2: Gather your resources

● Power of Us HUB (nonprofits)

http://www.salesforcefoundation.org/help/power-of-us-hub/

● Success Community: (Salesforce online community)

● Local User Groups (in person meetings)

● Developer User Groups (in person meetings)

● Network at Dreamforce!

Page 14: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 3: Clarify Requirements

● What problem are you trying to solve?

o Inconsistent campaign member statuses

● What needs to happen?

o Auto creation of desired member statuses

● When does it need to happen?

o When a new campaign is created

● Should it always happen for all records?

o Only for workshop type campaigns

Page 15: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 3: Clarify Requirements

Write it “In English” (aka pseudo code):

When a campaign is inserted

● Check if it’s a workshop campaign

● If it is a workshop campaign …

o Get rid of the default Campaign Statuses

o Add the following campaign statuses:

Invited (default)

Accepted (responded)

Attended (responded)

No Show

Page 16: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

● Recap

o Set up your coding environment

o Go through some tutorials

o Clarify what you’re trying to do

● Get ready, set, go!

● Search for code, copy and paste.

Page 17: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 18: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 19: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Trigger.new contains all records that are being inserted or updated

Loop through the trigger.new collection

Do something with each record

Code Sample:

For (Campaign c : trigger.new){ // This is the beginning of the loop

//do something with each record

} //this is the end of the loop

Design Pattern 1: Use Trigger.New

Page 20: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 21: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 22: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 23: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 24: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 25: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 26: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 27: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Design Pattern 2: Use Lists and Sets

Lists and Sets are like a

bucket to hold records for

later processing

Page 28: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 29: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 30: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 31: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 32: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

Page 33: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

For (Campaign c : workshopCampaigns) { //start of the loop

CampaignMemberStatus myCMS = …..

myStuff.add(myCMS);

} // end of the loop

Insert myStuff ; Insert is happening AFTER the loop

Design Pattern 3: Inserts, Updates, Deletes Outside of Loops

Page 34: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 4: Code and Test

● Common design elements

o Loop through trigger.new (or trigger.old)

o Use collections to hold records to process

o Do inserts, updates, and deletes outside of your loops

● Other helpful Tips

o Comment your code!

o Use system.debug for troubleshooting

Page 35: Triggers for Admins: A Five-step Framework for Creating Triggers

Act 5: Finalize and Launch

• Ask users to test with real-life scenarios

• Revise code, have users re-test

• Write test methods

– Sfdc99.com has examples and tutorial

– Force.com Apex Developer Guide

http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm

• Deploy!

– Use Salesforce change sets and deployment connections in Setup area

Page 36: Triggers for Admins: A Five-step Framework for Creating Triggers

That’s a Wrap

Page 37: Triggers for Admins: A Five-step Framework for Creating Triggers

Begin Your Coding Journey Today!

● Set up your FREE developer account

● Find a mentor – introduce yourself to at least three people and tell them

you’re looking for help with coding.

● Visit sfdc99.com.

● Celebrate the beginning of your journey!

Page 38: Triggers for Admins: A Five-step Framework for Creating Triggers

Resources

Beginner Tutorial - http://www.sfdc99.com/beginner-tutorials/

Salesforce Developer Forum - https://developer.salesforce.com/forums/

Trigger Best Practices - http://www.iterativelogic.com/salesforce-apex-trigger-best-practices/

Trigger Order of Execution -

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_order_of_execu

tion.htm

Writing Bulk Triggers - http://blog.jeffdouglas.com/2009/04/20/writing-bulk-triggers-for-

salesforce/

Force.com Apex Developer Guide -

http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm


Top Related