afv-library/skills/explaining-batch-data-transform/assets/sample_bdts/window_and_aggregate.json

98 lines
3.5 KiB
JSON
Raw Normal View History

{
"version": "66.0",
"nodes": {
"LOAD_ORDERS": {
"action": "load",
"sources": [],
"parameters": {
"dataset": {"name": "ssot__SalesOrder__dlm", "type": "dataModelObject"},
"fields": ["ssot__Id__c", "ssot__AccountId__c", "ssot__CreatedDate__c", "ssot__GrandTotalAmount__c"],
"sampleDetails": {"type": "TopN", "sortBy": []}
}
},
"RANK_ORDERS": {
"action": "computeRelative",
"sources": ["LOAD_ORDERS"],
"parameters": {
"partitionBy": ["ssot__AccountId__c"],
"orderBy": [{"fieldName": "ssot__CreatedDate__c", "direction": "ASC"}],
"expressionType": "SQL",
"fields": [
{
"name": "OrderRank__c",
"label": "Order Rank",
"formulaExpression": "row_number()",
"type": "NUMBER",
"businessType": "NUMBER",
"precision": 18,
"scale": 0,
"defaultValue": ""
}
]
}
},
"FIRST_ORDER_AMOUNT": {
"action": "formula",
"sources": ["RANK_ORDERS"],
"parameters": {
"expressionType": "SQL",
"fields": [
{
"name": "FirstOrderAmount__c",
"label": "First Order Amount (per account)",
"formulaExpression": "case when OrderRank__c = 1 then ssot__GrandTotalAmount__c else 0 end",
"type": "NUMBER",
"businessType": "NUMBER",
"precision": 18,
"scale": 2,
"defaultValue": "0"
}
]
}
},
"AGG_BY_ACCOUNT": {
"action": "aggregate",
"sources": ["FIRST_ORDER_AMOUNT"],
"parameters": {
"groupings": ["ssot__AccountId__c"],
"aggregations": [
{"action": "SUM", "name": "TotalAmount__c", "source": "ssot__GrandTotalAmount__c"},
{"action": "SUM", "name": "FirstOrderTotal__c", "source": "FirstOrderAmount__c"},
{"action": "COUNT", "name": "OrderCount__c", "source": "ssot__Id__c"}
],
"nodeType": "STANDARD"
}
},
"OUTPUT_SUMMARY": {
"action": "outputD360",
"sources": ["AGG_BY_ACCOUNT"],
"parameters": {
"name": "Account_Summary__dlm",
"type": "dataModelObject",
"writeMode": "OVERWRITE",
"fieldsMappings": [
{"sourceField": "ssot__AccountId__c", "targetField": "AccountId__c"},
{"sourceField": "TotalAmount__c", "targetField": "TotalAmount__c"},
{"sourceField": "FirstOrderTotal__c", "targetField": "FirstOrderAmount__c"},
{"sourceField": "OrderCount__c", "targetField": "OrderCount__c"}
]
}
}
},
"ui": {
"nodes": {
"LOAD_ORDERS": {"label": "Sales Orders", "type": "LOAD_DATASET", "top": 100, "left": 100},
"RANK_ORDERS": {"label": "Rank by account", "type": "COMPUTE_RELATIVE", "top": 100, "left": 260},
"FIRST_ORDER_AMOUNT": {"label": "Extract first order amount", "type": "FORMULA", "top": 100, "left": 420},
"AGG_BY_ACCOUNT": {"label": "Totals per account", "type": "AGGREGATE", "top": 100, "left": 580},
"OUTPUT_SUMMARY": {"label": "Account Summary", "type": "OUTPUT", "top": 100, "left": 740}
},
"connectors": [
{"source": "LOAD_ORDERS", "target": "RANK_ORDERS"},
{"source": "RANK_ORDERS", "target": "FIRST_ORDER_AMOUNT"},
{"source": "FIRST_ORDER_AMOUNT", "target": "AGG_BY_ACCOUNT"},
{"source": "AGG_BY_ACCOUNT", "target": "OUTPUT_SUMMARY"}
]
}
}