我需要通過S2S從組織A分享到組織B的聯繫人,以便在正確(先前共享)的帳戶下自動顯示在組織B中。使用Salesforce-to-Salesforce自動接受帳戶和相關聯繫人
我的目標是發佈組織A中的帳戶A1及其相關聯繫人,並將它們全部自動顯示在組織B中(無需手動干預),並保留相同的帳戶/聯繫人關係。
我確信我之前做過這件事,但最後幾次我做到這一點的可能性是自定義主細節記錄。
有人可以澄清,如果這實際上是可能的,或S2S只支持這個真正的自定義主從關係?
到目前爲止,我已經嘗試了手動共享(「轉發到連接」 - 有和沒有「轉發相關記錄」複選框)和自動(通過更新後和/或插入觸發後的帳戶和/或聯繫人中的PartnerNetworkConnection)分享。我也嘗試了聯繫,然後帳戶,然後帳戶然後聯繫。我也嘗試檢查並取消選中聯繫人的「自動接受」,甚至取消選中它,在天真的希望,將導致
如果我使用觸發器來自動發送聯繫人並填充ParentRecordId在PartnerNetworkRecordConnection記錄上,聯繫人被共享但不被自動接受,我必須手動將其映射到帳戶。如果我在未指定ParentRecordId的情況下共享它,它會自動接受,但沒有任何帳戶。從「帳戶」中的「轉發相關記錄」複選框的「轉發連接」似乎也執行相同的操作 - 帳戶和所有子聯繫人都會轉發,但聯繫人記錄不會被自動接受。
我確定Salesforce-to-Salesforce處理了這個問題,但我找不到任何關於它的更多信息。任何人都有一個配方,用於自動共享和自動接受與相關聯繫人的帳戶?
如果是代碼監督(我非常懷疑它),這裏是我用來共享聯繫人的代碼。它是鬆散的基礎上的代碼示例 「Salesforce的到Salesforce最佳實踐」(http://wiki.developerforce.com/page/Best_Practices_for_Salesforce_to_Salesforce)
public static void share(List<Contact> triggerNew) {
// Define connection id
Id networkId = ConnectionHelper.getConnectionId('Some Partner Connection');
Set<Id> localContactAccountSet = new Set<Id>();
List<Contact> localContactSet = new List<Contact>();
Set<Id> sharedAccountSet = new Set<Id>();
// only share records created in this org, do not add contacts received from another org.
for (Contact ct : triggerNew) {
if (ct.ConnectionReceivedId == null) {
localContactAccountSet.add(ct.AccountId);
localContactSet.add(ct);
}
}
if (localContactAccountSet.size() > 0) {
List<PartnerNetworkRecordConnection> newConns = new List<PartnerNetworkRecordConnection>();
// Get the contact account's partner network record connections
for (PartnerNetworkRecordConnection accountSharingRecord : [SELECT p.Status, p.LocalRecordId, p.ConnectionId FROM PartnerNetworkRecordConnection p WHERE p.LocalRecordId IN :localContactAccountSet]) {
// for each partner connection record for contact's account, check if it is active
if ((accountSharingRecord.status.equalsignorecase('Sent') || accountSharingRecord.status.equalsignorecase('Received')) && (accountSharingRecord.ConnectionId == networkId)) {
sharedAccountSet.add(accountSharingRecord.LocalRecordId);
}
}
if (sharedAccountSet.size() > 0) {
for (Contact ct : localContactSet) {
if (sharedAccountSet.contains(ct.AccountId)) {
PartnerNetworkRecordConnection newConnection =
new PartnerNetworkRecordConnection(
ConnectionId = networkId,
LocalRecordId = ct.Id,
SendClosedTasks = false,
SendOpenTasks = false,
SendEmails = false,
ParentRecordId = ct.AccountId);
newConns.add(newConnection);
}
}
if (newConns.size() > 0) {
database.insert(newConns);
}
}
}
}
我跟着官方(http://wiki.developerforce.com/page/An_Introduction_to_Salesforce_to_Salesforce)文檔,它對我來說工作得很好。我已發佈帳戶和聯繫人,然後訂閱這些對象,選中「自動映射字段」選項。你確定你沒有查詢ID嗎? – 2012-07-25 13:47:01