Salesforce to Salesforce Config&Code实现
介绍
Salesforce to Salesforce(以下简称STS,感觉有点怪...)是Salesforce提供的标准数据互通方式。故名思意,采用这种方式的前提是双方数据源都在Salesforce。STS可以实现实时同步(code & config)和定时同步(code only)两种方式以满足不同需求的客户。即便不进行code开发,也可以使我们的业务人员轻松的进行数据互通。
配置STS
- Quick Box中输入“Salesforce to Salesforce”,点击Salesforce to Salesforce Settings,勾选enable并保存。这样就开通了该Org的STS功能;
接下来你可以看到五个模板:- 邀请模板:发送到你要进行连接Org的模板;
- 禁用模板:用于通知业务合作伙伴禁用连接;
- 接受邀请模板:通知对方已接受邀请;
- 拒绝邀请模板:通知对方已拒绝邀请;
- 更新连接简档模板:通知对方对于生效的连接进行了更新。
- 连接:用于创建与Salesforce Org的连接并且规定相应的权限;
- 模板:规范用于共享的sObject和Field。
- 创建新的模板和连接并发送到合作伙伴
- 创建Account(合作伙伴)
- 创建Contact(具体负责人)
- 创建Template:选择共享的数据和相应的权限
- 创建Connection并发送到对方(此时对方会收到邀请邮件,登陆Org后会有相应的操作)
结果示意图:
- 合作伙伴接受邀请
合作伙伴(受邀请方),根据邀请邮件登陆后会看到这样的界面:点击接受后,合作伙伴同样可选择共享数据给邀请方,并可对邀请方的共享对象选择性接受(即订阅),例如邀请方共享Account/Contact/Case,合作伙伴可选择全部接受或只接受其中的一个。同时可以进行对象和字段匹配并且可设置自动接收。如下图:
至此Salesforce to Salesforce配置就已完成,双方可以开始共享数据了。注:共享数据可实现级联共享(例如:Account下相关的Case/Task可以实现保持结构的共享)。
共享数据
Salesforce共享数据有两种方式,一种是通过界面提供的Forward to Connections按钮进行批量或单个进行共享,这样的执行方式会实时传递到接收方,若对方开启了自动接收,则会自动进入到库中。作为开发者,我们当然希望通过代码进行控制。经过笔者一番研究发现是可以实现的,主要sObject — PartnerNetworkRecordConnection, PartnerNetworkConnection。
- PartnerNetworkConnection:记录了连接详细信息;
- PartnerNetworkRecordConnection:记录了共享数据的详细信息。
心得
- 进行Salesforce to Salesforce连接时,需要双方同时enable该功能。否则,另一方将收到无权限通知;
- 共享的数据分别占用双方的数据存储空间。例如A向B推送10KB的数据,那么B也会花费10KB的数据空间来储存;
- 该功能开启后不可以在关闭。但是可以决定连接是否保留,可以根据需要停用/开启连接;
- 连接成功后,双方均可实现推送/订阅功能。例如A邀请B建立连接后,A可以向B推送数据,B也可以向A推送数据;
- 接受数据具有选择性。A向B推送的所有数据,B可以选择性接受;
- 推送的数据可进行字段级权限控制。