Loading
CRM Analytics
computeRelative-transformation

computeRelative-transformation

Du kan använda computeRelative-transformationen för att analysera trender i dina data genom att lägga till härledda fält i en datauppsättning baserat på värden i andra rader. Till exempel, för att analysera pipelinetrender för försäljning, skapa härledda fält som beräknar antal dagar som ett säljprojekt är kvar i varje fas. Du kan även beräkna ändringarna av säljprojektbeloppet genom säljprojektets faser.

Anteckning
Anteckning För att skapa en beräknad kolumn mellan rader baserat på en formel i ett dataförberedelserecept, se Formeltransformation: Skapa en beräknad kolumn baserat på ett uttryck.

Transformationerna computeExpression och computeRelative är lika, men computeExpression-transformationen utför beräkningar baserade på fält inom samma rad. Transformationen computeRelative utför beräkningar baserat på samma fält i andra rader—framför allt aktuell, första, tidigare eller nästa rad.

När du definierar en computeRelative-transformation specificerar du en källtransformation som indata, partitionerar posterna och sorterar posterna inom varje partition. Du kan till exempel använda sfdcDigest-transformation för att extrahera säljprojekthistorik och sedan använda computeRelative-transformation för att beräkna ändringar i varje säljprojekt över tid. Du kan partitionera säljprojekts historikposter efter säljprojekt-ID och sedan sortera poster kronologiskt inom varje partition för att korrekt identifiera tidigare och senare värden.

Anteckning
Anteckning Deriverade fält kan baseras på ett källfält eller ett SAQL-uttryck.
Exempel
Exempel

Vi tar ett exempel. För att utföra trendanalyser för försäljningspipeline, skapa ett dataflöde som innehåller följande transformationer.

sfdcDigest-transformation

Extraherar följande data från objektet OpportunityHistory.

Objektet Säljprojekthistorik innehåller historik för två säljprojekt.

computeRelative-transformation

Utför dessa uppgifter:

  • Partitionerar de extraherade posterna efter säljprojekts-ID.
  • Sorterar de extraherade posterna efter CreatedDate i stigande ordning inom varje partition. Att sortera efter CreatedDate säkerställer att de ändringar som inträffar för varje säljprojekt listas i kronologisk ordning.
  • Lägger till följande härledda fält i den slutgiltiga datauppsättningen.
    • OpportunityCreatedDate

      Avgör det datum säljprojektet först skapades. Du kan använda detta datum med det faktiska avslutsdatumet för att avgöra antal dagar som krävs för att avsluta affären. Målet är att förkorta säljcykeln för att få in intäkter.

    • AmountPrev

      Avgör det tidigare beloppet för säljprojektet. Du kan använda detta fält för att avgöra om värden på säljprojekt ökar eller minskar, vilket kan påverka när du når dina säljmål.

    • CloseDatePrev

      Avgör det tidigare förväntade avslutsdatumet för säljprojektet. Du kan använda detta fält för att analysera hur de förväntade avslutsdatumen ändras under säljprojektets säljcykel. Om förväntat avslutsdatum hela tiden flyttas fram, identifiera vilka problem som orsakar den längre säljcykeln.

    • AmountChange

      Använder ett SAQL-uttryck för att beräkna ändring i procent av säljprojektbeloppet från det föregående beloppet.

    • AmountChangeDirection

      Använder ett SAQL-uttryck för att skapa ett textvärde som visar i vilen riktning ett säljprojektbelopp har ändrats: Upp, Ner eller Ingen förändring.

sfdcRegister-transformation

Registrerar den slutgiltiga datauppsättning som innehåller de extraherade fälten från sfdcDigest-transformationen och de härledda fälten från computeRelative-transformationen.

Du skapar denna dataflödesdefinition.

{
  "extractOppHistory": {
        "action": "sfdcDigest",
        "parameters": {
            "object": "OpportunityHistory",
            "fields": [          
                {"name": "OpportunityId"}, 
                {"name": "CreatedDate"},                
                {"name": "StageName"},        
                {"name": "Amount"},          
                {"name": "CloseDate"}         
            ]      
        }    
    },
  "computeTrending": {
    "action": "computeRelative",
    "parameters": {
      "source": "extractOppHistory",
      "partitionBy": ["OpportunityId"],
      "orderBy": [
        {
          "name": "CreatedDate",
          "direction": "asc"
        }
      ],
      "computedFields": [
        {
          "name": "OpportunityCreatedDate",
          "label": "Opportunity Created Date",
          "description": "Determines the date that the opportunity was first created.",
          "expression": {
            "sourceField": "CreatedDate",
            "offset": "first()",
            "default": "current()"
          }
        },
        {
          "name": "AmountPrev",
          "label": "Previous Amount",
          "description": "Determines the previous amount of the opportunity",
          "expression": {
            "sourceField": "Amount",
            "offset": "previous()",
            "default": "null"
          }
        },
        {
          "name": "CloseDatePrev",
          "label": "Previous Close Date",
          "description": "Determines the previous expected close date for the opportunity",
          "expression": {
            "sourceField": "CloseDate",
            "offset": "previous()",
            "default": "current()"
          }
        },
        {
          "name": "AmountChange",
          "label": "Amount % Change",
          "description": "Determines percentage change from previous amount",
          "expression": {
            "saqlExpression": "(current(Amount)-previous(Amount))/previous(Amount)*100",
            "type": "Numeric",
            "scale": 2,
            "default": "null"
          }
        },
        {
          "name": "AmountChangeDirection",
          "label": "Amount Change Direction",
          "description": "Determines text to indicate direction of change",
          "expression": {
            "saqlExpression": "case when current(Amount)>previous(Amount) then \"Up\" when current(Amount)<previous(Amount) then \"Down\" else \"No Change\" end",
            "type": "Text",
            "default": ""
          }
        }
      ]
   }
  },
  "Register_OppportunityHistory_Dataset": {
    "action": "sfdcRegister",
    "parameters": {
      "alias": "SalesPipelineTrending1",
      "name": "Sales Pipeline Trending1",
      "source": "computeTrending"
    }
  }
}

Dataflödet körs och skapar datauppsättningen med de nya deriverade fälten.

Den slutgiltiga datauppsättningen har alla fält extraherade från sfdcDigest-transformationen samt alla fält skapade av computeRelative-transformationen.

Observera att CRM Analytics delar upp posterna efter säljprojekt-ID och sedan sorterar posterna i stigande ordning baserat på CreatedDate-fältet i varje partition. CRM Analytics kan nu använda tidigare och nästa rader inom varje partition för att avgöra ändringar i fältvärden i datauppsättningen.

  • computeRelative-parametrar
    När du definierar en computeRelative-transformation ställer du in åtgärdsattributet till computeRelative. Du specificerar även parametrarna för inmatningskällan, partition efter fält, sorteringsfält och härledda fältdefinitioner.
 
Laddar
Salesforce Help | Article