この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

バインド操作

いくつかの追加操作で結果バインドと選択バインドを使用して、正しい結果を抽出できます。

value()

value() 操作は、セレクタ配列値を取得して単一値に変換するために使用されます。セレクタ配列値が空白の場合、操作はすべての値を返します。value() 操作はセレクタ配列値が空白の場合に複数の値を返す可能性があるため、次の例のように、== ではなく in を使用します。
1q = filter q by 'Owner Name' in {{ value(selection(step_StageName_3))}}

single_quote()

single_quote() 操作は通常、クエリの "group" および "foreach generate" 行が正しい形式になるように SAQL ステップの選択バインドで使用されます。single_quote() 操作は、値の配列を取得し、二重引用符を単一引用符、角括弧を丸括弧に変換します。たとえば、"Owner-Name"'Owner-Name' に変換され、["Owner-Name", "Owner-Region"]('Owner-Name', 'Owner-Region') に変換されます。

配列値 ["Account-Name"] および ["Product"] を使用する次の静的セレクタがあるとします。

1{
2    "step_StageName_3": {
3        "isFacet": false,
4        "values": [
5            {
6                "value": [
7                    "Account-Name"
8                ],
9                "display": "Account"
10            },
11            {
12                "value": [
13                    "Product"
14                ],
15                "display": "Product"
16            }
17        ],
18        "useGlobal": true,
19        "datasets":[{"name":"opp"}],
20        "type": "static",
21        "selectMode": "singlerequired",
22        "isGlobal": false
23    }
24}

次の例は、"group by" 値と "foreach generate" 値で単一引用符を使用する必要がある SAQL クエリに配列値をバインドしています。したがって、single_quote() によって ["Account-Name"]'Account-Name' に変換されます。

1{
2    "step_Account_Name_1": {
3        "isFacet": false,
4        "query": {
5            "pigql": "q = load \"opp\";\nq = group q by 
6                {{ single_quote(value(selection(step_StageName_3))) }};\nq = 
7                foreach q generate {{ single_quote(value(selection(step_StageName_3))) 
8                }} as {{ single_quote(value(selection(step_StageName_3)) }}, 
9                sum('Amount') as 'sum_Amount', count() as 'count'",
10            "groups": "{{ selection(step_StageName_3) }}",
11            "measures": [
12                [
13                    "sum",
14                    "Amount"
15                ]
16            ]
17        },
18        "visualizationParameters": {
19            "visualizationType": "hbar"
20        },
21        "selectMode": "none",
22        "useGlobal": true,
23        "datasets":[{"name":"opp"}],
24        "type": "aggregate",
25        "isGlobal": false
26    }
27}

結果のクエリは次のとおりです。

1q = load "opp";\nq = group q by 'Account-Name';\nq = 
2                foreach q generate 'Account-Name' as 'Account-Name', sum('Amount') as 
3                'sum_Amount', count() as 'count'

no_quote()

no_quote() 操作は通常、クエリの "order" 行が正しい形式になるように SAQL ステップの選択バインドで使用されます。no_quote() 操作は、値の配列を取得し、二重引用符と角括弧を引用符なしに変換します。たとえば、["desc"]desc に変換されます。

["desc"] 配列値と ["asc"] 配列値が指定された次の静的ステップがあるとします。

1{
2    "step_order": {
3        "type": "static",
4        "values": [
5            {
6                "display": "desc",
7                "value": [
8                    "desc"
9                ]
10            },
11            {
12                "display": "asc",
13                "value": [
14                    "asc"
15                ]
16            }
17        ],
18        "selectMode": "singlerequired"
19    }
20}

次の例は、配列値を SAQL ステップにバインドしています。

1q = order q by 'Amount' {{ no_quote(value(selection(step_order))) }}

引用符のない desc 値または asc 値が挿入されます。

1q = order q by 'Amount' desc

field()

field() 操作は、配列内の各オブジェクトに対して項目を作成します。

次の静的ステップ (step_measure) では、"$" オプションと "#" オプションに "compact""alias"、および "proj" の 3 つの項目値が割り当てられています。

1{
2    "step_measure": {
3        "type": "static",
4        "values": [
5            {
6                "display": "$",
7                "value": [
8                    {
9                        "compact": [["sum", "Amount"]],
10                        "alias": "sum_Amount",
11                        "proj": "sum('Amount')"
12                    }
13                ],
14                "display": "#",
15                "value": [
16                    {
17                        "compact": [["count", "*"]],
18                        "alias": "count",
19                        "proj": "count()"
20                    }
21                ]
22            }
23        ],
24        "selectMode": "singlerequired"
25    }
26}

割り当て後、field() 操作を使用して他のステップ選択バインドで各項目値を参照できます。

たとえば、step_measure を使用する切り替えセレクタでダッシュボードユーザが [#] をクリックすると、この集計ステップ (step_top_10) の SAQL クエリは、"proj" 項目を参照して count() 関数を挿入し、"alias" 項目を参照して "count" を文字列として挿入し、"compact" 項目を参照して [["count", "*"]] を挿入します。

1{
2  "step_top_10": {
3    "type": "aggregate",
4    "datasets":[{"name":"opp"}],
5    "query": {
6      "pigql":
7       "q = load 'edgemarts/Opportunity/OpportunityEM';
8       q = group q by 'Account_Name';
9       q = foreach q generate
10         'Account_Name' as 'Account_Name',
11         {{ no_quote(value(field(selection(step_measure),'proj'))) }}
12           as {{ single_quote(value(field(selection(step_measure), 'alias'))) }};
13       q = order q by {{ single_quote(value(field(selection(step_measure), 'alias'))) }}
14         {{ no_quote(value(field(selection(step_order), 'pigql'))) }};
15       q = limit q {{ value(selection(step_limit)) }};",
16      "groups": ["Account_Name"],
17      "measures": "{{ value(field(selection(step_measure), 'compact')) }}",
18      "order":
19       [[ -1, { "ascending": "{{ value(field(selection(step_order), 'compact')) }}" } ]]
20    },
21  "isFacet": true
22  }
23}