Relational Junction for Salesforce
I was recently introduced to the Relational Junction for Salesforce product by Sesame Software. Per their site’s product page,
Relational Junction for Salesforce simplifies legacy data migration, integration and reporting by creating and synchronizing a local data warehouse that is a perfect mirror of your Salesforce.com site. This Oracle, SQL Server, MySQL, DB2, or Sybase database includes all custom objects and fields, including long text and attachments. No programming is required, and the database schema is always in sync with your Salesforce site.
I was given a temporary license to play around with the product and I have to say I am quite impressed. I am running Windows XP and used a local MySQL database for my replica database. I was able to get a replica created locally in about 10 – 15 minutes. I spent another 30 minutes learning about its intricacies and was able get my replica tweaked just the way I wanted.
The biggest thing that sets this product apart is its ability to easily send data back to Salesforce.com. It lets companies have their developers focus on interacting with the DBMS of choice (Oracle, MySQL, SQL Server, etc.). Inserts/Updates made in the replica database are sent back to Salesforce.com in the next SetUpdated command. This works for standard and custom objects. The Relational Junction for Salesforce scripts do the work of interacting with the Sforce API, leaving developers to focus on the replica database. Another nice thing is that DELETES made in Salesforce.com are not deleted in the replica. Rather, they are marked as having been deleted.
The process of setting it up was simple (a PDF they provide explains what you need to do):
- Unzip the files into a new directory. “c:\rj4salesforce” is the recommended location in order which minimizes the amount of editing required in the config files. There is no install program.
- Edit the connection properties file with info on connecting to Salesforce.com and to your local database. There is also a command for encrypting the password in the file.
- Edit the upload.config and download.config files to document the objects that should be included in the download from Salesforce.com to the local database and the objects included in the upload of changes back to Salesforce.com.
- Run a GetAllGlobal command to get your Salesforce.com database replicated locally. Alternatively, you can run GetSchemaGlobal to just get the schema.
- From there, you can run all kinds of commands like GetUpdated on specific objects to get changes from Salesforce, GetUpdatedGlobal to get all changes for all objects in your download.config file, SetUpdated on specific objects to send changes back to Salesforce, etc.
Relational Junction for Salesforce definitely practices the Keep It Simple philosophy. There is no user interface for it. All commands are run via command line. The programs are written in Java, so it is cross-platform, and they provide BAT files for Windows execution and files for Unix execution.
The documentation includes sample scripts, best practices and an example approach to use the product for converting legacy data to Salesforce.
If you are looking to integrate your Salesforce.com database with multiple datasources and are hesitant to train a large group of developers on the Sforce API, Relational Junction for Salesforce is a good option for handling the work with Sforce, letting your team focus on interacting with the databases they are used to.
Sesame Software also makes an ETL Manager product to manage the loads between non-Salesforce.com databases. I did not look at that product, but you learn about it here.