詳細情報:
computeExpression 変換
computeExpression 変換を使用すると、派生項目をデータセットに追加できます。派生項目の値は、入力データソースから抽出されません。代わりに、CRM Analytics は SAQL 式を使用して値を生成します。この式は、入力データの 1 つ以上の項目または他の派生項目を基に計算できます。たとえば、式を使用して、値を項目に追加すること、テキスト項目を連結すること、数値項目で数学的計算を実行することなどができます。
computeExpression 変換と computeRelative 変換は似ていますが、重要な違いがあります。computeExpression 変換では同じ行内の他の項目に基づいて計算が実行されます。computeRelative 変換では、他の行の同じ項目の前の値および次の値に基づいて計算が実行されます。
computeExpression 変換を作成するときは、次のガイドラインに従ってください。
- 式には次の SAQL 演算子と関数のみを含めることができます。
- 複数値項目はサポートされません。SAQL 式のパラメーターに複数値項目を含めると、データフローが失敗します。
- 派生項目の値は、その指定された型に一致する必要があります。たとえば、値が文字列の場合、派生項目の型を「Text」に設定します。
- CRM Analytics は、JSON でリストされている順序で派生項目の値を計算します。したがって、同じ computeExpression 変換内の他の派生項目に基づいて派生項目を作成する場合、入力派生項目は最初にリストされている必要があります。たとえば、次の computeExpression 変換の JSON スニペットでは、Derived_A が Derived_B より前にリストされている必要があります。
"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\""} ] } } - 作成されるデータセットに派生項目のみを含めるか、入力項目と派生項目を含めるかを選択できます。
- 式によって数値項目のオーバーフロー値が算出された場合、変換ではその項目値を列のデフォルト値に設定します。デフォルト値が設定されておらず、Null 処理が無効化されている場合は、項目値を 0 に設定します。 デフォルト値が設定されておらず、Null 処理が有効化されている場合は、項目値を null に設定します。(Null 基準の処理に関するドキュメントを参照してください。)また、数式で複数の列が定義されていて、式によってオーバーフロー値が算出された場合は、生成されたすべての項目がデフォルト値に設定されます。問題をオーバーフロー値を持つ項目に切り分けるには、定義されている各列に対して個別の computeExpression 変換を作成します。
例を見てみましょう。Salesforce 商談データに基づいてデータセットを作成します。Opportunity オブジェクトから ID 項目と Amount 項目を抽出するデータフローを作成します。さらに、データセットに ModifiedId、SalesTax、FinalPrice、ValueCategory 派生項目も追加します。派生項目で、次の操作を実行します。
- 各商談 ID に「SFDC」を追加し、新しい更新 ID を取得する。
- 8% の税率に基づいて消費税を計算する。
- 金額と消費税を追加して最終価格を計算する。
- 計算された最終価格に基づいて商談を Low、Medium、High 値のバケットに分類する。
次のデータフロー定義を作成します。
{
"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" }
}
}- computeExpression パラメーター
computeExpression 変換を定義する場合は、アクション属性をcomputeExpressionに設定します。値の生成に使用される入力元と式のパラメーターも指定します。

