Challenge Overview
We need to write a custom migration of Salesforce notes into SpringCM forms. Using Salesforce, we need to loop through all Notes, and take the steps listed below:
-
Authenticate into SpringCM using the API Method Authenticate
-
Make a copy of an Existing form into the correct Parent Folder using the SpringCM API Method Copy
-
Set the fields based on the Note fields
-
Salesforce Note field Title gets copied into the SpringCM form field Title
-
Salesforce Note field Body gets copied into the SpringCM form field Body
-
-
Call SaveCustomFormData on the new Form
-
Update Salesforce tracking to reflect update
This code needs to run inside of a batch class. It needs to account for Salesforce Limits on API Calls so it will need to be able to call itself to continue to iterate over remaining Notes. Due to the high number of API calls per transaction, this class may need to execute on a single record, then call itself on another note.
SpringCM Config
We need to create a SpringCM E-Form with fields "Title" and "Body".
Salesforce Config
We need to track all attempted migrations to ensure we do not create duplicate notes for all successfully migrated notes, and to ensure if we have a failure we can attempt to upload again. When the batch job executes, it should first reset all failed notes so they will be executed again during the batch. Please see below for the steps.
- Run Batch class
- ���If any records in the tracking object are failed, reset the failures so they will be executed again
- ���Iterate over all Notes, attempting to migrate each to SpringCM
- Log success or failure for each note
Final Submission Guidelines
Software Guidelines
Submission Guidelines
Any SFDC deliverables should be submitted in a zipped eclipse package. An unmanaged package is also required for the SFDC deliverable.
Setup documentation is required. Must include detailed instructions on how to configure the application for different SFDC & SpringCM environments.
SpringCM Environment Setup:
We can't directly create logins into the SpringCM UAT environment. In order to request a UAT environment with API access, we need to request a Login from support@springcm.com with the subject "TopCoder UAT Account Access". This should be resolved by SpringCM support in 24 hours once the request has been made.
For SpringCM API documentation check here: http://docs.springcm.com/SOAP/v201305/
Salesforce.com Environment Setup:
Get a free Salesforce.com developer edition here: https://developer.salesforce.com/
You will also need to install the SpringCM managed package that can be found on the Salesforce.com AppExchange.