Du är här:
Skapa gränssnittobjekt för en datamappningsinläsning
Tillhandahåll externa data, till exempel en CSV-fil, som en indata till en datamappningsinläsning. De externa data kan importeras till ett gränssnittsobjekt, som är ett eget Salesforce-objekt med hjälp av ett dataimportverktyg. Mappa sedan fälten från det egna objektet till målposterna i Salesforce med hjälp av en datamappningsinläsning. När du läser in data till ett eget Salesforce-objekt utlöses en Apex som anropar en Data Mapper Load. Datamappningen tar data från gränssnittsobjektet och skriver resulterande data till andra Salesforce-postobjekt.

Du kan läsa in data till ett eget Salesforce-objekt med hjälp av Salesforces Dataimportguide eller ett verktyg som Salesforce Data Loader, Informatica eller Talend.
-
I Salesforce, skapa ett eget objekt och lägg till fält som motsvarar data i den externa källan.
-
Lägg till dessa strängfält i det egna objektet:
- DMError (Datatyp: Långt textområde)
- DMProgressData (Datatyp: Långt textområde)
- DMName (Datatyp: Text): Detta fält är obligatoriskt.Anteckning
I Omnistudio för hanterade paket är DRBundleName ett obligatoriskt fält.
- DMStatus (Datatyp: Långt textområde)
Dessa fält är reserverade av Data Mappers för intern användning.
- Lägg till fält som motsvarar data i den externa källan.
-
Lägg till dessa strängfält i det egna objektet:
-
Skapa en Apex klass
DMInterfaceObjectFuture.- Sök fram och öppna Apex Klasser i Inställningar.
-
Skapa en ny Apex klass och lägg till denna kod.
public class DMInterfaceObjectFuture { @future(callout=true) public static void call(String sObjectIdsAsString){ List<String> sObjectIds = (List<String>)JSON.deserialize(sObjectIdsAsString, List<String>.class); ConnectApi.DataMapperInterfaceObjectInput input = new ConnectApi.DataMapperInterfaceObjectInput(); input.interfaceObjectIds = sObjectIds; input.interfaceObjectAPIName = String.valueOf(((Id)sObjectIds.get(0)).getSObjectType()); ConnectApi.DataMapperInterfaceObjectConnect.executeDataMapperLoadForInterfaceObjects(input); } }
-
Skapa en ny utlösare för det egna objektet som åberopar Datamappningsbelastningen.
trigger trigger_name on interface_object_api_name (after insert, after update) { String orgNamespace = [SELECT NamespacePrefix FROM Organization LIMIT 1].NamespacePrefix; String prefix = String.isEmpty(orgNamespace) ? '' : orgNamespace + '__'; List<String> sObjectIds = new List<String>(); for (sObject sObj : Trigger.new) { if (Trigger.isUpdate) { if (Trigger.oldMap.get(sObj.Id).get(prefix + 'DMStatus__c') != Trigger.newMap.get(sObj.Id).get(prefix + 'DMStatus__c') || Trigger.oldMap.get(sObj.Id).get(prefix + 'DMError__c') != Trigger.newMap.get(sObj.Id).get(prefix + 'DMError__c') || Trigger.oldMap.get(sObj.Id).get(prefix + 'DMProgressData__c') != Trigger.newMap.get(sObj.Id).get(prefix + 'DMProgressData__c') || Trigger.oldMap.get(sObj.Id).get(prefix + 'DMName__c') != Trigger.newMap.get(sObj.Id).get(prefix + 'DMName__c')) { continue; } } sObjectIds.add(sObj.Id); } if (!sObjectIds.isEmpty()) { DMInterfaceObjectFuture.call(JSON.serialize(sObjectIds)); } } -
Skapa och konfigurera Data Mapper Load.
- Skapa en datamappningsinläsning med SObject som indatatyp.
- Välj det gränssnittsobjekt som du skapade för indata från rullmenyn.
- I Datamappningsinläsning, mappa gränssnittsobjektfälten med de Salesforce-poster du vill uppdatera.
- För att verifiera att din Data Mapper Load har åtkomst till data i gränssnittobjektet, läs in en liten mängd testdata i gränssnittobjektet och kör Data Mapper.
-
Importera externa data till gränssnittsobjektet med hjälp av Salesforces massinläsningsverktyg eller det massinläsningsverktyg du föredrar.
Du kan nu använda gränssnittsobjekt i Datamappningar på samma sätt som standardobjekt i Salesforce.
TipsOm du använder gränssnittsobjekt regelbundet, istället för en engångsmassinläsning, skapa en flik för objektet för att underlätta snabb och enkel åtkomst.
Skapa gränssnittobjekt för ett exempel på datamappningsbelastning
-
Skapa en
TestInterfaceObject__cför gränssnittsobjekt med dessa fält:- Data__c: Detta är datafältet för att lägga till egna data.
- DMStatus__c
- DMError__c
- DMProgress
- DMName__c
-
Skapa en datamappningsinläsning med objektet
TestInterfaceObject__csom indata som skapar poster för Konto och Kontakt. -
Konfigurera mappningen Datamappningsbelastning.
TestInterfaceObject__c.Data__ctillAccount.Name:TestInterfaceObject__c.Data__ctillContact.LastName:
-
Skapa en ny post för
TestInterfaceObject__c.Till exempel, när du lägger till en ny post, Account1, i fältet Data_c i gränssnittobjektet skapas en ny kontopost med Namn = Account1 och en ny kontaktpost med LastName = Account1 skapas.Dessa fält i objektet TestInterfaceObject__c uppdateras:
DMStatus__c: {"Account": "success", "Contact": "success"}DMProgressData__c: {"Account": "<created account id>", "Contact": "<created contact id>"}
