Pages

Monday, October 28, 2019

Einstein Analytics: Auto-filter dashboard based on User

You can set initial selections based on the following Salesforce user tokens: user.id, user.name, user.rolename, and user.roleid. At runtime, Analytics retrieves the values of these tokens from Salesforce environment variables—these values don’t come from datasets.

Sample-1:
"Owner_Name_1": {
                "datasets": [
                    {
                        "id": "0FbB00000000pNNKAY",
                        "label": "Opportunities",
                        "name": "opportunity",
                        "url": "/services/data/v38.0/wave/datasets/0FbB00000000pNNKAY"
                    }
                ],
                "isFacet": true,
                "isGlobal": false,
                "query": {
                    "measures": [
                        [
                            "count",
                            "*"
                        ]
                    ],
                    "groups": [
                        "Owner.Name"
                    ]
                },
                "selectMode": "multi",
                "start": [
                    "!{User.Name}"
                ],
                "type": "aggregateflex",
                "useGlobal": false,
                "visualizationParameters": {
                    "options": {}
                }
            },

use it in another step:
"Owner_Username_3": {
                "datasets": [
                    {
                        "id": "0FbB00000000pNNKAY",
                        "label": "Opportunities",
                        "name": "opportunity",
                        "url": "/services/data/v38.0/wave/datasets/0FbB00000000pNNKAY"
                    }
                ],
                "isFacet": false,
                "isGlobal": false,
                "query": {
                    "measures": [
                        [
                            "sum",
                            "Amount"
                        ]
                    ],
                    "groups": [
                        "Owner.Name"
                    ],
                    "filters": [
                        [
                            "Owner.Name",
                            "{{column(Owner_Name_1.selection, [\"Owner.Name\"]).asObject()}}",
                            "in"
                        ]
                    ],
                    "order": [
                        [
                            -1,
                            {
                                "ascending": false
                            }
                        ]
                    ]
                },
                "selectMode": "multi",
                "type": "aggregateflex",
                "useGlobal": true,
                "visualizationParameters": {
                    "visualizationType": "hbar",
                    "options": {}
                }
            }


Sample-3:
 "QueryLoginUser_1": {
                "groups": [],
                "numbers": [],
                "query": "SELECT Name FROM User Where Name = '!{User.Name}'",
                "selectMode": "single",
                "strings": [],
                "type": "soql"
            }

use the query result into a step, in this sample for filter:

[
   "User.Name",
   "{{coalesce(cell(User_Name_1.selection,0,\"User.Name\"), cell(QueryLoginUser_1.result,0,\"Name\")).asString()}}",
   "in"
]



ReferenceDynamically Set Initial Selections Based on the Dashboard Viewer



No comments:

Post a Comment

Page-level ad