2013-05-05 89 views
0

我们希望开始使用salesforce来管理销售联系人,但也有一些关于我们想要保留在当前系统中的联系人的业务功能。与salesforce的双向同步(java)

据我所知,这意味着我们需要双向同步?也就是说,当销售人员发生任何变化时,我们需要在系统上更新它,反之亦然。

我在暗示某种消息产品可以坐在中间并重试失败的消息,因为我有一种感觉,如果没有这种感觉,事情会变得非常混乱?例如,当一个或其他服务停止时。

该项目的经理希望保持简单,并认为使用消息而不是实时的点对点呼叫是矫枉过正的,但我觉得没有它,我们将会遇到一个痛苦的世界。

有没有人有试图做双向同步(居然连单程距离,我认为同样的风险遭受?)

您的见解非常感谢任何经验..

+0

没有什么可补充的:是的,无论是用消息还是其他方式,你都会遇到麻烦。您正在砂基础上建立一个系统。 – 2013-05-05 19:26:07

+0

感谢您的评论。你的意思是我们遇到了麻烦,因为我们试图进行双向同步,或者因为试图同步数据总是很麻烦? – user1471465 2013-05-05 19:35:57

+0

它总是很麻烦,而且双向同步无助于事情:)当你的系统不同步并且假设它们同步工作时会发生什么?然后所有的冲突和解问题... – 2013-05-05 19:39:37

回答

1

我们使用Jitterbit实现Salesforce与计费系统之间的双向同步。 Salesforce具有最后修改的字段,我们的绑定系统也是如此(如果不是,则系统应该具有此功能,将时间戳字段添加到其SQL存储中的表中)。唯一重要的是选择其中一个密钥作为主密钥(SF_ID或其他系统密钥),并在另一个系统中创建该密钥字段,因为它将用于冲突解决。该过程非常简单,可以将所有已修改的SF数据加载到平面文件中,将所有已修改的辅助系统数据加载到另一个平面文件中,通过比较公共密钥字段中的两个文件查找冲突,通知管理员冲突(如果有)并传播所有与另一个系统无冲突的更改。我们每10分钟运行一次这个过程,我们在两次循环之间的两个系统上存储最后的时间戳记,这样我们只会记录两个周期之间修改的记录。

如果两个用户同时编辑,您会遇到一个信息并手动解决,否则您将得到“最后保存的胜利”结果。

你也必须迎合新的规定,在SF方面使用upsert而不是更新(使用外部或SF密钥,取决于你在上面选择的),在另一方面它取决于系统。