Friday 18 December 2015

Get your smarts on over Advanced Salesforce formulae

Something I have blogged and tweeted about a couple of times in the past is writing quality, advanced formula fields. Having a good grasp of Salesforce formulae reaches beyond just formula fields though, as we encounter this mark up in Workflows, Approvals, Validations rules and numerous other areas of the declarative side of the platform.

Badly written formulae can quickly start to stack up in your org (and I mean that literally - if you know how Formula dependencies are inter-compiled) so why don't you stop the rot before it begins with a new exciting Trailhead module... Introducing:

 


Trailhead reckons this module will take about 2 hrs 30 mins and we know from past experience those estimates are pretty accurate, but this module is nicely broken up into 7 chunks, none more than 30 minutes, so again, as we know from before we can easily fit these bitesize chunks into our regular, busy days. I'm actually on holiday today, and so I am going to secretly work through these modules as Laura fusses about the house doing Christmassy things.

So, First

Laura: Shopping on "notonthehighstreet.com" for a novelty cushion as a Christmas present

Simon: Using Basic Logic in Checkbox Formulas

The first thing I had to overcome is that as a "Latin English" advocate, the plural of formula to me should be formulae, but I will let this go, that is not the challenge here.. the challenge here is getting the basics down with formula fields, and understanding the core functions and operators. As I came into this module, I was honestly expecting the use of some things like ISBLANK() to be the climax of advanced formula fields, so even I am now a little nervous about how advanced this might actually get! There is even a little bonus Back to the Future reference in this module. Which you can't miss.



As a personal aside to this module, I would have to say that I have always found it useful/better to actually use the "Insert Field" button to drop fields into formulae... I also quite often use the Function picker on the right to build up my code. Even though typing these things isn't hard. I think it makes it more methodical (and does reduce typos) than just freehanding it all in. The logical flow which you might type "this and that if that or this" might not be the most efficient way to actually evaluate something, and using the function selector makes me evaluate that a little harder.

Anyway, no distractions by personal techniques. We are here to earn all the badges. And besides, Laura has stopped shopping... it appears someone in our family is getting one of these next week:


(I'm lucky none of our relations read my blog...)

Module 2

Laura: Making posh coffees with the machine in the kitchen

Simon:  Using numbers, currencies and percentages in formulas

This is a really good topic, and probably one where I fall foul of the rules more often than not. There is a sub-section in here on the solid use cases for these three different, specific formula types. I'm afraid that I am a bit of a dinosaur myself, and I still don't "believe" in these rich variable types. I just make everything a number, and then deal with the formatting, processing and collateral damage of doing so myself. I could definitely learn something here.

I have also have trouble in the past with "divide by zero" errors in formulae, so it is worth noting the final paragraphs on "treating blanks as zero" - but you should also get into the habit of thinking about zeros being valid amounts. How often do you create a number field with a default of zero for initial values? Consider using an "IF( field__x == 0, 1, field__x)" to instead "divide by 1" - which of course has "no effect" when there is a nill value. (obviously check this makes sense to the business logic first).

Laura rattled through those coffees, so no time for screen shots. A quick espresso and onwards!

Module 3

Laura: Gone upstairs, I think she's on the phone to her mum

Simon: Using Date and Date/Time formula

Ironic this because if I keep up Salesforcing on holiday, I might not get many more dates..
Once again there was some interesting learning in here even for an old hand like myself. DATE functions in formula fields are incredibly powerful. Coming from other programming language libraries being able to call out instances of TODAY and LASTWEEK in reports and rules has always been quite simply dreamy.

The challenge on this module is a little odd, in terms of "business value".. I would probably have one of our BA's go back to this client to establish quite why they wanted the current day of the week on their contact page, but it's still a good example that uses a clever trick outlined in the module ;) - as an extension to this, you could consider taking a Date of Birth field on the contact page, and get Salesforce to output the day of week this contact was born.. You could then even cross reference it with that famous poem about "babies born on a monday" to augment a Description field...

Either way, stack up the points, and prepare to move on. I have to go out now, I have a feeling the conversation is going to be a distant background noise to me now as my head buzzes about the possibilities of the next module.

Module 4

Laura: Back home scrolling instagram for wedding ideas

Simon: Using Picklists in Formulas

I know who's having more fun on the sofa right now (I hope she doesn't look over at my screen). There is one resounding rule regarding Picklists in formulae that they address right at the head of this module: ISPICKVAL() - never forget this.

 

As much as Picklists can LOOK like text, ACT like text and in Apex be TREATED like text - in formulae, you need to address them with the ISPICKVAL function to compare them. I have lost count of the number of times this has caught me out and you eventually conceed "ooohhh, it's a picklist, thats why it doesn't work.". This module makes a good highlight of this, and explains the options you have in the form of CASE and TEXT as well. Most comparisons I make though tend to need ISPICKVAL - as you are plucking out one possible status value for an sObject and then asserting a bunch of rules around it.

Module 5 - the game is up

Laura: Discovered I was on Salesforce, has gone into the other room

Simon: Using text in Formulas

This must be one of the biggest uses of simple formula fields in Salesforce - text manipulation. The examples in this module are exactly on point - concatenating names, turning numerical values into words (like "Hot" and "Cold" leads) - but did you know you can do so much more with text in formula fields? Just last week I tasked one of my colleagues (a fairly new start) with the challenge of replacing a "dirty product" flag with a "red light image" - he stared at me in horror, until I told him to quickly Google it... if I'd know this module existed, I would have sent him straight over here instead.

That is exactly what you are about to embark upon in the challenge. Generating a five-star-review icon in place of a "1-5" numerical grade for Lead quality. This kind of formula field should be kept somewhere safe, as once you know how to do it - you are going to want to put images ALL OVER your page layouts. (with a bit of tinkering, you can get a whole raft of standard salesforce icons, such as traffic lights and 5-star rating, but also Tab icons and other standard imagery, so go have a poke around...!)



I now have to go and make lunch I think, to re-establish communication lines here at home, especially as the next module starts with a video, and I don't have headphones to hand.

Two modules to go

Laura: Has put her shoes on, I think I'm in luck - she's off for a walk

Simon: Levelling up with Advanced Formulas

It seems we have now learnt everything we need to know about advanced formula fields, much like the prodigy in every kung foo movie - it is now time to use what we have learnt. There are some really good tips on best practice formula practises, especially for longer formulae, with a nice 12 month example (which as I read I was sure, this can be simplified) - that is then smashed down to a super-simple 4 liner.

There is a really interesting article linked out from this module "Tips for reducing formula size" - and I am genuinely going to print this out and keep it in my desk drawer at work. My comment in the second paragraph about inter-compiling formulae is addressed in this document, with really good examples of how re-using another formula field repeatedly inside other formula fields will really, really quickly blow you out of the water for maximum formula compile size. Give this a good read, I have found myself applying the "when all else fails use a workflow rule" chapter at least once.

The challenge on this module involves building two formula fields, so read through all the points before starting on it.. you actually want to develop from the bottom up on the challenge bullet points as you will reference your second formula field in your first (which you can't do until you have it).

The final module

So there has been a little beer drinking between the advanced formula module and now, but I have always maintained I do my best coding when I'm more "relaxed".. (I'm not sure how my employer would feel about that mind)

Laura: Wrapping presents on the floor

Simon: Troubleshooting Formula Errors

As I read down these common formula errors, I couldn't help but notice that I was just slowly nodding my head along in agreement with everything they said. Anyone who has worked with formula fields for a few years would have to admit or agree to these errors at some point or other. My suggestion of using the "Insert Field" and double clicking method names really does mitigate errors relating to missing parentheses or parameters because the wizard will fill them in for you as you go.

The second half of this module reiterates the details from the "Tips" document I mentioned earlier in this post - which does just go to indicate it's importance (I knew it!). Being aware of the compilation process and limits is half the battle to not having a problem with it.

This final challenge is a bit of a "spot the bug" one - which if you've ever paid attention to the Bristol Developer User Group that I run - you will know is something of a personal favourite hobby of mine - so I was delighted to recreate this problem and fix it up. Not a problem in the end, just pay attention to your training and you will have this module complete in a heartbeat.




Now I haven't technically earnt this badge yet, as I didn't complete all the challenges (I know, I know, shocked gasps!). But if you would like to find out more about this, or other trailhead modules - get in touch with me and join us on January 7th at 6pm GMT for the Bristol Salesforce Developer User group who will be having a Trailhead meetup that night. Attendance can be physical or digital - we can skype-project you if you want, and I will be earning ALL these new badges that night, for sure!


Whilst I am writing a blog post about Trailhead - whether you need the practise or not - I have to point out that there is now a module for building a Space Battle Station now.... no more boring warehouses for us!

Go earn all the badges!

48 comments:

  1. Hi Dear,

    i Like Your Blog Very Much..I see Daily Your Blog ,is A Very Useful For me.

    You can also Find application development company

    Brossarddesign is one of the best mobile application development company in Toronto & Montreal. We have the latest range of designs to create your iOS & android mobile app.

    Visit Now - http://brossarddesign.com

    ReplyDelete
  2. Application Development help me to develop custom web app.
    Software Application Development Company

    ReplyDelete
  3. Hello friends. Perfect Money which is the world most popular digital currency. And if you want to buy it. Or do you have Perfect Money Dollars and you want to sell them to get Indian Rupees. So we can help you in this work. We provide this Service in the whole of India.. You can buy or sell Perfect Money at any time in 24 Hours. And your transition will be completely safe and secure. We are one of the Trusted Exchangers of India since 2012. We provide instant service.

    For more information, you can call us at 95175-44444 or visit our website, which is www.sellperfectmoney64.com

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Great Post i have a website related to below
    Download Songs
    IFSC Code

    Thanks
    Mukesh Shukla

    ReplyDelete
  6. great post
    i have a website related to fashion my website name Pechi Fashion visit my website to check my products and services

    ReplyDelete
  7. Thanks for posting
    my website techwolk is related to technology

    ReplyDelete
  8. i have read your post you are sharing a great information.
    https://www.perfectentrepreneur.com/

    ReplyDelete
  9. it s a great post and you sharing much information
    https://www.perfectentrepreneur.com/

    ReplyDelete
  10. i have a website related to songs songs visit my website to check my product and services

    ReplyDelete
  11. Great blog, you want to know that how do free apps make money? There are many app monetization methods that generate high revenue for the business. However, the prime focus of the free app needs to be user-oriented and not just mere profit making by bulking it with a lot of advertisements. To keep the user engagement persistent the app publishers and the app development companies need to understand the user perspective and requirements.

    ReplyDelete
  12. Justdial Data Extractor Free from my website yoy can extract unlimited data from justdial.
    if you have website and want to know How to Install Free SSL watch my video.

    ReplyDelete
  13. Great post You are sharing much information keep it up ..awesome post

    I am sharing about of UP Scholarship Status 2020 :How to Apply ,Eligibility Criteria and Needed Documents

    ReplyDelete
  14. Great post You are sharing much information keep it up ..awesome post

    I am sharingabout of Adverb of Time and Its Examples

    ReplyDelete
  15. Great post You are sharing much information keep it up ..awesome post
    I am sharingabout of Adverb of Manner | Examples

    ReplyDelete
  16. Great post You are sharing much information keep it up ..awesome post
    I am sharing essay ofMy Favourite Festival Is Diwali

    ReplyDelete
  17. Great post You are sharing much information keep it up ..awesome post
    I am sharingbiography of Top 10 Best Business Books for Entrepreneur

    ReplyDelete
  18. This comment has been removed by the author.

    ReplyDelete
  19. Great blog, you want to know that how do free apps make money? There are many app monetization methods that generate high revenue for the business. However, the prime focus of the free app needs to be user-oriented and not just mere profit making by bulking it with a lot of advertisements.keep posting such useful information.
    Full Stack Training in Chennai | Certification | Online Training Course
    Full Stack Training in Bangalore | Certification | Online Training Course

    Full Stack Training in Hyderabad | Certification | Online Training Course
    Full Stack Developer Training in Chennai | Mean Stack Developer Training in Chennai
    Full Stack Training

    Full Stack Online Training

    ReplyDelete
  20. Excellent Blog! I would Thanks for sharing this wonderful content.its very useful to us.There is lots of Post about Python But your way of Writing is so Good & Knowledgeable. I gained many unknown information, the way you have clearly explained is really fantastic.keep posting such useful information.
    DevOps Training in Chennai

    DevOps Online Training in Chennai

    DevOps Training in Bangalore

    DevOps Training in Hyderabad

    DevOps Training in Coimbatore

    DevOps Training

    DevOps Online Training


    ReplyDelete
  21. Go with the best architectural thesis topic ideas that are given to the students at free of cost by college professors at students assignment help.keep up!!
    Java training in Bangalore

    Java training in Hyderabad

    Java Training in Coimbatore

    Java Training

    Java Online Training


    ReplyDelete
  22. I appreciate your efforts because it conveys the message of what you are trying to say.
    It's a great skill to make even the person who doesn't know about the subject could able to understand the subject .


    AWS Course in Chennai

    AWS Course in Bangalore

    AWS Course in Hyderabad

    AWS Course in Coimbatore

    AWS Course

    AWS Certification Course

    AWS Certification Training

    AWS Online Training

    AWS Training

    ReplyDelete
  23. Nice blog. yo provide a very nice information with screenshots.It will easily follow the steps to finishing the project. I am really very happy to read this blog.Thanks for sharing.keep sharing more blogs.

    python training in chennai

    python course in chennai

    python online training in chennai

    python training in bangalore

    python training in hyderabad

    python online training

    python training

    python flask training

    python flask online training

    python training in coimbatore

    ReplyDelete
  24. When it seems hard to find a job, there are typically three factors at play: Your job search and application practices are ineffective. Your skills aren't relevant in the industry/geography you are applying in. It is challenging to get the attention of hiring managers with so many other applicants.thanks lot!!

    Android Training in Chennai

    Android Online Training in Chennai

    Android Training in Bangalore

    Android Training in Hyderabad

    Android Training in Coimbatore

    Android Training

    Android Online Training

    ReplyDelete
  25. This post is really nice and informative. The explanation given is really comprehensive and informative.

    Salesforce App Development

    ReplyDelete
  26. incredibly write-up! about android app development as well as you create an amazing vital blog regarding android, I get much information through your article regarding android app development. keep sharing with us,

    Visit: Android App Development Services India & USA

    ReplyDelete
  27. Salesforce allows connecting the entire customer journey across sales, service, commerce, marketing, and every other touchpoint. This means it has got every approach that could bring a business closer to the customers. Reaching closer to the customers becomes easier when it is through an application that is easy to use and proves to be functional for them. This is where the role of a Salesforce AppExchange developer comes into play. Save from troubles of searching for remote developers who can understand your business and provide you with tailored service. We have a proficient team of certified Salesforce AppExchange developers who are ever-ready to listen to your expectations and craft applications that match exactly to your imagination and deliver the best results.

    visit-360degreecloud

    ReplyDelete
  28. Unchecked or poorly maintained fuel online home equipment poses a capacity threat to your tenant's safety, which can bring about a fuel line leak or deadly explosion. Striving to run a nicely organised, compliant operation
    UK Gas Safety Certificate

    ReplyDelete
  29. Axure RP Pro Full Version With Crack user is style to the develop, answer, or the experience. Edit the custom groups, pages, & design. User easily Axure RP 8 Full Crack

    ReplyDelete
  30. Kaspersky Total Security 2023 Crack launched a new Kaspersky product in 2021, but it is not an anti-virus product: Kaspersky Security Cloud. Kaspersky Total Security 2019 Keygen

    ReplyDelete
  31. Seeking to add a UK-based, very competent remote Salesforce engineer to our team!
    hire remote salesforce developer UK

    ReplyDelete