As a "Force.com fan", I am a heavy user of Force.com developer orgs. Developer orgs are Salesforce.com environments, which allow you to test out any of the propositions Salesforce.com offers. Communities, Sales Cloud, Service cloud, you name it; everything is there. Signing up is easy and free. You can do so here. Sometimes developer orgs serve as playgrounds for new Salesforce.com technology, at other times I actually try to build apps or construct proofs of concept. In most cases these developer orgs are more than enough to achieve whatever purpose I had in mind.

DATA STORAGE LIMITATIONS

On my latest "hobby" project, I finally ran into a challenge with a developer org, that at first seemed unsolvable. I needed to import the data from a large SQL file for my latest Force.com inspiration. After creating a custom object and running the import (SQL can easily be converted to DML using Apex), the developer org started complaining. It turned out I was at 175% of my total data storage. Result: No way to work with the entire Force.com database anymore.

Thinking the issue through and asking others if there was any way around this, my project seemed impossible at first. Data storage cannot be extended on Developer Edition orgs and I really needed this data, for read-only purposes, to complete my project.

LIGHTNING CONNECT TO THE RESCUE!

After examining Lightning Connect, a rather new Salesforce.com proposition, in combination with External Objects, I began to see some light at the end of the tunnel. It turns out Lightning connect allows you to build custom connectors!

I only had to slightly refactor the SQL to DML script (APEX), to instead transform the SQL to work with the Apex Connector Framework (https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_connector_start.htm). This allowed me to implement the SQL file, retrieved through an HTTP call, as an external object.

External objects are read-only, but do allow SOQL. Which was in fact all I needed here. And the good part: The data in such an external object does not count towards the data storage limits!

I hope this approach might help other developers with a similar challenge as well. It's not hard to implement and offers yet another tool in the already rich Force.com toolbox!

This is a repost of my blog on linkedin.

Add comment


Security code
Refresh