用法
view: view_name {
dimension: field_name {
action: {
label: "Label to Appear in Action Menu"
url: "https://example.com/posts"
icon_url: "https://looker.com/favicon.ico"
form_url: "https://example.com/ping/{{ value }}/form.json"
param: {
name: "name string"
value: "value string"
}
form_param: {
name: "name string"
type: textarea | string | select
label: "possibly-localized-string"
option: {
name: "name string"
label: "possibly-localized-string"
}
required: yes | no
description: "possibly-localized-string"
default: "string"
}
user_attribute_param: {
user_attribute: user_attribute_name
name: "name_for_json_payload"
}
}
}
}
|
层次结构
action |
可能的字段类型
维度、衡量
默认值
无
接受
各种形参
特殊规则
|
定义
action 参数用于创建一项数据操作,支持用户直接在 Looker 中,借助其他工具完成字段级任务。例如,该操作可触发邮件发送、在其他应用中设定值,或执行为接收服务器配置好的任何其他操作。接收服务器必须能够接收 JSON 格式的 POST 请求。
您可以为维度或指标定义 action。您可以在“探索”页面、Look 或信息中心内选择相应字段,以访问该操作。

定义 action 时,您可以使用以下参数指定所选行为:
| 参数 | 说明 |
|---|---|
label |
一个字符串,用于指定操作名称,该名称将显示在用户端的“操作”菜单中。 |
url |
一个字符串,用于指定处理操作的网址。如果指定了针对数据操作的网址许可名单,您必须将此 url 值添加到许可名单中。只有符合许可名单格式的网址才能用于任何数据操作。如果没有现有条目,则允许所有网址执行数据操作。 |
icon_url |
一个字符串,用于指定包含图片文件的网址,以便用户一眼就能轻松了解此链接会将他们定向到何处。icon_url 值必须可供用户的浏览器访问。 |
form_url |
一个字符串,用于指定将返回要向用户显示的表单的网址;表单必须以 JSON 格式呈现,如本页上的使用 form_url 或 form_param 指定表单行为部分中所述。form_url 必须可供 Looker 服务器访问,并且使用具有有效证书的 HTTPS。 |
param |
将值传递给接收服务器。 |
form_param |
添加将为此操作显示的表单输入。 |
user_attribute_param |
将用户属性传递给接收服务器。如果您为数据操作使用 user_attribute_param,则必须将数据操作的 url 值添加到数据操作的网址许可名单中。 |
与数据操作类似,您还可以使用 Looker Action Hub 中提供的字段级操作,从特定单元格发送数据。如需详细了解此选项,请参阅本页面的考虑使用 Looker Action Hub 部分。
使用 user_attribute_param 将用户属性传递给接收服务器
您可以使用 user_attribute_param 参数将用户属性发送到接收服务器。在每个 user_attribute_param 中,您将指定以下子参数:
| 参数 | 类型 | 说明 |
|---|---|---|
user_attribute |
Looker ID | Looker 中用户属性的名称 |
name |
字符串 | 您希望属性在 JSON 载荷中显示的名称 |
使用 param 将值传递给接收服务器
您可以使用 param 参数在 JSON 载荷中发送任意数据。在每个 param 中,您将指定以下子参数:
| 参数 | 类型 | 说明 |
|---|---|---|
name |
字符串 | 要传递给接收服务器的参数的名称 |
value |
字符串 | 要传递给接收服务器的参数的值 |
请勿在
param参数中传递敏感数据或私密信息(例如用户凭据)。请改为在管理设置中将用户凭据配置为用户属性,并在user_attribute_param参数中传递此信息。
使用 form_url 或 form_param 指定表单行为
您可以创建一个供 Looker 用户互动的表单,然后在 JSON 载荷中提交表单输入内容。如果您显示表单,它将以叠加层的形式显示在触发操作的页面(探索、查看或信息中心)上。您可以使用 form_url 或 form_param 参数来执行此操作。
如果您希望操作中心服务器定义表单布局,请使用 form_url 参数。form_url 应包含一个网址,该网址会返回表单的 JSON 表示形式,如本页稍后所述。
如果您想直接在 LookML 中定义表单布局,请使用 form_param 参数。
表单选项
在这两种情况下,您都可以使用以下选项来定义表单:
| 选项 | 类型 | 说明 |
|---|---|---|
name |
字符串 | 值在 JSON 载荷中的显示名称 |
type |
输入类型 | 将向用户显示的表单字段的类型:
|
label |
字符串 | 输入内容的标签(将向用户显示) |
description |
字符串 | 将向用户显示的字段说明 |
required |
布尔值 | 指定用户是否必须先提供表单选项,然后才能提交表单 |
default |
字符串 | 表单字段的起始值(如有) |
option |
字符串 | 如果您选择 select 的 type,请在此处定义选择选项 |
如果您将 type 设置为 select,则可以使用 option 指定下拉列表中的项。每个 option 都包含以下详细信息:
| 选项 | 类型 | 说明 |
|---|---|---|
name |
字符串 | 表单值的名称,将显示在 JSON 载荷中 |
label |
字符串 | 选项的标签(将向用户显示)(可选) |
使用不含表单的数据操作
如果您未在 action 定义中添加 form_url 或 form_param 参数,则数据操作不会包含表单。在这种情况下,当用户从操作菜单中选择相应操作时,该操作会发送请求。
选择不含表单的操作后,“操作”菜单会在操作左侧显示图标,以指示其状态:
- 系统会显示一个加载图标,表明相应操作正在执行。

- 系统会显示一个对勾标记,表明相应操作已执行。

- 系统会显示一个带圈的 i,表示操作失败。

如果某项操作的左侧未显示任何图标,则表示该操作未触发。
服务器响应
成功的 HTTP 响应将被视为成功操作。
服务器还可以向 Looker 传回一些与操作成功与否相关的选项。如果 Webhook 请求以 JSON 格式响应,Looker 会在响应中查找特殊的 looker 键。其他所有内容都会被忽略。例如,在以下情况下:
{
"my_apps_business_logic": "something",
"looker": {
"success": true,
"refresh_query": true
}
}
此处 success 默认为 true,将 success 设置为 false 将在 Looker 中指示请求失败。此外,refresh_query 默认为 false,将其设置为 true 将重新运行当前 Looker 查询,跳过缓存。
您还可以针对传递的任何表单参数返回验证错误:
{
"looker": {
"success": false,
"validation_errors": {
"body": "Body must be more than 10 characters long."
}
}
}
此处 validation_errors 默认为 {}。这应是一个 JSON 对象,其中键是表单参数的名称,值是表示相应参数的错误消息的字符串。
示例
如果您使用 form_url 参数(在此示例中使用 Liquid 语法),则必须以 JSON 对象的形式返回所有选项。例如:
dimension: foo {
action: {
label: "Send a Thing"
url: "https://example.com/ping/\{{ value \}}"
form_url: "https://example.com/ping/\{{ value \}}/form.json"
}
}
服务器应返回与 LookML 匹配的表单的 JSON 表示形式:
[
{
"name": "title",
"type": "select",
"label": "desired label name",
"description": "description text",
"required": true,
"default": "value string",
"options": [
{
"name": "name string"
"label": "desired label name"
},
{
"name": "name string"
"label": "desired label name"
}
]
},
{
"name": "title",
"type": "textarea",
"label": "desired label name",
"description": "description text",
"required": true,
"default": "value string",
}
]
如果您使用 form_param 参数,则这些选项会用作 LookML 参数。例如:
form_param: {
name: "title"
type: select
label: "desired label name"
option: {
name: "name string"
label: "desired label name"
}
required: yes
description: "description text"
default: "value string"
}
考虑使用 Looker Action Hub
如果您尚未设置用于接收操作请求的服务器,或者您想实现可重用性有限的使用情形,那么 action 参数是不错的选择。不过,作为替代方案,您不妨考虑使用 Looker Action Hub 提供的字段级操作。(请确保您的实例满足这些 Looker Action Hub 要求。)
除了现有的 Looker Action Hub 集成之外,您还可以按照 Action Hub 文档页面上的说明创建自己的自定义操作。