function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Vanessa BarrosVanessa Barros 

Salesforce to Salesforce

Hi! anyone make the connection Salesforce to salesforce with Webservices? i know that Salesforce has this but i cant use this.

cheers

Best Answer chosen by Admin (Salesforce Developers) 
Rick.BanisterRick.Banister

You've stumbled along several of the the reasons that this problem is more difficult than everyone thinks when they start writing a home-grown solution. While it's admirable that  one of the contributors has such a broad knowledge of product names in the integration space, they didn't mention how these products would solve the problem. If your requirement is real-time integration, most of the products can't do it. The poster also left out any mention of Relational Junction, which is well designed to handle your situation. I will explain exactly how you would use this product, which has solved this problem for many companies since first released in 2004.

 

First, the various Salesforce API's (Partner or Enterprise) do not permit you to log on to more than one Salesforce org. Logging on and off to handle a record or two is also considered a serious abuse of resources, and you'll eventuall get a call from someone at Salesforce if you do that. The solution is to have two indepentent JVM's running, each with their own connection, but sharing a common database where changed records are cached. Relational Junction's full automation of the schema would create two schemas, one for each org. You could then write database triggers that would detect changes when Salesforce changes were replicated to the database, and if the changes were of importance to your integration, make the same change in the other schema and set a flag in the record.

 

Relational Junction has a bi-directional real-time mode which uses OutBound Messaging to detect changes from Salesforce. The ID's and timestamps are cached in a queue table by a web service application, and those ID's are grouped by object type into a replication step and the full record immediately pulled down to the database. Sending data to Salesforce is accomplished by detecting changes in a control field in each database record, which your user-written trigger will set if it finds non-trivial changes.

 

Feel free to contact me directly for more info. Relational Junction has been a certified partner product since 2005, and counts among its customers Salesforce.com's largest customers worldwide.

All Answers

sfdcfoxsfdcfox

Do you mean that you wish to write an integration to synchronize two organizations together? Or that you wish to configure Salesforce to Salesforce automatically without human intervention?

Vanessa BarrosVanessa Barros

hi! :)

i want to write an integration that synchronize two organizations together - i want to send information to other Salesforce

sfdcfoxsfdcfox

There are at least a couple of solutions out there out-of-the-box; take a look at the following page:

 

http://blog.jeffdouglas.com/2009/03/30/salesforcecom-data-synch-too/

 

It seems that Cast Iron, Informatica, DbAmp, Boomi, and Centerprise and Pervasive have this sort of functionality as part of a very large swiss-army-knife set of features for the software they have designed. Try the links in the comments.

 

If you wanted to write your own, you could do it, but I would expect this to take several months worth of development work to get it running just the way you want it.

Vanessa BarrosVanessa Barros

i have to build..

im already have the code almost finish but i have an error there..

 

I log on the Salesforce via Webservice and call another webservice , i get an error telling that i cant call a webservice and call another ate the same time.

sfdcfoxsfdcfox

I assume you are doing this in Java? What framework are you using? It is likely that you will need to construct two copies of your bindings so that they won't conflict with each other. If your code is too much to refactor for this design, you could always follow this design:

 

1) Log on  to server 1.

2) Download data from server 1.

3) Log off server 1.

4) Log on to server 2.

5) Download data from server 2.

6) Compare records.

7) Update server 2 data.

8) Log off server 2.

9) Log on to server 1.

10) Update server 1 data.

11) Log off server 1.

 

If you give me some more details, I can try and help you out.

Vanessa BarrosVanessa Barros

My process is like this.

i have a Salesforce client thats calls my salesforce company (via webservice) and this one calls another webservice to do something.

 

its when i get that error to do not make loop on call out

Vanessa BarrosVanessa Barros

we are using apex class, we dont use a framework.

we are trying to connect the Salesforce without a middle integration.

Rick.BanisterRick.Banister

You've stumbled along several of the the reasons that this problem is more difficult than everyone thinks when they start writing a home-grown solution. While it's admirable that  one of the contributors has such a broad knowledge of product names in the integration space, they didn't mention how these products would solve the problem. If your requirement is real-time integration, most of the products can't do it. The poster also left out any mention of Relational Junction, which is well designed to handle your situation. I will explain exactly how you would use this product, which has solved this problem for many companies since first released in 2004.

 

First, the various Salesforce API's (Partner or Enterprise) do not permit you to log on to more than one Salesforce org. Logging on and off to handle a record or two is also considered a serious abuse of resources, and you'll eventuall get a call from someone at Salesforce if you do that. The solution is to have two indepentent JVM's running, each with their own connection, but sharing a common database where changed records are cached. Relational Junction's full automation of the schema would create two schemas, one for each org. You could then write database triggers that would detect changes when Salesforce changes were replicated to the database, and if the changes were of importance to your integration, make the same change in the other schema and set a flag in the record.

 

Relational Junction has a bi-directional real-time mode which uses OutBound Messaging to detect changes from Salesforce. The ID's and timestamps are cached in a queue table by a web service application, and those ID's are grouped by object type into a replication step and the full record immediately pulled down to the database. Sending data to Salesforce is accomplished by detecting changes in a control field in each database record, which your user-written trigger will set if it finds non-trivial changes.

 

Feel free to contact me directly for more info. Relational Junction has been a certified partner product since 2005, and counts among its customers Salesforce.com's largest customers worldwide.

This was selected as the best answer
sfdcfoxsfdcfox

My list was merely cursory (and a quick search on Google, even), and any oversight of Relational Junction or any other integration was certainly unintentional. I appreciate your input on this thread, even despite some technical inaccuracies. There is a replication API that is already available and many home grown solutions have been implemented successfully. Some of the largest clients of salesforce.com use only home grown software, because they have in-house developers that do nothing but integrate with other systems. And certainly, my outlined "pseudo-code" is hardly optimized for serious synchronization. Realistically, a few threads with a synchronization lock would be sufficient for a high-speed synchronization cycle. Three logins per synchronization cycle is hardly an abuse of resources, and that can be cut down to one per organization using optimized code and parallel processing threads in Java.

 

I didn't mention how each ISV's solution operates, because I like to think that most posters here can think for themselves and not be led by marketing hype. Most people go out and check out their options, get quotes, and compare features before determining what service fits best. From my second-hand experience from years of working with technical support and premier support clients, I would have to say that Relational Junction is most likely a great piece of software, but your name came up only a fraction the number of times as some of the other ISVs out there (hint: Google Trends won't even show your organization or software on a trending graph compared to Informatica, Pervasive, and DB Amp, so you might want to work on your SEO).

 

If the original poster's employer told them to write the software themselves or be fired, then your software wouldn't be a fit for their situation. If your software cost too much, another ISV might be a better fit. And certainly, if they have the time and bandwidth to do it themselves, and they get it wrong, the developers at salesforce.com will help guide them to a design that won't be considered an abuse of the servers. I've heard of only one case of API access being revoked to an entire organization because of an integration, so it's not as common as you'd like to think. And maybe their overall goal is to offer a competing product to your own. There's always room in the ISV space for another synchronization software piece. The niche isn't full.