Non unique External ID fields are incorrectly available for selection as matching criteria in the Data Import Wizard
User Interface , Communities , Data Import Wizard
Last updated 2017-04-15 ·Reference W-3699183 ·Reported By 1 users
Summary
Users may find that upon attempting to select a non-unique external Id field as matching criteria when importing records that they're presented with the following error after clicking to Start Import:
"The <ObjectNameHere> import failed due to an error. Please retry the import or contact Salesforce Support with the following error ID. Error ID: 1887772219-244458 (1819346144)"
This exception is the result of the user performing the import not having the required "View All Data" administrative permission. Since the Data Import Wizard leverages the BULK API to perform its operations, it's bound the following requirement:
"If you are upserting a record for an object that has the External ID attribute selected but not the Unique attribute selected, (a non-unique index) your client application must have the permission “View All Data” to execute this call."
Reference: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_upsert.htm
However, there may be circumstances where it is architecturally impossible to assign users the required "View All Data" permission i.e. Partner Community users since we've introduced Partner Users in Your Community Can Import Accounts, Contacts, and Leads:
https://releasenotes.docs.salesforce.com/en-us/winter16/release-notes/rn_networks_partner_leads_import.htm
With this information the Product Team has decided to remove the availability of non-unique External Id fields as matching criteria in the DIW all together.
This will be irrespective of whether or not the running user's profile has the "View All Data" permission. The reasoning is that since the purpose of matching based on external Ids is to either access the record for an update and/or to prevent the insertion of duplicate records both of these use cases would only be successfully satisfied if the external Id field's values are unique.
Repro
1. Create a Account custom field which is an External Id field and is non-unique
2. Clone the standard profile and create a standard user. Ensure that the standard user has access to import to Account but does not have View All Data.
3. Login as the Standard user and open DIW.
4. Select Account | Match By the External Id field you created in step 1 > Map the External Id field > Start Import
Expected Results:
No error should be thrown. As the field is non-unique, it should not have been available for matching.
Actual Results:
A generic error with a variable Error Id is presented to users and the import does not proceed.
Workaround
- Make any External Id fields that you would like to use as matching criteria as unique.
Reference: What is the difference between External ID and Unique ID?
https://help.salesforce.com/articleView?id=000005395&language=en_US&type=1
- Remove visibility to non-unique External Id fields via field level security for affected users profiles so that they're not incorrectly available as matching selections in the DIW.
- Use alternative matching criteria on import.
Reported By (1)
Is it Fixed?
Any unreleased services, features, statuses, or dates referenced in this or other public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make their purchase decisions based upon features that are currently available.