You need to sign in to do that
Don't have an account?
Ehsan Dev
One-way Real-time (or near Real-time) Integration with external system
Senario 1: Accounts, Contact, Products, and a Custom Bbject records are created, updated, or deleted in Salesforce. Any of these changes need to be synced to an external system (that can recieve or send SOAP API messages) to keep the external system updated with the latest changes in Salesforce. These records will be read-only in the external system so this will be a one-way integration from Salesforce to the external system. Which of these option are the most effiecint way to avoid hitting the limits and efficient future maintenance:
1- Outbound Message action on a Workflow
2- Future Apex trigger on each object
3- Scheduled Apex Class to run in time intervals
Senario 2: Case and Order records (including Order Products) are created in Saleforce. Any new record should be sent to the external system. After the record created in the external system, any update will only be allowed in the external system and will be read-only in Salesforce. Therefore, any changes done in the external system should be synced back in a real-time or near real-time manner to Salesforce to show the most current status of the Order and Case in Salesforce. Which of the above the most efficient way fir this senario.
Any help is greatly appreciated.
1- Outbound Message action on a Workflow
2- Future Apex trigger on each object
3- Scheduled Apex Class to run in time intervals
Senario 2: Case and Order records (including Order Products) are created in Saleforce. Any new record should be sent to the external system. After the record created in the external system, any update will only be allowed in the external system and will be read-only in Salesforce. Therefore, any changes done in the external system should be synced back in a real-time or near real-time manner to Salesforce to show the most current status of the Order and Case in Salesforce. Which of the above the most efficient way fir this senario.
Any help is greatly appreciated.
For scenario 1 I would suggest you check out the Streaming API:
https://developer.salesforce.com/page/Getting_Started_with_the_Force.com_Streaming_API
https://developer.salesforce.com/docs/atlas.en-us.api_streaming.meta/api_streaming/
For scenario 2 I would suggest a combination of the already mentioned Streaming API and one of the following options:
SOAP API: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/
REST API: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/
BULK API: https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/
Lightning Connect: https://help.salesforce.com/HTViewHelpDoc?id=platform_connect_about.htm
Hope this helps!
Happy coding!
Best regards,
Martijn Schwärzer
- Does the external system has to support this kind of API? This external system only supports SOAP API, as I mentioned in my question.
- The Streaming API documentation says it can send Push Notifications, but can this really be used to update, created, or delete records in the external system?
For scenario 2, you will need to send updated records back to Salesforce using one of the API's; REST, SOAP or Bulk. Rest will likely be easiest, but you will have to consider of updates made in a 24 hour period and the number on the SFDC API call limit.
I think if the requirenments didn't include standard objects, then Lightning Connect would have been an option, but that doesn't appear to be the case.
Hi Ehsan Dev,
I have same requirement as you describe in senario 2. I hope till the date you have definatly find a great solution. it would be greatful if you can share the solution aprroach.
Thanks in Advance!!