QUESTION:
Will DupeBlocker work with records that are shared via Salesforce to Salesforce?
ANSWER:
Yes, with a few limitations and results will be different for Leads, Contacts and Accounts vs. non-standard objects (i.e. Opportunities), vs. custom objects.
**************All Objects***************
Report Duplicate works as expected for all objects.
Blocking actions, Do Not Insert, Do Not Update and Redirect to Existing will stop duplicates from being inserted on the target org but the blocking error will be shown as unformatted HTML in the "Connection History" related list on the "Connections" tab. If the record is manually accepted (vs. auto-accepted) a Salesforce to Salesforce message will be displayed indicating that the share was not successful:
0 Lead(s) accepted. To see Leads that you own, go to Leads Tab.Refer to Connection History for information about why certain Lead(s) were not accepted.
An email will also be sent to the user on the source org letting them know that their share was not successful (auto-accepted or manually accepted). The details of the email will something something like this:
An error in {TargetOrg} while inserting records shared by {SourceOrg}.
The details are as follows:
Error inserting Lead record(s). Cannot accept Lead (Full Name : Donald Duck). Message: <div style="padding:0.7em;font-size:11px;width:40em;margin:0 auto;background-color:#FBF9EE;border-color:#FCEFA1;border-width:1px;border-style:solid;border-radius:4px;">
<P align="center"><font color="black"><strong>DupeBlocker Duplicate Prevention</strong></font></P> <P align="left"><font color="red">Potential duplicate Lead found with a similar name and the same e-mail address.</font><font color="black"><ul> <li align="left"><a name="db_BlockLink" href="/00QC000001NguD7MAJ">Donald Duck</a></li> </ul></font></P></div><BR/> <script type="text/javascript"> var __sfdcSessionId = "00D80000000LHvC!AR8AQH0CE.UdGrrPTUYTATNzIEe_43PjspCRXoaqkGMaQ9.8Fo9PcqIRswITsq2O88aQ9AzxEL1Wc2_WG0qZDl5GiuDPu10g";
</script><script src="/soap/ajax/29.0/connection.js" type="text/javascript"></script><script src="/soap/ajax/29.0/apex.js" type="text/javascript"></script><script type="text/javascript"> sforce.apex.execute("CRMfusionDBR101/DB_WebServices","IncrementScenarioBlockCount",{scenarioId:"a0AC000000y5rGIMAY", blockCount:1}, {onSuccess: doNothing, onFailure: onError} ); function doNothing(){} function onError(error){if(error.faultcode.toLowerCase()=="sf:insufficient_access"){alert("You do not have access to the DupeBlocker web services. Please contact your Salesforce administrator.\r\nThe configuration instructions are in the DupeBlocker install guide."); } else{alert(error.toString());} } var blockLinks = document.getElementsByName("db_BlockLink"); if ( ( location.href.toLowerCase().indexOf( "?isdtp=" ) >= 0 || location.href.toLowerCase().indexOf( "&isdtp=" ) >= 0 ) && blockLinks != null && blockLinks.length > 0 ) { for ( var linkLoop = 0; linkLoop < blockLinks.length; linkLoop ++ ) blockLinks[linkLoop].href += "?isdtp=vw"; } </script>
Number of records that failed with this error : 1
***************Leads, Contacts and Accounts, Lead to Contact and Lead to Account**************
Auto-Merge, Auto-Convert work as expected. These actions will work when the shared record is accepted by the target org (either auto-accepted and/or manually accepted).
NOTE: Manual merging or converting of duplicate Leads, Contacts and Accounts will work regardless of the Salesforce to Salesforce sharing settings for each object. This is NOT the case for non-standard/custom object. See notes below for more details on issues merging/auto-merging these objects.
***************Non-standard Objects (i.e. Opportunities)**************
DupeBlocker will work with these objects but with more limitations:
1. Auto-Merge will trigger when the record is accepted by the source org (either manual or auto-accepted). However, Auto-Merges WILL FAIL if the existing master record is NOT shared. If a duplicate should have auto-merged and failed it is recommended to edit the record to trigger a Match on Update action for Report Duplicate. Then the records can be manually merged from the generated warning keeping the SHARED record as the master.
NOTE: An auto-merge error email WILL ONLY be generated and sent to the DupeBlocker Administrator if the share is MANUALLY ACCEPTED. Auto-accepted records DO NOT generate an error email.
The email will look something like this:
DupeBlocker has encountered an error. Please contact your Salesforce administrator with the following information:
*** Current User: {username/email}
*** Org Info: {orgname/useremail/orgid)
*** Executing Method: DB_AutoMerge.asyncMerge
*** Exception Type: System.DmlException
*** Exception Cause: null
*** Exception Message: Insert failed. First exception on row 0; first error: INVALID_PARTNER_NETWORK_STATUS, invalid status for partner network operation: []
*** Merge ID: 006C000000q7byXIAQ
*** Master ID: 006C000000q7bxKIAQ
*** Scenario ID: a0AC000000y6HVOMA2
*** DML Row-level Errors:
DML Status Code: INVALID_PARTNER_NETWORK_STATUS Original DML Row Index: 0 DML Fields:
DML Error Message: invalid status for partner network operation
Stack trace:
Class.CRMfusionDBR101.DB_AutoMerge.cloneChildrenToMaster: line 1779, column 1
Class.CRMfusionDBR101.DB_AutoMerge.customMerge: line 1496, column 1
Class.CRMfusionDBR101.DB_AutoMerge.syncMerge: line 598, column 1
Class.CRMfusionDBR101.DB_AutoMerge.asyncMerge: line 441, column 1
2. Manual Merges (merging from a warning created from a share) will ONLY WORK IF THE SELECTED MASTER RECORD IS ALSO SHARED. The following error will occur if a non-shared record is chosen as the master (and the non-master is shared):
Insert failed. First exception on row 0; first error: INVALID_PARTNER_NETWORK_STATUS, invalid status for partner network operation: []
Manually merging works for:
2 unshared records (which WOULD only be the case for records created directly on the target org, or if sharing was subsequently stopped at a later date)
2 shared records
merging a shared with an unshared AS LONG AS THE SHARED is kept as the master
***************Custom Objects**************
DupeBlocker will work with these objects but with more limitations:
1. Match on Insert actions WILL ONLY BE TRIGGERED when the shared record is auto-accepted. If the record is manually accepted Salesforce sees this as update vs.an insert thereby triggering the Match on Update action. Therefore, Auto-Merge should not be used if the records will be manually accepted (works if the records are auto-accepted only).
NOTE: No email notification is provided when the auto-merge fails. We have not been able to determine why that is but will investigate further and hopefully will have a resolution that traps the error an emails it to the user.
2. Per item 1 above, Auto-Merge will ONLY trigger when the record is auto-accepted by the source org. However, Auto-Merges WILL FAIL if the existing master record is NOT shared. If a duplicate should have auto-merged and failed it is recommended to edit the record to trigger a Match on Update action for Report Duplicate. Then the records can be manually merged from the generated warning keeping the SHARED record as the master.
3. Manual Merges have the same limitations as noted above for non-standard objects.