我们希望开始使用salesforce来管理销售联系人,但也有一些关于联系人的业务功能,我们希望在当前系统中保留这些功能。
据我所知,这意味着我们需要双向同步?也就是说,当salesforce上有任何变化时,我们需要在我们的系统上更新它,反之亦然。
我建议使用某种消息传递产品,它可以位于中间并重试失败的消息,因为我有一种感觉,如果没有它,事情将变得非常混乱?例如,当一个或另一个服务出现故障时。
该项目的经理希望保持简单,并认为使用消息而不是实时点对点呼叫是过度杀伤力,但我觉得如果没有它,我们将陷入痛苦的世界。
有没有人有尝试双向同步的经验(实际上,我认为即使是单向同步也会有同样的风险?)
非常感谢你的见解..
发布于 2013-05-08 18:50:30
使用Jitterbit实现Salesforce与计费系统的双向同步。Salesforce有一个last-modified字段,我们的计费系统也是如此(您的系统应该有这个字段,如果没有,请在其SQL存储中的表中添加一个时间戳字段)。唯一重要的事情是选择一个键作为主键( SF_ID或其他系统的键),并在另一个系统中创建该键字段,因为它将用于冲突解决。该过程简单且多步骤,将所有修改的SF数据加载到平面文件中,将所有修改的辅助系统数据加载到另一个平面文件中,通过比较两个文件的公共关键字段来查找冲突,如果有冲突,则通知管理员,并将所有非冲突的更改传播到另一个系统。我们每10分钟运行一次此过程,并在两个周期运行之间存储两个系统上的最后一个时间戳,以便我们只获取在两个周期之间修改的记录。
如果两个用户同时编辑,您将遇到冲突并手动解决它,或者您将得到“last-saved-win”结果。
您还必须迎合新的规定,在SF端使用upsert而不是update (使用外部密钥或SF密钥取决于您在上面选择的密钥),在您的另一端则取决于系统。
发布于 2013-05-07 15:29:42
我不能代表你的系统,但是在Salesforce API这一边,看看getUpdated()和getDeleted()调用,它们是为data replication设计的。SOAP API doc有一个section,详细介绍了如何有效地使用它们。
https://stackoverflow.com/questions/16388186
复制相似问题