
Salesforce Blogs
JSON Parsing in Apex can be a Developer’s Nightmare!
Today I stumbled upon a requirement to parse JSON in Apex. I was happy about the fact that I know there is a cool open source library calledJSONObject, that will do all the heavy lifting of JSON parsing and another more cooler native JSON parser is lined up in coming winter'12 release…
Dependency Injection for ease in Testing Apex WebService Callouts!
Dear Apex developers, who are using HTTP Restful Classes know that testing the callouts is not allowed in Apex. People came up with their own smart ways to handle this restriction.
Apex Inheritance – Extending managed package abstract/virtual classes & interfaces!
In my recent project, I came across a requirement to create a base class in a managed package with child extension packages that would extend to add their value to it.
Efficient Sorting of Apex SelectOption Arrays and Lists
All Apex developers creating Visualforce pages with drop-downs and checkboxes use the Apex SelectOption class. On most occasions, instances of this class are created out of records in a database that we can query in a desired alphabetical order
Preparing for Salesforce AppExchange Security Review!
This post is for guys who are planning to release their app on App Exchange and are looking forward to clearing the security review in one shot! This post aggregates all the good links and information you should have in hand.
Force.com ESAPI: A Key to Simplifying Apex Security Compliance!
While fixing security issues for a customer, I came across a very interesting and powerful security API from Salesforce, i.e., Force.com ESAPI. As per the Google code description, this API…
How do you read cookies set by JavaScript in the Apex/Visualforce controller?
This might be a requirement, if you are developing some complex navigation…
CDATA Section Support: Boosting Apex DOM Classes for XML
I saw this tweet today about the apex-fast-xml-dom library. Unfortunately, it's true that FastXMLDom can’t support CDATA sections as of now. This is because FastXMLDom is a wrapper on top of Spring’10 Apex DOM classes, and DOM classes don’t support CDATA sections.
Javascript Remoting & jQuery Templates: An Easy Way to Rich and High-Performance Interfaces!
Since the release of the Javascript remoting feature in the Spring’11 release, I was super excited about it and was looking for spare time to play with it. A few days back I read about jQuery templates; that’s an awesome jQuery plugin (soon going to be part of jQuery Min)..
Apex API String.format(); Exploring Good & Bad Parts!
I recently came across this useful and under-documented Apex String API, i.e. String formattedString = String.format(String template, List<String> arguments)
String.format(..) is again based on the Java MessageFormat class; its documentation says: Treat the current string as a pattern that should be used for substitution in the same manner as apex:outputText.
Invoking “Apex WSDL” Web Services from Apex Code
Apex programming WSDL can be downloaded from the “Setup” area of your Salesforce org. Just land on the “App Setup > Develop > API” page. Instructions to download are shown below:
Salesforce WSC added support for Session Timeout handling!
Retrying web service call failures/exceptions is important because not every exception means it’s the “end of the world." There is always some hope for some exceptions, like Session timeouts or Invalid session IDs. One can always renew the session (if credentials are available) and make those failing web service calls work again.
HTTP Compression with Apache Axis, a huge performance boost!
As mentioned in my previous post, I was researching/benchmarking on how HTTP Compression with Apache Axis improves performance. The results I got post HTTP compression, are surprisingly amazing…
HTTP Compression with Apache Axis for Salesforce Web Services!
I have been speaking a lot about using WSC above Apache Axis, but today I found an interesting old post about HTTP compression with Apache Axis. This is interesting because it can boost performance for those who are integrating with Salesforce web services using Java Apache Axis.
Understanding—No such column on entity 'Name' error!
One can get errors like: No such column ‘SmallPhotoUrl’ on entity ‘Name’ OR No such ‘column CompanyName’ on entity ‘Name’. On an SOQL statement like:
Debugging Sites Authorization Required Error!
Force.com sites redirects to “Authorization Required” page in case something goes wrong behind the scenes, for ex…
Isolating Apex Test Data from Actual Org/User’s Data!
The key to write a good apex test case is isolate test-data from actual org/user data. If your test case in anyway depends on org data, then it will fail for sure in deployments across different Salesforce orgs…
Deep Dive: Static Context in Visualforce Apex Controllers
Apex static is always confusing for me. I am from a Java background, so it took a while for me to really understand the differences between Apex and Java static. This post discusses apex controller static behavior, i.e., in relation to Visualforce only.
Working with Aggregate SOQL queries/results in Batch Apex!
What if you want to create a Batch Apex Job that uses SOQL having aggregate functions like SUM, MAX, and COUNT on top of results grouped by the “GROUP BY” clause? You can’t easily create a Batch job via QueryLocator, as shown below. When working with Batch Apex in Salesforce, you might encounter a scenario where you need to run SOQL queries with aggregate functions like SUM, MAX, or COUNT while grouping results using the GROUP BY clause.
Batch Apex & First error: Attempt to de-reference a null object!
I stumbled upon a strange Batch Apex issue today. My batch job was going well in a few SFDC orgs; after deploying the same to a new org it stopped working completely. I just see, “First error: Attempt to de-reference a null object” in debug and apex logs.