Ti trovi qui:
Trasformazione computeExpression
La trasformazione computeExpression consente di aggiungere campi derivati a una serie di dati. I valori dei campi derivati non vengono estratti dalla fonte dei dati di input. CRM Analytics genera invece i valori utilizzando un'espressione SAQL, che può essere basata su uno o più campi provenienti dai dati di input o da altri campi derivati. Ad esempio, è possibile utilizzare un'espressione per assegnare un valore a un campo, concatenare campi di testo o eseguire calcoli matematici sui campi numerici.
La trasformazione computeExpression e la trasformazione computeRelative sono simili, ma si presentano una differenza fondamentale. La trasformazione computeExpression esegue i calcoli in base ad altri campi nella stessa riga. La trasformazione computeRelative esegue i calcoli in base ai valori precedente e successivo dello stesso campo in altre righe.
Durante la creazione di una trasformazione computeExpression, prestare attenzione ai seguenti punti:
- È possibile includere soltanto i seguenti operatori e funzioni SAQL nell'espressione:
- I campi multivalore non sono supportati. Il flusso di dati ha esito negativo se si include un campo multivalore nel parametro dell'espressione SAQL.
- I valori del campo derivato devono corrispondere al tipo specificato. Ad esempio, se i valori sono stringhe impostare il tipo del campo derivato su Testo.
- CRM Analytics calcola i valori dei campi derivati nell'ordine in cui vengono elencati nel JSON. Pertanto, se si crea un campo derivato basato su altri campi derivati nella stessa trasformazione computeExpression, i campi derivati di input devono essere elencati per primi. Ad esempio, Derived_A deve essere elencato prima di Derived_B nel seguente snippet JSON della trasformazione computeExpression:
"CreateDerivedFields": { "action": "computeExpression", "parameters": { "source": "sourceNode", "mergeWithSource": false, "computedFields": [ { "name": "Derived_A", "type": "Text", "label": "Derived Field A", "saqlExpression": "\"hello \""}, { "name": "Derived_B", "type": "Text", "label": "Derived Field B Dependent on Field A", "saqlExpression": "Derived_A + \"world\""} ] } } - È possibile scegliere se la serie di dati risultante include solo i campi derivati o i campi di input e i campi derivati.
- Se l'espressione genera un valore oltre i limiti per un campo numerico, la trasformazione imposta il valore del campo sul valore predefinito specificato per la colonna. Se non è impostato alcun valore predefinito e la gestione dei valori nulli è disabilitata, il valore del campo viene impostato su 0. Se non è impostato alcun valore predefinito e la gestione dei valori nulli è abilitata, il valore del campo viene impostato su nullo. (vedere la documentazione relativa alla gestione delle misure con valori nulli). Inoltre, se l'espressione definisce più colonne e genera un valore oltre i limiti, tutti i campi generati vengono impostati sul valore predefinito. Per circoscrivere il problema al campo con il valore oltre i limiti, creare una trasformazione computeExpression separata per ogni colonna definita.
Vediamo un esempio. Si supponga di voler creare una serie di dati basata sui dati opportunità Salesforce. È possibile creare un flusso di dati che estragga i campi Id e Ammontare dall'oggetto Opportunità. Si supponga inoltre di voler aggiungere i seguenti campi derivati alla serie di dati: ModifiedId, SalesTax, FinalPrice e ValueCategory. Per i campi derivati:
- Aggiungere "SFDC" a ogni Id opportunità per ottenere un nuovo Id modificato.
- Calcolare l'imposta sul valore aggiunto in base a un'aliquota dell'8%.
- Calcolare il prezzo finale aggiungendo l'ammontare e l'imposta sul valore aggiunto.
- Classificare le opportunità in bucket di valore basso, medio ed elevato in base al prezzo finale calcolato.
Creare la seguente definizione del flusso di dati.
{
"salesData": {
"action": "sfdcDigest",
"parameters": {
"object": "Opportunity",
"fields": [
{"name": "Amount"},
{"name": "Id"}]}},
"Derived_Fields": {
"action": "computeExpression",
"parameters": {
"source": "salesData",
"mergeWithSource": true,
"computedFields": [
{
"name": "ModifiedId",
"type": "Text",
"saqlExpression": "\"SFDC\" + Id"},
{
"name": "SalesTax",
"type": "Numeric",
"precision": 18,
"defaultValue": "0",
"scale": 5,
"saqlExpression": "Amount * 0.08"},
{
"name": "FinalPrice",
"type": "Numeric",
"precision": 18,
"defaultValue": "0",
"scale": 5,
"saqlExpression": "Amount + SalesTax"},
{
"name": "ValueCategory",
"type": "Text",
"saqlExpression": "case when FinalPrice < 1000 then \"Low\" when FinalPrice >= 1000 and FinalPrice < 2000 then \"Medium\" else \"High\" end"}
]
}
},
"Register_CategorizedSales": {
"action": "sfdcRegister",
"parameters": {
"alias": "Categorized_Sales",
"name": "Categorized_Sales",
"source": "Derived_Fields" }
}
}- Parametri computeExpression
Quando si definisce una trasformazione computeExpression, si imposta l'attributo azione sucomputeExpression. Si specificano inoltre i parametri per l'origine di input e l'espressione usata per generare i valori.
