For Developers

  • Salesforce Lightning Picklist By Record Type
    February 11, 2019

    Lightning Picklist By Record Type

    The Backstory Enforcing record type visibility and field dependencies for picklist fields in a fully custom development context has been a struggle for a while now. With the addition of lightning:recordEditForm in Spring '18 release, that struggle was diminished sizably. There are still, though, times when lightning:recordEditForm simply can'

    Read more
  • Email Author for Salesforce Lightning Experience
    October 22, 2018

    Email Author for Salesforce Lightning Experience

    If you have been doing Salesforce development for some time, you have probably run into the need to create a custom button to call the email author with certain attributes of the email populated, such as the Subject, To or Email Template. With Salesforce Classic, this was very easy to do with a custom JavaScript button and some URL hacking. If

    Read more
  • Overriding the Opportunity Contact Role in Salesforce Lightning
    October 18, 2018

    Overriding the Opportunity Contact Role in Salesforce Lightning

    Need an override for Salesforce out of the box OCR functionality in Lightning - read on... As we all are painfully aware, the standard Salesforce out of the box functionality for Opportunity Contact Role (OCR) is woefully limiting and frustrating. No triggers allowed on these junction red-headed stepchild and just awkward all around. And yet t

    Read more
  • June 25, 2018

    Expandable Lightning Component

    What do I mean by an "expandable" lightning component?  Well, what I mean is a lightning component whose content can be "expanded" to include another component by specifying the NAME of the second component when placing the expandable component on a page. You must be thinking, "why would I want to do that ?" So, let me tell you why I did

    Read more
  • January 3, 2018

    Lightning Exception Handling Framework

    There are 3 types of code: Bad code, functional code, and good code. Bad code simply doesn't work and functional code works but has a bad user experience, but what makes good code "good"? There are a million ways to correctly answer that question, but I'm not writing on a million topics so I will point out a select few. Good code handles excep

    Read more
  • December 27, 2017

    Lightning Lookup Input Field

    I am sure most of you who are reading this post are frantically searching Google for a way to put a lookup input field on a lightning component form. How do I know this? It's because anyone who needs an input lookup field on a lightning component currently is told to build your own until Salesforce fixes the <force:inputField> to fu

    Read more
  • Lightning Polymorphic Lookup
    May 30, 2017

    Salesforce Lightning – Customizable Polymorphic Lookup Component

    If you have been using Salesforce Lightning Experience, you probably are familiar with the Lightning Polymorphic Lookup. For example, you will see it while creating Tasks, in the "Name" and "Related to" fields: Basically, you get to chose the "type" of SObject; when you type text, a search is performed on the appropriate SObject.

    Read more
  • September 27, 2016

    A flow trigger failed to execute: The mystery error

    The Lightning Process Builder has been GA for a little over a year now. For the most part, it is a fantastic tool. Administrators have been able to build some pretty amazing workflows without the need for a developer like myself. The biggest annoyance that I have seen, though, is that pesky undescriptive error message that shows on the top of

    Read more
  • July 19, 2016

    Lessons Learned From My First Lightning Component

    I decided to write my first Lightning component and, as always, found it easier to "borrow" some code from a fellow blogger and modify it to suit my needs. It turned out to be quite an interesting journey and I ran into various issues that I could not find answers to easily.  I am going to share some of them with you so you can av

    Read more