You would expect this information to be available on SAP's help page, but SAP does not explain to you how to do a mass-update of ID mappings in C4C. So for everyone trying to figure out how to do mass uploads of ID mappings, read on.
The red herring is SAP's note 3685331 - Unable To Perform Mass Upload Of ID Mapping For Integration In Cloud For Customer - SAP for Me, which is wrong on multiple levels and frankly quite an embarrassment to SAP.
ID Mapping (DWB) vs ID Mapping (Integration)
First of all, the "ID Mapping" in data workbench (DWB) that the note describes has nothing to do with "ID Mapping for Integration". Background: Whenever we create new records using DWB, we are required to fill the column ExternalKey. We can choose any value we like for this field, provided it is unique. As a result, most people do in fact use the "External ID" of the record as "ExternalKey" - but that does not mean the ExternalKey becomes the "External ID", for one because you don't get to specify a corresponding business system ID. In fact, the field is not used anywhere in C4C and its sole purpose is to allow you to reference this record, either in dependent worksheets (when using the Complete Business Object upload) or when doing subsequent updates. Notably, records that were not created using DWB do not have the ExternalKey filled, requiring you to download the records you want to update (so you get the ObjectID), modifying the file as required and re-uploading it. The "ID Mapping" functionality SAP mentions in the above note serves one purpose only: To fill the ExternalKey for records not created using DWB, enabling you to skip the "download" step when you want to update records. Once you have done that, you can simply create your upload file from scratch: fill the column ExternalKey, add the columns you want to update, upload, done.
So this is the first part where the above note is wrong: It incorrectly instructs you to use "ID Mapping" in DWB when it is not related to "ID Mapping for Integration" at all. I was never happy with SAP using the term "ID Mapping" in DWB as it confuses users, but wouldn't have expected that it confuses SAP themselves.
The legacy mass-upload
But the note is also wrong regarding a second aspect: It claims that after a click on "ID Mapping from Microsoft Excel" "The system only downloads the Excel template file, it does not provide the option to upload an Excel file for import."
This is also wrong - it is in fact how mass-uploads of ID Mappings used to work:
- You needed to have the C4C Plugin for Microsoft Excel installed
- You downloaded the current mapping using "ID Mapping from Microsoft Excel" (note how the file name starts with "Createsanduploads" rather than "Download" if you click "ID Mapping to Microsoft Excel")
- You opened the file in Excel and maintained your mapping
- You then clicked the Upload button in the C4C tab in Excel
- Your mappings were uploaded
The modern mass-upload
The irony in all of this is that data workbench is indeed the correct tool to mass-update ID mappings for integration - just not the way SAP describes:
- Go to Data Workbench -> Import
- Select "Individual Object"
- Select "Insert"/"Upsert"/"Update" (depending on your scenario)
- Select "Standard Object"
- Select "Object Identifier Mapping" (OID)
The relevant fields are (mandatory fields in bold):
- ObjectID (update only)
- C4C GUID of this mapping entry
- needed to identify the record during update
- External_Key (create only)
- during update: alternative to ObjectID (if record was created using DWB) - only one of the two is required
- during create: mandatory
- LocalObjectID
- "Internal ID"
- C4C ID of the record (e.g. C4C account number etc.)
- RemoteObjectID
- "External ID"
- external system's ID of the record (e.g. ERP customer number)
- RemoteIdentifierDefiningSchemeCode
- mapping type (what object's IDs are we mapping here?)
- filter on this field in the first "Export" screen to get a list of IDs
- alternatively, check Repository Explorer in PDI, BO ObjectIdentifierMapping
- LocalObjectUUID (optional)
- "Internal UUID"
- C4C UUID of the record (e.g. C4C account number etc.)
- alternative to LocalObjectID - only one of the two is required
- RemoteBusinessSystemID
- ID of the Communication System the external ID belongs to
- see Administrator -> Communication System
- Default_External_ID (optional)
- set to true if this is "the" external ID of the record
- only relevant in case there are multiple external IDs for the same record
- RemoteBusinessSystemUUID (optional)
- UUID of the Communication System the external ID belongs to
- alternative to RemoteBusinessSystemID - only one of the two is required
The only catch with the Object Identifier Mapping: Unlike the ID mapping for Integration, it does not contain "blank" entries for unmapped objects. This means you cannot download, populate, upload missing entries, you have to create the template from scratch. Instead, the missing entries have to be identified another way, for example, by downloading all records and cross-referencing to the existing Object Identifier Mapping for this object.