Audit9 Blog

The Audit9 Blog provides content for Architects, Developers and ISVs with a technical interest in the Salesforce cloud platform and ecosystem.

Blog authored by Mark Cane, Salesforce Certified Technical Architect. All views expressed are mine and mine alone. All content provided on this blog is for informational purposes only.

FieldSets in Apex

As of the Summer ’12 release FieldSets can be accessed through Dynamic Apex (or Apex Describe). Remember, FieldSets are admin configured arbitrary groupings of fields, added on the object detail page within setup. With the upcoming release, controller code can now dynamically build a soql query that retrieves the data for the fields in the […]

Salesforce Org Architecture

The figure above shows a complex multiple org architecture (Hub-and-Spoke model). I’ll return to the drivers for multiple-org versus single org in a future post. For now let’s consider some interesting aspects of the above scenario. SSO : users log in via their Active Directory Credentials. The CORPORATE org being a SAML 2.0 Service Provider […]

Force.com Flow

With Spring ’12 the native Cloud Flow Designer went GA, flows are now also metadata API enabled (an important point for ISVs). Force.com Flow, or Visual Workflow as it’s also referred, introduces a compelling approach to business process automation for less technical projects, enabling business analysts to define complex flow logic involving data manipulation and […]

Salesforce Certified Technical Architect

I passed the Salesforce Certified Technical Architect programme in January of this year (2012), here I’ll share general thoughts on the process and some key areas to study. Ok, so the CTA programme has 3 elements; 1. Self-certification Simple record of who you are, plus a self-assessment on domain relevant skills. Note you are required […]

Salesforce Continuous Integration

What is it? In essence CI is an aggressive build strategy requiring the isolated work of project developers to be integrated immediately following code commits to a shared source-code control system. Regression tests are run automatically, surfacing build errors or code inconsistency at an early stage. CI is viewed as an Agile practice and is […]

Visualforce User Agent Detection

The code below provides an example of a page action method used to detect a mobile user-agent and perform redirection. Alternatively the same approach could be used with dynamic Visualforce components to switch between mobile/web optimised page composition. [sourcecode language=”java”] public PageReference redirectDevice(){ String userAgent = ApexPages.currentPage().getHeaders().get(‘USER-AGENT’); //& some devices use custom headers for the […]

Force.com Streaming API

So, imagine you’re building a modern web app (or page) and need to update some element on the page in near-real time, perhaps an open inventory quantity to prevent data conflicts upstream. The point being that the immediacy of update of the data plays a fundamental role in the business process. What are the options? […]

Force.com Sites SEO

Quick how-to guide.. 1. Page title tag [sourcecode language=”html”]<title>Key Search Terms</title>[/sourcecode] The title element is the single most important on-page SEO data. Consider it carefully. 2. Keywords and description metadata tags [sourcecode language=”html”]<meta name="keywords" content="keyword1, keyword2" /> <meta name="description" content="Key Search Terms" />[/sourcecode] 1 and 2 are key, keep the content focused and short, search […]

Simulated Breakpoints

The first of a series of posts relating to new advancements in the Apex language of particular relevance to technical architects. From a debugging perspective the Apex language lags behind its modern language counterparts. Standard features such as breakpoints (conditional or otherwise) and edit-and-continue are lacking, due to the challenges of pausing runtime execution in […]