Selected Articles

How to Pass the Salesforce CPQ Specialist Exam

Salesforce CPQ specialists are in high demand, knowledgeable CPQ specialists are in short supply, and the Salesforce CPQ Specialist certification is one of the most challenging certifications to obtain. I am a Salesforce Certified CPQ Specialist and

Lightning Component Debugging Tips

Lightning Component debugging and troubleshooting can be challenging. Throughout the years, I have found myself using some of the same strategies over and over. This article describes those strategies that I use to debug Lightning Components using

Lightning Record Edit Form

The Lightning Record Edit Form (lightning:recordEditForm) Base Lightning Component provides a way for developers to quickly create forms to create and edit records. It specifies event handler attributes (onload, onsubmit, onsuccess, onerror) and a

Lightning Layout Simplified

The Lightning Layout Base Lightning Component can be leveraged to structure pages and components used within Lightning contexts such as the Lightning Experience in a flexible way. The grid layout and responsive design support provide great

Apexless Lightning Components

A great deal can be done with custom Lightning Components without the need for any Apex code. The lightning:inputField component is designed to be used with the lightning:recordEditForm to provide a quick and easy way to edit records without needing

Apex List Contains

The Idea, Contains/IndexOf Method for Lists, has been delivered in the Spring '18 release. There are two new List methods: contains(listElement), and indexOf(listElement). The methods take a List element as an argument and return whether the List

Time Custom Field

I have been playing around with various features in the Spring '18 release in a prerelease org in preparation for the next Lehigh Valley Salesforce Developer Group meetup. One of the features I explored is the new Time field type. The Idea for it

Automatic Lightning Styles for Visualforce

Visualforce has enabled the very rapid development of custom-coded functionality that blends in seamlessly with native functionality in Salesforce Classic. Particularly, standard Visualforce components encapsulate the styling and functionality of

Lightning Experience: The time to switch is here

When the Lightning Experience first came out it was difficult to justify migrating existing orgs to it because it lacked many features of Salesforce Classic. If a company were to immediately switch they would have invested time and money and lost

Hot JavaScript tips for Visualforce Developers!

The Visualforce framework abstracts away a lot of the heavy lifting of the underlying JavaScript necessary for Visualforce pages to function correctly. Visualforce developers can produce a whole lot of JavaScript without ever actually writing a

5 Lightning Tips for Visualforce Developers

The demand for Lightning Component development has continued to grow and will eventually overtake the demand for new Visifualforce development. Development being done in new orgs, orgs that have made the switch to or that want a path to switch to

Salesforce DX Quick Take

Salesforce DX was announced at Dreamforce 2016 as a new way to manage and develop Salesforce apps.  It is a new and much improved Salesforce Developer Experience.  The rest of this article consists of my thoughts on platform development in the past,

Salesforce Lightning CLI

The Salesforce Lightning CLI is a linting tool that allows developers to check if their codebase has problematic code in its JavaScript. In addition to common lint checks, it scans the code for access and LockerService issues and reports on them.

sObject getPopulatedFieldsAsMap

The Salesforce Summer '16 release will be coming to an instance near you very soon.  This post contains a look at a useful new method on the sObject class, getPopulatedFieldsAsMap().  Come to the next meetup of the Lehigh Valley Salesforce Developer

March SaaSness - Finals

The results of the round of four are in! The field is now narrowed down to the finals.   Vote in the finals for your champion! The results of Round 3: (W) Salesforce Connect vs. Analytics Cloud (a coin flip match goes to the

March SaaSness - Round 3

The results of the round of eight are in! There were some close ones. The field is now narrowed down to the last four: Salesforce Connect vs. Analytics Cloud REST API vs. Trailhead Vote for Round 3! The results of Round 2: Parker

March SaaSness - Round 2

The results of the round of sixteen are in! There were some close ones. Vote for Round 2! The results: Parker Division (W) Lightning Components vs. Lightning Process Builder (Lightning was bound to win this one!) (W) Salesforce Connect vs.

March SaaSness

Soon the madness of March will be upon us, with brackets to fill out, Cinderella teams, sleeper picks, diaper dandies, sweet sixteens, and elite eights. At the Lehigh Valley Salesforce Developer Group (LVSFDG) we are celebrating with our own spin on

Trailhead - Navigate the Salesforce Advantage

A new Trailhead trail, Navigate the Salesforce Advantage, was just released. The stated goal of the trail is to "learn about the key differentiators that drive our success: our core values, innovative technology, and vibrant ecosystem." and it

Spring '16 - Developer Tidbits

The Salesforce Spring '16 release is right around the corner and there are some noteworthy features for developers.  In this post I call out a few of the Spring '16 developer tidbits and explain their significance. Tidbit 1 - Visualforce for

Lightning Components for Record Home Pages

The Lightning App Builder supports editing record home pages as part of a general pilot.  It is one of the contexts in which Lightning Components can be used to extend and customize the Lightning Experience for users.  A Lightning Component must

Lightning Everywhere

Lightning Components were announced at Dreamforce 2014 with the promise of being a mechanism for creating functionality in a single place that could be used in many different contexts.  With the Winter 16 release, Lightning Components were made

Trailhead - Apex Integration Services

Trailhead is the innovative, interactive, guided learning experience for Salesforce developers, admins, and users and it has just gotten even more useful and awesome with the release of more content.  It is often the case that orgs need the ability

Using ant for dynamic deployments

The Migration Tool performs the deployment of metadata from one org to another using Apache Ant and custom tasks defined by the tool.  The custom tasks have many different parameters that give developers the flexibility to configure their

Lightning Components in Visualforce

In Winter '16 the ability to add Lightning Components to Visualforce pages was made generally available. This powerful new feature allows you to reuse existing Lightning Components or design and implement new features as Lightning Components with

Lightning Experience Developer Trailhead

The last month or two of my life have been very very busy, but I still managed to spend a significant amount of time in the Salesforce world. I spent a decent amount of time getting prepared for the Lightning Experience from a technical perspective

Live Coding

I recently hosted my first live coding session on The session consisted of me coding a pair of Lightning Components that perform a search for Contact records. This post describes how I set up and then executed the live coding

Get Ready for Dreamforce

Dreamforce is right around the corner. The 15th of September will be here before you know it! This Dreamforce will be the third one that I will attend in person and there are certain things that I've learned from my previous experiences that will

AngularJS HTML 5 Mode in Salesforce Communities

If you've developed an AngularJS app before or another Single-Page Application (SPA) you are familiar with the URL hash fragment identifier pattern representing the current view/screen state. For example, the phone listing page of an app might be at

Grunt usemin in Salesforce projects

Lately I've been doing a lot more JavaScript heavy development on the platform and have started using Grunt for build tasks.  I value the ease of extensibility and vast library of existing plugins that are available.  This post describes

Lightning Input Component Value Binding

At the last LV SFDC DG meetup, a very talented developer, Thomas Crouse, gave a presentation on an introduction to Lightning Components. He used a typeahead component as a great example to illustrate many of the core concepts of the framework (e.g.,

Input Rating Lightning Component

The Lightning Component framework enables developers to create a wide range of reusable components. The <ltng:require> component that is generally available in Summer '15 makes it much easier for developers to use JavaScript and CSS in their

Process Automation Trailhead Review

The Process Automation module is one of the newest additions to Trailhead, the innovative interactive guided learning site for the Salesforce1 platform.  The Process Automation Trailhead module includes units on the clicks-not-code features of the

Lightning Components Trailhead Review

Trailhead is an interactive learning experience provided by Salesforce for developers to learn different areas of the Salesforce1 platform.  The Lightning Component Framework is a powerful UI framework that allows developers to extend the

Lightning Component Inheritance

The Lightning Component framework provides support for inheritance through component extension.  This article describes how inheritance can be used in the framework.  An example base component that displays standard record detail information and

Lightning Component Composition and Facets

The Lightning Component framework provides different mechanisms to allow components to be used together in meaningful ways. This article explores how component composition and component facets can be used to tie components together. A custom

New Trailhead Content Reviewed

Trailhead is an interactive learning experience provided by for developers to learn different areas of the Salesforce1 platform.  Fresh new content has been added and there's plenty to be excited about.  This post details my take on

Adapting Plugin APIs

Managed package code can be written to allow subscribers to plug in their own implementation of a global interface. Typically this is done with the managed package providing a custom setting that allows the subscriber to specify a concrete

Apex Custom Type Equals

Apex provides the ability for developers to define an equals method in their custom types.  The equals method, along with hashCode, should always be defined when custom types need to be used in Sets or as Map keys.  Additionally, the equality

Accessing Apex REST from using CORS Settings

CORS (Cross-Origin Resource Sharing) support was added to the REST API in the Spring ’15 release. The same-origin policy restricts the browser to only making an XMLHttpRequest to the same host that served the page.  CORS allows pages to request

REST API Lightning Component

In this Salesforce Stack Exchange question I asked how to call the Salesforce REST API, specifically the analytics API, from a Lightning Component.  Two really good answers were given.  One was a great and thorough explanation, from Doug Chasman, of

Image Preview Lightning Component

In my last article I detailed a custom Lightning component for saving files as attachments on objects.  In this article I describe how that component can be used in conjunction with another component via a component level event to give the

File Upload Lightning Component

The Lightning Component Framework was introduced at Dreamforce '14 as part of the collection of tools that represent a significant upgrade to the Salesforce1 Platform.  Currently the components can be used in the Salesforce1 mobile app and

Lightning Component Autocomplete

The Salesforce1 Lightning technologies were introduced at Dreamforce '14 as a major upgrade to the Salesforce1 platform.  Lightning Components are built with the open source Aura UI framework which is the same framework on which the Salesforce1 app

My Dreamforce 14 Plans

Dreamforce is less than one week away and there will be plenty of fun to be had, knowledge to be acquired, and people to meet.  In this post, I highlight key parts of my schedule for Dreamforce 2014. Sessions The technical sessions at last

Remote Objects Autocomplete

Remote Objects are generally available (GA) with the Winter '15 release.  They provide a way to perform simple CRUD operations on an object through the use of JavaScript.  In my last article I detailed code for a Remote Object implementation of

Infinite Scroll with Remote Objects

Remote Objects provide a way to perform simple CRUD operations on objects from a Visualforce page via JavaScript.  With the Winter '15 release, Remote Objects are generally available (GA).  Infinite scrolling refers to a pattern where the next set


I use my local Carbon Lehigh Downloadable Library and The Free Library of Philadelphia as much as possible for eBooks. .gr_grid_container { /* customize grid container div here. eg: width: 500px; */ }

Accessing Apex REST from is a Content Management System (CMS) provided by that allows non developers to build sites through the use of a GUI interface known as the Studio. provides data services page elements that provide a way to

Benefits of Dreamforce for Developers

It is that time of year again.  Dreamforce 2014 is just two months away.  There will be a ton of logistical details coming out about Dreamforce from such as the sessions, events, speakers, etc.  Additionally, there will be (and

Extending the IDE

The IDE is an Eclipse Plug-in, built on the Tooling API, that provides the functionality of an integrated development environment for projects.  In the beginning of July, open sourced the plug-in code. In this

Using Apex Describe to Find Object Paths

The Apex Describe API can be used to get information about various components of the platform.  Prior to the Summer ’14 release, there were governor limits that limited the number of describe calls that could be made in one transaction Page Data Connections Page Data Connections provide a way to retrieve data from into a page.  They allow the page implementer to specify a connection to a Salesforce object that can be used from within the entire page.  This article

Visualforce Remote Objects with jTable

Visualforce Remote Objects provide a mechanism for performing simple CRUD operations directly from JavaScript.  In the upcoming Summer '14 release there are new features being introduced to Remote Objects.  This article explores the usage of Remote

Salesforce Pricing Enhancements

The Salesforce Summer ’14 release is right around the corner.  This article details two new features related to products and pricing: creating PricebookEntry records in unit tests and PricebookEntry custom fields.  Visit the Summer '14 Release

Calculations in Apex

Developing programs in Apex that perform mathematical calculations can be tricky.  Even when you think that your calculations are error free, your unit tests pass, your functional tests pass, and your end users have accepted the calculations, you

Google Visualization API Joins in Visualforce

The Google Visualization API provides a rich set of functionality for manipulating and visualizing data.  In particular, there is a a join() method that can join data between two tables of data.  This can be used in Visualforce to create Google Standards

It is important to have documented coding standards and naming conventions when developing software on the platform.  It is not just useful for large codebases or team development environments.  Small projects or even single developer

Understanding Analytics API Filter Exceptions

Occasionally during the execution of Apex code, an error condition will occur and the Apex runtime engine will generate an exception.   It is important for developers to understand the exceptions that could occur when their code is executing and

Collections Eggstravaganza

Easter is right around the corner which got me thinking about easter eggs in software, movies, games, etc.  Easter eggs are purposefully hidden pieces of functionality that are usually interesting or fun in nature.  There are a few interesting

Salesforce Developer User Group Meetup

We recently had our first meetup of the The Lehigh Valley Salesforce Developer User Group.  Jesse Altman and I had been thinking about forming a DUG in the Lehigh Valley for a while and finally we reached out to April Nassi (thanks April!) about

Inspecting Analytics API Object Details

I've been tinkering a fair amount with the Analytics API in Apex in a Spring '14 pre-release org (see previous articles: here, here, and here).  One of the things that was helpful to me during development was being able to inspect information about

Remote Objects Tidbits

My last article, Hierarchies with Remote Objects and jsTree, came out of my desire to build something interesting using Remote Objects as a way to learn their features and an interest in learning how to use jsTree.  As I was developing the code in

Hierarchies with Remote Objects and jsTree

Visualforce Remote Objects were introduced in Spring '14 (API version 30) as a new and different way to perform create, read, update, and delete (CRUD) operations on records directly from Visualforce.  In this article I document a way to use Remote

Hacking the CLI

The CLI (command-line interface) was introduced at Dreamforce '13 during the Developer Keynote to thunderous applause, for good reason.  The CLI is very useful for executing quick commands without the overhead of pulling up a

A jQuery UI Form Widget supports Widgets to allow common functionality to be encapsulated into page independent entities.  A form element in can be used to collect information from a site visitor and create a record in Salesforce.  The jQuery UI library

Asynchronous Reports with the Analytics API in Apex

The Analytics API in Apex provides methods to run reports synchronously or asynchronously.  This article describes how a report can be run asynchronously from Apex and have its results retrieved and displayed on a Visualforce page.  The code for a

Using the Analytics API in Apex to Create A Google Bubble Chart

The Analytics API in Apex provides methods to retrieve metadata about reports as well as the ability to run reports and interpret the results. This article details how the Analytics API in Apex can be used in conjunction with the Google

Add Google Search to has many good built in features and continues to add more and more functionality with each release.  Google offers a custom search service that can be added to websites to give them search functionality.  This article

Apex Analytics API and Report Chart Component

The Analytics API has been made available in Apex in the Spring '14 release (API version 30).  Additionally, the Visualforce component <analytics:reportChart> has been made Generally Available (GA) in the Spring '14 release and is available Data and Content Strategies is a content management system (CMS) that provides a way for people in non-technical roles to build and maintain websites.  This article details useful ways to manage and display data and content.  An example of displaying Product

Live Agent Pre-Chat API

The many different configuration options available and base out-of-the-box functionality make Salesforce Live Agent especially appealing for a web chat product. The Pre-Chat API in the Pre-Chat form is the focus of this article. Collecting

Dreamforce 13 Performance Tuning Sessions

Dreamforce 13 was the first Dreamforce that I attended.  It was an excellent conference in general and the reality more than lived up to the hype.  Going into it, I honestly didn't know what to expect from a technical perspective.  I've had mixed

Live Agent and Knowledge

The Salesforce Service Console is an amazing piece of technology.  It has many, many features that can make agents extremely productive and able to work very efficiently on a single screen.  Giving agents the ability to use Knowledge Articles as

One thought on “Selected Articles

Comments are closed.