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登录: