Du är här:
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.
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.
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.
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.
- OpportunityCreatedDate
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.
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 tillcomputeRelative. Du specificerar även parametrarna för inmatningskällan, partition efter fält, sorteringsfält och härledda fältdefinitioner.
