Loading
Opret grænsefladeobjekter for en Data Mapper-indlæsning

Opret grænsefladeobjekter for en Data Mapper-indlæsning

Angiv eksterne data, f.eks. en CSV-fil, som et input til en Data Mapper-indlæsning. De eksterne data kan importeres i et grænsefladeobjekt, som er et tilpasset Salesforce-objekt ved brug af et dataimportværktøj. Tilknyt derefter felterne fra det tilpassede objekt til Salesforce-målregistreringer ved brug af en Data Mapper-indlæsning. Når du indlæser data til et tilpasset Salesforce-objekt, udløses der en Apex, der kalder en Data Mapper-indlæsning. Datatilknytning tager data fra grænsefladeobjektet og skriver de resulterende data til andre Salesforce-registreringsobjekter.

Brugergrænsefladeobjekt for Data Mapper-indlæsning

Du kan indlæse data til et tilpasset Salesforce-objekt ved at bruge Salesforces guiden Dataimport eller et værktøj som Salesforce Data Loader, Informatica eller Talend.

  1. I Salesforce skal du oprette et tilpasset objekt og tilføje felter, der svarer til dataene i den eksterne kilde.
    1. Føj disse strengfelter til det tilpassede objekt:
      • DMError (datatype: Langt tekstområde)
      • DMProgressData (datatype: Langt tekstområde)
      • DMName (datatype: Tekst): Dette felt er påkrævet.
        Bemærk
        Bemærk

        I Omnistudio for administrerede pakker er DRBundleName et påkrævet felt.

      • DMS-status (datatype: Langt tekstområde)

      Disse felter er reserveret af datatilknyttere til internt brug.

    2. Tilføj felter, der svarer til dataene i den eksterne kilde.
  2. Opret en Apex-klasse-DMInterfaceObjectFuture.
    1. Find og vælg Apex-klasser i Opsætning.
    2. Opret en ny Apex, og tilføj denne kode.
      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);
      }
      }
      
  3. Opret en ny udløser på det tilpassede objekt, der kalder Data Mapper-indlæsningen.
    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)); 
        }
    }
  4. Opret og konfigurer Data Mapper-indlæsning.
    1. Opret en Data Mapper-indlæsning med SObject som inputtype.
    2. Vælg det grænsefladeobjekt, som du oprettede for inputdata fra rullelisten.
    3. I Data Mapper-indlæsningsindlæsning skal du tilknytte grænsefladeobjektfelterne til de Salesforce-registreringer, du vil opdatere.
    4. Hvis du vil bekræfte, at din Data Mapper-indlæsning kan få adgang til data i grænsefladeobjektet, skal du indlæse en lille mængde testdata i grænsefladeobjektet og køre Data Mapper.
  5. Importer de eksterne data i grænsefladeobjektet ved brug af Salesforce-masseindlæsningsværktøjet eller dit foretrukne masseindlæsningsværktøj.

    Du kan nu bruge grænsefladeobjekter i Datatilknytninger på samme måde som Salesforce-standardobjekter.

    Tip
    Tip

    Hvis du bruger grænsefladeobjekter regelmæssigt i stedet for en engangsmasseindlæsning, skal du oprette en fane for objektet for at gøre det nemmere at få adgang til det hurtigt og nemt.

Opret grænsefladeobjekter for et eksempel på Data Mapper-indlæsning

  1. Opret en grænsefladeobjekt-TestInterfaceObject__c med disse felter:
    • Data__c: Dette er det datafelt, der skal tilføjes tilpassede data.
    • DMStatus__c
    • DMError__c
    • DMProgress
    • DMName__c
  2. Opret en Data Mapper-indlæsning med TestInterfaceObject__c-objektet som det input, der opretter registreringer af Konto og Kontakt.
  3. Konfigurer tilknytningen Data Mapper-indlæsning.
    • TestInterfaceObject__c.Data__c til Account.Name
    • TestInterfaceObject__c.Data__c til Contact.LastName
  4. Opret en ny registrering for TestInterfaceObject__c.
    Når du f.eks. tilføjer en ny registrering, Account1, i feltet Data_c i grænsefladeobjektet, oprettes der en ny kontoregistrering med Name = Account1, og der oprettes en ny kontaktregistrering med LastName = Account1.

    Disse felter i TestInterfaceObject__c-objektet opdateres:

    • DMStatus__c: {"Account": "success", "Contact": "success"}
    • DMProgressData__c: {"Account": "<created account id>", "Contact": "<created contact id>"}
 
Indlæser
Salesforce Help | Article