Salesforce Tableau CRM Dashboards,为查询条件设置默认值

2022-04-24 22:27:43 浏览数 (1)

Dashboards查询条件,默认情况下,查询所有担当者的金额情报,如下也可以进行自由选择,选择特定用户的情报。

1.需求:

以特定用户登录时,查询条件项目默认设置成登录用户,普通管理员用户登录是无需设置默认值,

以下是查询项目没有设置默认值的情况。

2.为查询条件设置默认值

切换到Query模式下,添加以下代码。

代码语言:javascript复制
"start": [
        "!{User.Name}"
    ],

如下,现在使用任何用户登录情况下,查询条件都会设置当前用户为查询条件。

但是我们的需求是只有特定用户登录情况下设置默认值,所以需要写出分歧条件,首先需要做成Flow,取得所有用户名称和对应的Profile,用来进行用户身份判断

3.DataFlow做成

3.创建Query,用于判断登录用户身份。

选择上边刚刚做成的DataSet(MC_User_DataSets)

Query模式下,切换到SQL编辑

编辑SQL,进行登录用户绑定的Profile判断

变更前

代码语言:javascript复制
SELECT COUNT(*) AS "A" FROM "MC_User_DataSets" LIMIT 2000

变更后

代码语言:javascript复制
SELECT
CASE "Profiles.Name" WHEN 'Partner Community User'
THEN "Name" ELSE null END as "Name"
FROM "MC_User_DataSets" WHERE "Name" = '!{User.Name}'

当登录用户的Profile是“Partner Community User”时,默认选择当前登录用户,以外时使用null,不设置默认值

Query创建成功

4.Query模式下,编辑查询项目

选择查询条件项目,切换Query模式进行编辑

变更前

代码语言:javascript复制
{
    "broadcastFacet": true,
    "datasets": [
        {
            "id": "0Fb5g000000yJsVCAU",
            "label": "MC_Opportunity_DataSets",
            "name": "MC_Opportunity_DataSets",
            "url": "/services/data/v54.0/wave/datasets/0Fb5g000000yJsVCAU"
        }
    ],
    "isGlobal": false,
    "query": {
        "measures": [
            [
                "count",
                "*"
            ]
        ],
        "groups": [
            "owners.Name"
        ]
    },
    "receiveFacetSource": {
        "mode": "all",
        "steps": []
    },
    "selectMode": "single",
    "start": [
        "!{User.Name}"
    ],
    "type": "aggregateflex",
    "useGlobal": true,
    "visualizationParameters": {
        "options": {}
    }
}

变更后

代码语言:javascript复制
{
    "broadcastFacet": true,
    "groups": [],
    "label": "担当者",
    "numbers": [],
    "query": "q = load "MC_Opportunity_DataSets";nq = group q by 'owners.Name';nq = foreach q generate 'owners.Name' as 'owners.Name';nq = limit q 100;",
    "receiveFacetSource": {
        "mode": "all",
        "steps": []
    },
    "selectMode": "multi",
    "start": "{{cell(lens_1.result, 0, "Name").asObject() }}",
    "strings": [],
    "type": "saql",
    "useGlobal": true
}

5.效果展示

管理员用户登录:

Partner Community User登录:

0 人点赞