@amaster.ai/pi-lark 0.1.2-beta.57 → 0.1.2-beta.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/skills/lark-base/SKILL.md +155 -155
- package/skills/lark-base/references/{lark-base-role-guide.md → lark-base-advanced-permission-and-role.md} +5 -5
- package/skills/lark-base/references/lark-base-app-block-data-config.md +122 -0
- package/skills/lark-base/references/lark-base-app.md +225 -0
- package/skills/lark-base/references/lark-base-cell-value.md +9 -14
- package/skills/lark-base/references/{dashboard-block-data-config.md → lark-base-dashboard-block-config.md} +37 -5
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +1 -1
- package/skills/lark-base/references/lark-base-dashboard.md +9 -9
- package/skills/lark-base/references/lark-base-data-query.md +5 -5
- package/skills/lark-base/references/lark-base-field-create.md +7 -50
- package/skills/lark-base/references/{formula-field-guide.md → lark-base-field-formula.md} +1 -1
- package/skills/lark-base/references/{lookup-field-guide.md → lark-base-field-lookup.md} +1 -1
- package/skills/lark-base/references/{lark-base-field-json.md → lark-base-field-schema.md} +13 -98
- package/skills/lark-base/references/lark-base-field-update.md +13 -51
- package/skills/lark-base/references/lark-base-filter-condition.md +7 -35
- package/skills/lark-base/references/lark-base-record-batch-create.md +5 -1
- package/skills/lark-base/references/lark-base-record-batch-update.md +5 -2
- package/skills/lark-base/references/{lark-base-data-analysis-cloud.md → lark-base-record-query-and-analysis-cloud-sop.md} +4 -4
- package/skills/lark-base/references/{lark-base-data-analysis-sop.md → lark-base-record-query-and-analysis-sop.md} +27 -18
- package/skills/lark-base/references/{role-config.md → lark-base-role-config.md} +2 -2
- package/skills/lark-base/references/lark-base-view-set-filter.md +1 -1
- package/skills/lark-base/references/lark-base-workflow-schema.md +2 -2
- package/skills/lark-base/references/{lark-base-workflow-guide.md → lark-base-workflow.md} +1 -1
- package/skills/lark-calendar/references/lark-calendar-create.md +4 -4
- package/skills/lark-doc/SKILL.md +4 -4
- package/skills/lark-doc/references/lark-doc-fetch.md +8 -3
- package/skills/lark-doc/references/lark-doc-update.md +12 -8
- package/skills/lark-im/SKILL.md +6 -1
- package/skills/lark-note/SKILL.md +2 -0
- package/skills/lark-slides/references/cli/lark-slides-update-slide.md +18 -1
- package/skills/lark-vc/SKILL.md +2 -0
- package/skills/lark-vc/references/vc-domain-boundaries.md +2 -0
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +1 -0
- package/skills/lark-wiki/references/lark-wiki-node-get.md +4 -0
- package/skills/lark-base/references/lark-base-data-query-guide.md +0 -67
- package/skills/lark-base/references/lark-base-record-upsert.md +0 -63
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
# BaseApp(应用模式)操作指引
|
|
2
|
+
|
|
3
|
+
> 先读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)。接口和组件字段以 CLI 当前版本的 API 元数据、[组件配置 reference](lark-base-app-block-data-config.md) 和服务端校验结果为准;不要从组件名称推断额外约束。
|
|
4
|
+
|
|
5
|
+
## 不支持能力:先判断并停止
|
|
6
|
+
|
|
7
|
+
### 复制 BaseApp
|
|
8
|
+
|
|
9
|
+
本期没有 BaseApp 复制命令。用户要复制或克隆既有 BaseApp 时,直接说明当前 CLI 无法完成并停止;不要继续探索浏览器、OpenAPI 或创建类命令等替代通道,也不要发起任何写请求。
|
|
10
|
+
|
|
11
|
+
- `+base-copy` 只支持 Base,不支持 BaseApp;不得向它传入 `app_token`,也不得把复制出的 Base 描述为应用副本。
|
|
12
|
+
- `+app-create` 只创建全新空 BaseApp,不复制既有页面和组件。
|
|
13
|
+
- 不要使用 Drive copy 或其他 Base shortcut 拼装、模拟或冒充 BaseApp 复制。
|
|
14
|
+
|
|
15
|
+
### 创建或归属 PageGroup
|
|
16
|
+
|
|
17
|
+
当前第一阶段的页面层级能力只支持顶级 Page 节点。PageGroup 的创建、归属设置,以及把现有 Page 移入页面组均不支持。
|
|
18
|
+
|
|
19
|
+
最终答复必须同时说明上述正向支持范围和负向限制,不能只说 PageGroup 不支持。用户命中这些诉求时,直接说明当前 CLI 无法完成并停止;不要继续探索浏览器、OpenAPI 或普通 Page 命令等替代通道,也不要读取页面后声称能完成分组或发起任何写请求。
|
|
20
|
+
|
|
21
|
+
### 从 Workspace 移出或移除资源
|
|
22
|
+
|
|
23
|
+
当前 CLI 只支持用 `+workspace-move-in` 把 Base 或 BaseApp 移入 Workspace,不支持从 Workspace 移出或移除资源,也没有 `workspace move-out` / `workspace remove` 命令。这类请求必须先完成只读定位,再说明限制并停止,顺序不可调换:
|
|
24
|
+
|
|
25
|
+
1. Workspace URL 含 `/base/workspace/<workspace_token>` 时,提取其中的真实 `workspace_token`,不要把完整 URL 当作命令参数。
|
|
26
|
+
2. 在同一轮立即执行 `lark-cli base +workspace-entity-list --workspace-token <workspace_token> --page-size 100 --as user`;若 `has_more=true`,继续分页直到完整。该查询是必要的只读定位步骤,不要把它留成等待用户再次选择的可选项,也不要用 `--help` 代替真实查询。
|
|
27
|
+
3. 用服务端返回的 `entities[].name`、`entity_type`、`token` 和 `url` 忠实判断目标。名称完全匹配时报告真实对象;没有完全匹配时明确说明不存在精确同名实体,并原样列出可能相关的候选。不得自动去掉或补齐前后缀,也不得仅凭名称相似就声称已经定位目标。用户直接给出 token 时仍要忠实报告该 token 对应的实际名称。
|
|
28
|
+
4. 定位结果报告完后,明确说明当前 CLI 无法执行 Workspace 移出/移除,并停止,不要发起任何写请求。用户在任一步骤中取消时立即停止,取消后不再调用工具。
|
|
29
|
+
|
|
30
|
+
`lark-cli drive +move` 只改变 Base 或 BaseApp 在云盘中的目录位置,不改变其 Workspace 归属,不能作为移出 Workspace 的替代方案。不要继续探索 Drive move/delete、另一个 Workspace 的 `+workspace-move-in`、浏览器、OpenAPI 或源码来拼装或冒充该操作;只有用户后续明确提出另一项受支持的操作时,才执行新的写入。
|
|
31
|
+
|
|
32
|
+
## Token 与命令
|
|
33
|
+
|
|
34
|
+
| 对象 | 标识 | 命令 |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| Workspace | `workspace_token` | `+workspace-create` / `+workspace-entity-list` / `+workspace-move-in` |
|
|
37
|
+
| BaseApp | `app_token` | `+app-create/get`;重命名和删除见下方 |
|
|
38
|
+
| Base | `base_token` | `+base-create` 返回;表、字段、记录命令使用它 |
|
|
39
|
+
| Page | `page_id` | `+app-page-list/get/create/update/delete` |
|
|
40
|
+
| Block | `block_id` | `+app-block-list/get/create/update` |
|
|
41
|
+
|
|
42
|
+
页面和组件命令使用 `app_token`;Base 数据命令使用 `base_token`。`+app-block-get-data` 使用 `app_token + base_token + chart_token`:CLI 参数名仍为 `--block-id`,但必须传组件返回的 `chart_token`,不能传普通 `block_id`。请求路径与仪表盘图表数据接口相同。
|
|
43
|
+
|
|
44
|
+
BaseApp / AppMode 是 Base 域能力。用户提供 `/app/` 链接时,先用 `+url-resolve`;它会返回 `app_token`,并忠实提取链接实际携带的 `workspace_token` 与 `page_id`。直接使用本指引和 `lark-cli base +...`,不要先尝试 `lark-cli apps`。
|
|
45
|
+
|
|
46
|
+
## 查询应用
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
lark-cli base +app-get --app-token <app_token>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- 没有 `lark-cli base +app-list`。需要列出某个 Workspace 内的 BaseApp 时,唯一列表入口是:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
lark-cli base +workspace-entity-list \
|
|
56
|
+
--workspace-token <workspace_token> \
|
|
57
|
+
--type baseapp \
|
|
58
|
+
--page-size 100
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- 响应中的 `pages` 是页面摘要。
|
|
62
|
+
- `ref` 的结构是 `Base token -> 当前组件引用的 Table 名称数组`。需要操作被引用 Base 时,使用 `ref` 的 key 作为 `base_token`。
|
|
63
|
+
- `ref` 只描述当前组件已经引用的数据源;没有被组件引用的 Base 不会出现在其中。
|
|
64
|
+
|
|
65
|
+
## 查询页面与组件
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
lark-cli base +app-page-list --app-token <app_token> --page-size 100
|
|
69
|
+
lark-cli base +app-block-list \
|
|
70
|
+
--app-token <app_token> \
|
|
71
|
+
--page-id <page_id> \
|
|
72
|
+
--page-size 100
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- `+app-get` 已返回足够的页面摘要时,可直接取得目标 `page_id`;需要完整页面目录或分页确认时再用 `+app-page-list`。
|
|
76
|
+
- `+app-page-list` 返回的某个 Page 若 `name` 为空字符串,表示当前用户对该 Page 无权限,不表示 Page 没有标题。报告该权限状态,不要将其 `page_id` 用于后续页面或组件读写。
|
|
77
|
+
- 只需列表摘要时不要逐个调用 `+app-block-get` 复核;仅在用户需要单个组件详情时使用 get。
|
|
78
|
+
- `+app-block-list` 返回 `type=unsupported` 的组件时,只能通过列表摘要识别它的存在。当前 CLI 不支持读取详情、读取计算数据或修改此类组件;不要调用 `+app-block-get`、`+app-block-get-data` 或 `+app-block-update`,这些请求会报错。
|
|
79
|
+
|
|
80
|
+
## 创建 Workspace
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
lark-cli base +workspace-create \
|
|
84
|
+
--name "AppMode-空白评测空间" \
|
|
85
|
+
--as user
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 创建应用
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
lark-cli base +app-create \
|
|
92
|
+
--name "销售应用" \
|
|
93
|
+
--workspace-token <workspace_token> \
|
|
94
|
+
--as user
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- `+app-create` 没有 `--base-token`。
|
|
98
|
+
- `--workspace-token` 必填;`+app-create` 只调用 App 创建接口,不创建 Workspace、Base,也不移动资源。
|
|
99
|
+
- `--theme-style` 可选,支持 `default|cloudBlue|fresh|softLight|future|technology`。
|
|
100
|
+
- 记录输出中的 `app_token` 和 `workspace_token`。
|
|
101
|
+
|
|
102
|
+
### 创建应用的自然语言编排
|
|
103
|
+
|
|
104
|
+
先根据用户是否指定 Workspace 和现有 Base 选择流程,再调用原子 shortcut:
|
|
105
|
+
|
|
106
|
+
| 用户提供的信息 | 执行流程 |
|
|
107
|
+
|---|---|
|
|
108
|
+
| Workspace + 现有 Base | 确认 Base 位于该 Workspace → `+app-create`;不创建备用 Base |
|
|
109
|
+
| Workspace,未指定 Base | `+app-create` → `+base-create` 创建空 Base → `+workspace-move-in` |
|
|
110
|
+
| 未指定 Workspace,指定现有 Base | 先确认该 Base 所属 Workspace;能确定时在该 Workspace 执行 `+app-create`,不能确定时请用户提供 Workspace;不创建备用 Base |
|
|
111
|
+
| Workspace 和 Base 都未指定 | `+workspace-create` → `+app-create` → `+base-create` 创建空 Base → `+workspace-move-in` |
|
|
112
|
+
|
|
113
|
+
应用模式的列表组件只能引用同一 Workspace 内的一个 Base。用户指定现有 Base 时,不要因为 `+app-create` 没有接收 `base_token` 就额外创建 Base;后续在组件 `data_config.base_token` 中引用该 Base。
|
|
114
|
+
|
|
115
|
+
多步编排中,每个成功的 shortcut 都会立即产生资源且不自动回滚。后续步骤失败时,明确报告已经成功创建的 Workspace、App 或 Base 及其 token;用户要求继续时,只重试失败步骤,不要重复创建已经成功的资源。
|
|
116
|
+
|
|
117
|
+
## 读取图表计算结果
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
lark-cli base +app-block-get-data \
|
|
121
|
+
--app-token <app_token> \
|
|
122
|
+
--base-token <base_token> \
|
|
123
|
+
--block-id <chart_token>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
- `--block-id` 的值必须取图表组件摘要中的 `chart_token`,不能使用组件的普通 `block_id`。
|
|
127
|
+
- `base_token` 使用当前图表组件 `data_config.base_token`;一个 App 引用多个 Base 时,不要从 `+app-get ref` 中任意选择一个 key。
|
|
128
|
+
- `page_id` 不参与请求。
|
|
129
|
+
- 返回协议与 `+dashboard-block-get-data` 完全一致。
|
|
130
|
+
|
|
131
|
+
## 重命名应用
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
lark-cli drive files patch \
|
|
135
|
+
--file-token <app_token> \
|
|
136
|
+
--type bitable \
|
|
137
|
+
--data '{"new_title":"新名称"}'
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
BaseApp 与 Base 在 Drive 文件接口中都使用 `type=bitable`。`new_title` 只更新应用标题,不会重命名它引用的 Base,也不会修改 Page 或 Block。
|
|
141
|
+
|
|
142
|
+
## 删除应用
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
lark-cli drive +delete --file-token <app_token> --type bitable --yes
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
- 删除 BaseApp 应用本体需要切到 `lark-drive`。
|
|
149
|
+
- BaseApp 与 Base 在 Drive 删除接口中都使用 `--type bitable`;删除 BaseApp 时 `--file-token` 传 `app_token`。
|
|
150
|
+
- 这是高风险写操作;执行前先确认 `app_token` 来自 `+app-get` 或 `+workspace-entity-list`。
|
|
151
|
+
|
|
152
|
+
## Page
|
|
153
|
+
|
|
154
|
+
### 本期不支持的 Page 能力
|
|
155
|
+
|
|
156
|
+
Page 复制和页面图标均不在本期范围。用户提出复制 Page、复制页面、克隆页面、沿用页面图标、设置或修改页面图标等需求时:
|
|
157
|
+
|
|
158
|
+
1. 明确说明当前 CLI 不支持该能力,并确认本次没有执行任何写入。
|
|
159
|
+
2. 不得调用 `+app-page-create` 冒充完整复制;空 Page 不包含原 Page 的内容、组件或图标。
|
|
160
|
+
3. 不得尝试使用其他 shortcut 拼装、模拟或声称完成 Page 复制或图标设置。
|
|
161
|
+
4. 在最终答复中将以下替代能力单独成段说明,但不要自动执行:
|
|
162
|
+
|
|
163
|
+
> 可用替代能力(本次未执行):当前 CLI 可以新建一个空 Page,但不会复制原 Page 的内容、组件或图标。如需新建空 Page,请明确告诉我。
|
|
164
|
+
|
|
165
|
+
只有用户后续明确要求新建空 Page,才可以调用 `+app-page-create`。
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
lark-cli base +app-page-list --app-token <app_token>
|
|
169
|
+
lark-cli base +app-page-create --app-token <app_token> --name "总览"
|
|
170
|
+
lark-cli base +app-page-update --app-token <app_token> --page-id <page_id> --name "经营总览"
|
|
171
|
+
lark-cli base +app-page-delete --app-token <app_token> --page-id <page_id> --yes
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
- 同一 App 内 Page 名称必须唯一。创建或更新名称前,CLI 会读取页面列表;更新时排除当前 Page。
|
|
175
|
+
- 同一 Page 内组件名称必须唯一。`+app-block-create` 会分页读取该 Page 的全部组件并在创建前检查重名。
|
|
176
|
+
- 本期没有 Page arrange,也没有 Block delete;Block 的 `type/sub_type` 创建后不可修改。详见[本期不支持的能力](#本期不支持的能力)。
|
|
177
|
+
|
|
178
|
+
## 本期不支持的能力
|
|
179
|
+
|
|
180
|
+
下列能力本期不存在。用户提出时,直接说明不支持并给出可选的替代方向,不要用 Dashboard 或其他域的同名能力顶替。
|
|
181
|
+
|
|
182
|
+
| 用户诉求 | 本期状态 | 正确动作 |
|
|
183
|
+
|---|---|---|
|
|
184
|
+
| 自动排版 / 重新布局 / 美化页面组件 | 没有 App page arrange | 直接告知不支持;不要调用 `+dashboard-arrange` |
|
|
185
|
+
| 删除页面组件 | 没有 App block delete | 直接告知不支持,只能在 UI 处理;不要调用 `+dashboard-block-delete` |
|
|
186
|
+
| 修改组件位置 / 大小 / 置顶 | 布局、位置、尺寸不属于公开 Create/Update 协议 | 直接告知不支持;不要用 `+app-block-update` 做空更新伪装成移动 |
|
|
187
|
+
| 修改已有组件的 `type/sub_type` | `type/sub_type` 创建后不可修改 | 先读取当前 Block;无论是否已为目标类型,最终答复都要说明此约束。已匹配时说明无需写入;不匹配时说明只能在 UI 处理;不得调用或承诺用 `+app-block-update` 修改类型 |
|
|
188
|
+
| 修改已存在 App 的主题 | `--theme-style` 只在 `+app-create` 时生效 | 直接告知不支持;如确有必要,说明只能新建 App 时指定主题 |
|
|
189
|
+
| 读取或修改 `type=unsupported` 的组件 | 列表仅用于识别该组件存在,详情读取、计算数据读取和修改均不支持 | 直接告知不支持;不要调用 `+app-block-get`、`+app-block-get-data` 或 `+app-block-update`,这些请求会报错 |
|
|
190
|
+
|
|
191
|
+
`+dashboard-*` 命令只作用于 Base 内的仪表盘,`dashboard_id` 是 `blk` 开头、组件 ID 是 `cht` 开头;AppMode 的 `pge` 页面和 `wgt` 组件不属于它们的作用域。缺少能力时不要用这些命令试探,包括 `--help` 和 `--dry-run`:一次调用就是一次错误的能力归属判断。
|
|
192
|
+
|
|
193
|
+
## 列表组件
|
|
194
|
+
|
|
195
|
+
创建列表时使用 `--type list` 与 `--sub-type standard|grouped|collapsible|card|detail`。省略 `--sub-type` 时默认 `standard`。
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
lark-cli base +app-block-create \
|
|
199
|
+
--app-token <app_token> \
|
|
200
|
+
--page-id <page_id> \
|
|
201
|
+
--name "待处理订单" \
|
|
202
|
+
--type list \
|
|
203
|
+
--sub-type standard \
|
|
204
|
+
--data-config '{"base_token":"<base_token>","table_name":"订单"}'
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
- `data_config.base_token` 是单值:每个列表最多选择一个 Base。
|
|
208
|
+
- Base 必须在当前 App 的同一个 Workspace;CLI 写入前校验。
|
|
209
|
+
- 完整字段协议读 [lark-base-app-block-data-config.md](lark-base-app-block-data-config.md)。
|
|
210
|
+
|
|
211
|
+
## 更新组件
|
|
212
|
+
|
|
213
|
+
`+app-block-update` 只发送显式传入的 `data_config` 字段。未传字段保持不变;数组或对象字段是否整体替换,以[组件配置 reference](lark-base-app-block-data-config.md)和服务端校验结果为准。不要为了“补全”先读取并提交全量配置。
|
|
214
|
+
|
|
215
|
+
## 常见恢复
|
|
216
|
+
|
|
217
|
+
| 现象 | 动作 |
|
|
218
|
+
|---|---|
|
|
219
|
+
| `status=partial` | 告知已完成/失败步骤;用户要求继续时执行 `retry.command` |
|
|
220
|
+
| Page 重名 | 先 `+app-page-list`,选择唯一名称后重试 |
|
|
221
|
+
| 组件重名 | 先 `+app-block-list`,为该 Page 内的新组件选择唯一名称后重试 |
|
|
222
|
+
| 列表 Base 不在同一 Workspace | 用 `+workspace-entity-list` 核对;选择同 Workspace Base |
|
|
223
|
+
| 列表协议校验失败 | 读取组件协议文档;不要推断 title、group_by 数量或 field role |
|
|
224
|
+
| Block 类型选错 | 本期无法删除且类型不可改,只能在 UI 处理后重新创建 |
|
|
225
|
+
| 用户要 arrange / 删组件 / 调位置 / 改主题 | 按[本期不支持的能力](#本期不支持的能力)直接告知不支持;不要改用 `+dashboard-*` 命令 |
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# base CellValue 规范(lark-base-cell-value)
|
|
2
2
|
|
|
3
|
-
> 适用命令:`lark-cli base +record-
|
|
3
|
+
> 适用命令:`lark-cli base +record-batch-create`、`lark-cli base +record-batch-update`
|
|
4
4
|
|
|
5
5
|
本文件定义 **shortcut 写记录** 时 `CellValue` 的推荐格式,目标是让 AI 一次写对。不同命令的外层 JSON 形状不同,但每个 cell 都以本文为 source of truth。
|
|
6
6
|
|
|
7
7
|
## 1. 顶层规则(必须遵守)
|
|
8
8
|
|
|
9
9
|
- `--json` 必须是 JSON 对象。
|
|
10
|
-
- `+record-
|
|
11
|
-
- `+record-batch-
|
|
12
|
-
- `+record-batch-update`:使用 `update_records`,其每个 value 都是 `Map<FieldNameOrID, CellValue>`。
|
|
10
|
+
- `+record-batch-create --json` 使用 `{"create_records":[{"字段名或字段ID": CellValue}, ...]}`,数组中的每个对象代表一条新 Record。
|
|
11
|
+
- `+record-batch-update --json` 使用 `{"update_records":{"rec_xxx":{"字段名或字段ID": CellValue}, ...}}`,以 `record_id` 定位每条待更新 Record。
|
|
13
12
|
- 一次 payload 里同一字段只用一种 key(字段名或字段 ID),不要重复。
|
|
14
13
|
- 写入前先 `+field-list` 获取字段 `type/style/multiple`,再构造值。
|
|
15
14
|
- 需要清空字段时优先传 `null`(字段允许清空时)。
|
|
@@ -119,7 +118,9 @@ text 字段的 `style.type` 影响单元格检查逻辑:
|
|
|
119
118
|
|
|
120
119
|
### 2.8 location
|
|
121
120
|
|
|
122
|
-
|
|
121
|
+
- 读取:`{lng, lat, full_address}`,三个成员均非空。
|
|
122
|
+
- 写入:`{lng, lat}`,经纬度均为数字;`full_address` 由平台根据坐标解析,不允许手动指定。
|
|
123
|
+
- 筛选行为:按照 `full_address` 做字符串筛选,将 Location 当作文本列使用文本 operator。
|
|
123
124
|
|
|
124
125
|
```json
|
|
125
126
|
{
|
|
@@ -130,7 +131,6 @@ text 字段的 `style.type` 影响单元格检查逻辑:
|
|
|
130
131
|
}
|
|
131
132
|
```
|
|
132
133
|
|
|
133
|
-
读取单元格时,非空 location 为 `{lng, lat, full_address}`,三个成员均非空,`full_address` 是字符串;筛选、转文本等场景使用 `full_address`,只有公式能访问坐标。如果用户只给地址文本,先获取或确认坐标后再写入;不要把仅有地址文本直接当作 location CellValue。
|
|
134
134
|
|
|
135
135
|
### 2.9 attachment(不作为普通 CellValue 写入)
|
|
136
136
|
|
|
@@ -142,23 +142,18 @@ text 字段的 `style.type` 影响单元格检查逻辑:
|
|
|
142
142
|
|
|
143
143
|
## 3. 只读字段(不要写)
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
- `auto_number`
|
|
147
|
-
- `lookup`
|
|
148
|
-
- `formula`
|
|
149
|
-
- `created_at` / `updated_at`
|
|
150
|
-
- `created_by` / `updated_by`
|
|
145
|
+
写记录时,`auto_number`、`lookup`、`formula`、`created_at/updated_at`、`created_by/updated_by` 均为只读字段。
|
|
151
146
|
|
|
152
147
|
写入只读字段通常不会更新数据;返回里可能出现 `ignored_fields`,reason 会说明 `READONLY`。看到这种返回时,不要重试同一 payload,应移除只读字段,只写存储字段。
|
|
153
148
|
|
|
154
|
-
读取单元格时,`auto_number`、`formula`、`lookup` 为 `string|null`;`created_at`、`updated_at`
|
|
149
|
+
读取单元格时,`auto_number`、`formula`、`lookup` 为 `string | null`;`created_at`、`updated_at` 为 RFC3339 字符串或 `null`;`created_by`、`updated_by` 为 `array<{id, name}>`。
|
|
155
150
|
|
|
156
151
|
## 4. 完整示例
|
|
157
152
|
|
|
158
153
|
```json
|
|
159
154
|
{
|
|
160
155
|
"标题": "Created from shortcut",
|
|
161
|
-
"状态": "Todo",
|
|
156
|
+
"状态": ["Todo"],
|
|
162
157
|
"标签": ["高优", "外部依赖"],
|
|
163
158
|
"工时": 8,
|
|
164
159
|
"截止时间": "2026-03-24 10:00",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Base Dashboard Block 配置
|
|
2
2
|
|
|
3
|
-
Block 的 `data_config` 字段因 `type` 不同而变化。本文档是
|
|
3
|
+
Block 的 `data_config` 字段因 `type` 不同而变化。本文档是 Dashboard block 扁平单数据源 `data_config` 的单一事实来源(SSOT),包含组件类型、字段结构、筛选格式、约束和可复制模板。BaseApp 图表的外层结构不同,但每个 `data_sources[]` 元素复用本文的字段取值、筛选、分组、排序及规范化规则;创建或更新 App 组件时,还必须读取 [BaseApp Block data_config](lark-base-app-block-data-config.md) 了解共享 `base_token`、多数据源封装,以及 App 独有的列表组件协议。
|
|
4
4
|
|
|
5
5
|
## 支持的组件类型(`type` 枚举)
|
|
6
6
|
|
|
@@ -29,11 +29,13 @@ text: is, isNot, contains, doesNotContain, isEmpty, isNotEmpty
|
|
|
29
29
|
number: is, isNot, isGreater, isGreaterEqual, isLess, isLessEqual, isEmpty, isNotEmpty
|
|
30
30
|
select(multiple=false): is, isNot, isEmpty, isNotEmpty
|
|
31
31
|
select(multiple=true): is, isNot, contains, doesNotContain, isEmpty, isNotEmpty
|
|
32
|
-
datetime: is, isGreater,
|
|
32
|
+
datetime: is, isGreater, isLess, isEmpty, isNotEmpty
|
|
33
33
|
checkbox: is (value: true/false)
|
|
34
34
|
user / created_by / updated_by: is, isNot, isEmpty, isNotEmpty
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
+
`isGreaterEqual` / `isLessEqual` 不是全局不支持:它们可用于 `number`,但不能用于 `datetime` / `created_at` / `updated_at`。日期范围必须用 `isGreater` / `isLess` 配合 `ExactDate`;不要把数字字段的操作符集合套到日期字段上。
|
|
38
|
+
|
|
37
39
|
## data_config 通用结构
|
|
38
40
|
|
|
39
41
|
| 字段 | 类型 | 说明 |
|
|
@@ -156,12 +158,42 @@ user / created_by / updated_by: is, isNot, isEmpty, isNotEmpty
|
|
|
156
158
|
| `number` | number | is, isNot, isGreater, isGreaterEqual, isLess, isLessEqual, isEmpty, isNotEmpty | `{"field_name":"金额","operator":"isGreater","value":0}` |
|
|
157
159
|
| `select` (`multiple=false`) | string(选项名) | is, isNot, isEmpty, isNotEmpty | `{"field_name":"状态","operator":"is","value":"已完成"}` |
|
|
158
160
|
| `select` (`multiple=true`) | string[](选多个)/ string(选单个) | is, isNot, contains, doesNotContain, isEmpty, isNotEmpty | 多选传数组如 `["标签1","标签2"]`;单选传单个字符串 |
|
|
159
|
-
| `datetime` / `created_at` / `updated_at` |
|
|
161
|
+
| `datetime` / `created_at` / `updated_at` | `["ExactDate", Unix 毫秒时间戳]` | is, isGreater, isLess, isEmpty, isNotEmpty | `{"field_name":"创建日期","operator":"isGreater","value":["ExactDate",1704038400000]}` |
|
|
160
162
|
| `checkbox` | boolean | is | `{"field_name":"已审核","operator":"is","value":true}` |
|
|
161
163
|
| `user` / `created_by` / `updated_by` | string 或 string[](用户 ID,格式 `ou_xxx`)。不知道 `open_id` 时先用 `lark-cli contact +search-user --query "<姓名/邮箱/手机号>" --as user` 查 id。 | is, isNot, isEmpty, isNotEmpty | `{"field_name":"负责人","operator":"is","value":"ou_xxxxxxxxxxxxxxxx"}` |
|
|
162
164
|
| 所有类型(为空/不为空) | 不需要 value | isEmpty, isNotEmpty | `{"field_name":"备注","operator":"isEmpty"}` |
|
|
163
165
|
|
|
164
|
-
> `value`
|
|
166
|
+
> `value` 类型因字段而异,可为 `string | number | boolean | string[] | ["ExactDate", number]`,需按上表构造。
|
|
167
|
+
|
|
168
|
+
### 日期筛选
|
|
169
|
+
|
|
170
|
+
图表 `data_config.filter` 筛选 `datetime` / `created_at` / `updated_at` 字段时:
|
|
171
|
+
|
|
172
|
+
- 有值条件只能使用 `is`、`isGreater` 或 `isLess`,不得使用 `isGreaterEqual` 或 `isLessEqual`。
|
|
173
|
+
- `value` 必须写成 `["ExactDate", <Unix 毫秒时间戳>]`,不得直接传裸时间戳。
|
|
174
|
+
- `isEmpty` / `isNotEmpty` 不传 `value`。
|
|
175
|
+
|
|
176
|
+
日期区间示例:
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"filter": {
|
|
181
|
+
"conjunction": "and",
|
|
182
|
+
"conditions": [
|
|
183
|
+
{
|
|
184
|
+
"field_name": "派单日期",
|
|
185
|
+
"operator": "isGreater",
|
|
186
|
+
"value": ["ExactDate", 1785686400000]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"field_name": "派单日期",
|
|
190
|
+
"operator": "isLess",
|
|
191
|
+
"value": ["ExactDate", 1786032000000]
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
```
|
|
165
197
|
|
|
166
198
|
## 约束与本地校验
|
|
167
199
|
|
|
@@ -730,4 +730,4 @@ GET /open-apis/base/v3/bases/bascn_example_token/dashboards/blocks/chtxxxxxxxx/d
|
|
|
730
730
|
|
|
731
731
|
- [lark-base-dashboard.md](lark-base-dashboard.md) — dashboard 模块总指引
|
|
732
732
|
- `+dashboard-block-get` — 获取 block 元数据
|
|
733
|
-
- [
|
|
733
|
+
- [Dashboard Block 配置](lark-base-dashboard-block-config.md) — data_config 结构和组件类型说明
|
|
@@ -15,8 +15,8 @@ Dashboard 是 Base 中的数据可视化看板,可以把表格数据变成**
|
|
|
15
15
|
| 你想做什么 | 用这些命令 | 关键文档 |
|
|
16
16
|
|------|-----------|---------|
|
|
17
17
|
| 创建/删除/改名称 | `+dashboard-create/delete/update` | 本页下方「仪表盘管理」 |
|
|
18
|
-
| 在仪表盘里添加组件 | `+dashboard-block-create` | 先定位 dashboard、表和字段,再读 [
|
|
19
|
-
| 修改组件 | `+dashboard-block-update` | 先读 block 现状,再读 [
|
|
18
|
+
| 在仪表盘里添加组件 | `+dashboard-block-create` | 先定位 dashboard、表和字段,再读 [Dashboard Block 配置](lark-base-dashboard-block-config.md) 构造 `data_config` |
|
|
19
|
+
| 修改组件 | `+dashboard-block-update` | 先读 block 现状,再读 [Dashboard Block 配置](lark-base-dashboard-block-config.md) 决定替换哪些顶层 key |
|
|
20
20
|
| 查看仪表盘有哪些组件 | `+dashboard-get` 或 `+dashboard-block-list` | 本页下方「查看仪表盘」 |
|
|
21
21
|
| 读取图表计算结果 | `+dashboard-block-get-data` | 返回图表最终数据协议;需要 block 元数据先用 `+dashboard-block-get` |
|
|
22
22
|
| 智能重排组件布局 | `+dashboard-arrange` | 用户明确要求重排,或本次会话新建仪表盘的收尾整理;无法指定 `x/y/w/h`、精确位置或尺寸 |
|
|
@@ -48,7 +48,7 @@ lark-cli base +field-list --base-token xxx --table-id <table_id>
|
|
|
48
48
|
|
|
49
49
|
# 第 4 步:顺序创建每个组件(必须串行执行,不能并发)
|
|
50
50
|
# 重要:创建组件前,先确定 dashboard_id、组件 name/type 和真实表字段
|
|
51
|
-
# 再阅读 dashboard-block-
|
|
51
|
+
# 再阅读 lark-base-dashboard-block-config.md 了解 data_config 结构、组件类型和 filter 规则
|
|
52
52
|
|
|
53
53
|
# 第 1 个组件
|
|
54
54
|
lark-cli base +dashboard-block-create \
|
|
@@ -93,7 +93,7 @@ lark-cli base +field-list --base-token xxx --table-id <table_id>
|
|
|
93
93
|
|
|
94
94
|
# 第 4 步:顺序创建每个新组件(必须串行执行,不能并发)
|
|
95
95
|
# 重要:先确定 dashboard_id、组件 name/type 和真实表字段
|
|
96
|
-
# 再阅读 dashboard-block-
|
|
96
|
+
# 再阅读 lark-base-dashboard-block-config.md 了解 data_config 结构
|
|
97
97
|
lark-cli base +dashboard-block-create \
|
|
98
98
|
--base-token xxx \
|
|
99
99
|
--dashboard-id blk_xxx \
|
|
@@ -127,7 +127,7 @@ lark-cli base +field-list --base-token xxx --table-id <table_id>
|
|
|
127
127
|
|
|
128
128
|
# 第 5 步:执行更新
|
|
129
129
|
# 重要:先读取当前 block 的 name/type/data_config
|
|
130
|
-
# 再阅读 dashboard-block-
|
|
130
|
+
# 再阅读 lark-base-dashboard-block-config.md 了解 data_config 更新规则
|
|
131
131
|
lark-cli base +dashboard-block-update \
|
|
132
132
|
--base-token xxx \
|
|
133
133
|
--dashboard-id blk_xxx \
|
|
@@ -169,7 +169,7 @@ lark-cli base +dashboard-arrange \
|
|
|
169
169
|
|
|
170
170
|
1. 图表或指标卡:使用方式 D 读取计算结果。
|
|
171
171
|
2. `text`:使用方式 C,正文位于 `data_config.text`;text 没有计算结果,但属于完整仪表盘内容。
|
|
172
|
-
3. get-data 返回不支持的图表类型:先用方式 C 读取真实 `data_config`,确认 `table_name`、维度、指标、聚合与筛选,再按 [
|
|
172
|
+
3. get-data 返回不支持的图表类型:先用方式 C 读取真实 `data_config`,确认 `table_name`、维度、指标、聚合与筛选,再按 [Record 查询与分析 SOP](lark-base-record-query-and-analysis-sop.md) 使用 `+data-query` 重建同口径结果。字段必须来自真实配置和表结构,不得猜测;无法等价重建时明确报告限制,不能静默省略该 block。
|
|
173
173
|
|
|
174
174
|
```bash
|
|
175
175
|
# 第 1 步:列出仪表盘,定位到当前仪表盘
|
|
@@ -209,14 +209,14 @@ lark-cli base +dashboard-block-get-data --base-token xxx --block-id chtxxxxxxxx
|
|
|
209
209
|
| 单个关键指标 | statistics | 指标卡组件 |
|
|
210
210
|
| 富文本说明/标题/注释 | text | 文本组件(支持 Markdown) |
|
|
211
211
|
|
|
212
|
-
详细组件类型和 data_config 完整规则:[
|
|
212
|
+
详细组件类型和 data_config 完整规则:[Dashboard Block 配置](lark-base-dashboard-block-config.md)
|
|
213
213
|
|
|
214
214
|
## 常见问题
|
|
215
215
|
|
|
216
216
|
**Q: 创建组件的命令和 data_config 怎么写?**
|
|
217
217
|
A:
|
|
218
218
|
1. 先确定 `dashboard_id`、组件 `name`、组件 `type` 和真实表字段
|
|
219
|
-
2. 再读 [
|
|
219
|
+
2. 再读 [Dashboard Block 配置](lark-base-dashboard-block-config.md) 了解:
|
|
220
220
|
- 全部组件类型的可复制模板
|
|
221
221
|
- filter 筛选条件格式
|
|
222
222
|
- 字段类型与操作符对应表
|
|
@@ -237,7 +237,7 @@ A: 不能。`+dashboard-block-update` 只能修改 `name` 和 `data_config`,
|
|
|
237
237
|
**Q: 更新组件的命令和 data_config 怎么写?**
|
|
238
238
|
A:
|
|
239
239
|
1. 先读取当前 block,确认 `block_id`、当前 `type` 和已有 `data_config`
|
|
240
|
-
2. 再读 [
|
|
240
|
+
2. 再读 [Dashboard Block 配置](lark-base-dashboard-block-config.md) 了解 data_config 结构
|
|
241
241
|
|
|
242
242
|
**data_config 更新策略(顶层 key merge)**:
|
|
243
243
|
- 只传入需要修改的顶层字段(如 `series`、`filter`)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
# Base data-query DSL
|
|
2
|
+
# Base data-query DSL reference
|
|
3
3
|
|
|
4
|
-
>
|
|
4
|
+
> **前置路由**: [Record 查询与分析 SOP](lark-base-record-query-and-analysis-sop.md) | **认证或授权问题**: [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
本文档合并常用 fewshot 与完整 DSL 协议。只有 [Record 查询与分析 SOP](lark-base-record-query-and-analysis-sop.md) 的 Cloud 路径选定 `+data-query` 后才读取,并优先定位与当前查询有关的示例、字段或错误协议。
|
|
7
7
|
|
|
8
8
|
## 限制
|
|
9
9
|
|
|
@@ -453,6 +453,6 @@ CLI 输出标准信封 `{ok, identity, data}`(失败时为 `{ok:false, identit
|
|
|
453
453
|
|
|
454
454
|
- [lark-base](../SKILL.md) — 多维表格全部命令
|
|
455
455
|
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
456
|
-
- [lark-base-
|
|
456
|
+
- [Cloud SOP](lark-base-record-query-and-analysis-cloud-sop.md) — Cloud 路径的查询范围、下推、分页、`+record-list` / `+record-search` 回查和关系查询
|
|
457
457
|
- [lark-base-cell-value.md](lark-base-cell-value.md) — CellValue 格式规范
|
|
458
|
-
- [
|
|
458
|
+
- [Field Schema](lark-base-field-schema.md) — 字段类型与 JSON 结构
|
|
@@ -2,15 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
创建一个或多个字段;同一表的多个字段优先使用一次 JSON 数组输入。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
1. 先判断是不是 `formula` / `lookup`。
|
|
10
|
-
2. 如果是:先读对应 guide。
|
|
11
|
-
3. 没读 guide 前,不要直接创建 formula / lookup 字段。
|
|
12
|
-
4. 读完 guide 后,再构造 `--json` 并创建字段。
|
|
13
|
-
5. 如果是跨表 formula / lookup,再补查**目标表**的结构。
|
|
7
|
+
`formula` / `lookup` 创建前读取对应 guide;涉及跨表引用时同时读取目标表结构。
|
|
14
8
|
|
|
15
9
|
## 推荐命令
|
|
16
10
|
|
|
@@ -25,11 +19,6 @@ lark-cli base +field-create \
|
|
|
25
19
|
--table-id <table_id> \
|
|
26
20
|
--json '{"name":"状态","type":"select","multiple":false,"default_value":["Todo"],"options":[{"name":"Todo","hue":"Blue","lightness":"Lighter"},{"name":"Done","hue":"Green","lightness":"Light"}]}'
|
|
27
21
|
|
|
28
|
-
lark-cli base +field-create \
|
|
29
|
-
--base-token <base_token> \
|
|
30
|
-
--table-id <table_id> \
|
|
31
|
-
--json '{"name":"负责人","type":"user","multiple":false,"default_value":[{"$slot":"current_user"}],"description":"用于标记记录的直接负责人;协作约定可参考[团队字段约定](https://example.com/field-spec)"}'
|
|
32
|
-
|
|
33
22
|
# 多个字段复用相同字段 JSON 形状,一次传非空数组
|
|
34
23
|
lark-cli base +field-create \
|
|
35
24
|
--base-token <base_token> \
|
|
@@ -56,10 +45,10 @@ POST /open-apis/base/v3/bases/:base_token/tables/:table_id/fields
|
|
|
56
45
|
## JSON 值规范
|
|
57
46
|
|
|
58
47
|
- `--json` 接受单个字段 **JSON 对象**,也接受多个字段对象组成的非空数组;不要再套 `fields` 等外层对象。
|
|
59
|
-
-
|
|
48
|
+
- 数组按顺序创建字段,遇到首个失败即停止且不自动回滚;部分失败时保留 `items` 中的 `created` 项,按 `hint` 修正后只提交 `failed` 和 `not_attempted` 项,并保持依赖顺序。
|
|
60
49
|
- 每个字段对象最少包含:`name`、`type`。
|
|
61
50
|
- 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接,如 `协作约定可参考[团队字段约定](https://example.com/field-spec)`。
|
|
62
|
-
- 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;`datetime` / `user` 的动态填充用 `$slot`。完整规则见 [
|
|
51
|
+
- 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;`datetime` / `user` 的动态填充用 `$slot`。完整规则见 [Field Schema](lark-base-field-schema.md)。
|
|
63
52
|
- `type` 不同,必填子字段不同:
|
|
64
53
|
- `select`:`multiple` 控制是否多选,`options` 定义静态选项,`dynamic_options_source` 定义动态选项来源。静态与动态选项配置二选一,不能同时传。
|
|
65
54
|
- `link`:必须有 `link_table`,可选 `bidirectional`、`bidirectional_link_field_name`。
|
|
@@ -81,40 +70,8 @@ POST /open-apis/base/v3/bases/:base_token/tables/:table_id/fields
|
|
|
81
70
|
}
|
|
82
71
|
```
|
|
83
72
|
|
|
84
|
-
**字段说明示例**
|
|
85
|
-
|
|
86
|
-
```json
|
|
87
|
-
{
|
|
88
|
-
"name": "负责人",
|
|
89
|
-
"type": "user",
|
|
90
|
-
"multiple": false,
|
|
91
|
-
"description": "用于标记记录的直接负责人;协作约定可参考[团队字段约定](https://example.com/field-spec)"
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## 返回重点
|
|
96
|
-
|
|
97
|
-
- 单字段返回 `field` 和 `created: true`;多字段完整返回服务端 `fields`、`total` 和 `created: true`。
|
|
98
|
-
- 大数组成功时若不需要逐字段 ID,可追加 `--jq 'if .ok then (.data | {created,total,field_get_recommended,next_step,verification_hint}) else . end'` 控制 stdout 大小;失败分支仍保留完整部分失败明细。需要逐字段 ID 时不要使用该投影。
|
|
99
|
-
- 数组部分失败返回 `ok:false`、`summary` 和有序 `items`,保留已创建字段及 ID、失败项和未执行项。`failed` 项保留 `type`、`subtype`、`code`、`hint`、`retryable`、`log_id`、`troubleshooter`,以及原 typed error 已有的扩展字段,例如权限错误的 `missing_scopes`、`identity`、`console_url` 或安全策略错误的 `challenge_url`;扩展键与部分失败账本的 `index`、`status`、`field`、`error` 冲突时,以带 `error_` 前缀的无冲突别名输出(例如 `field` → `error_field`)。
|
|
100
|
-
- 部分失败统一返回 `next_step:"inspect_items"`;`field_get_recommended` 仅表示已创建字段是否建议读回。`retryable:true` 只表示该 `failed` 项可原样自动重试;否则先按该项 `hint` 完成授权或修正输入,再重新提交该项。`not_attempted` 项应单独继续。
|
|
101
|
-
- 调用方超时且未收到命令终态输出时,不要重投整个数组;先按本次提交的字段名定向读回,再只提交缺失项。没有写前快照时,读回命中的同名项只能标记为 `ambiguous`,不得计作本轮 `created`。
|
|
102
|
-
- 完整成功且返回 `field_get_recommended:false`、`next_step:"done"` 时直接结束;除非用户明确要求读回或额外属性,否则不要再执行 `+field-list/get`。确需核验时用 `--jq` 过滤 `+field-list`,不要把全部字段打印进上下文。
|
|
103
|
-
- `field_get_recommended:true` 表示完成当前 `next_step` 后按 `verification_hint` 读回;完整成功时 `next_step:"field_get"` 表示可直接读回。`formula`、`lookup`、`link`、`auto_number` 等字段更适合读回确认服务端最终结构。
|
|
104
|
-
|
|
105
|
-
## 工作流
|
|
106
|
-
|
|
107
|
-
1. formula / lookup 字段必须先阅读对应指南;没读之前不要直接创建。
|
|
108
|
-
2. 创建简单字段时,优先相信命令返回;只有用户要求精确核对额外属性,或返回建议读回时,才继续执行 `+field-get`。
|
|
109
|
-
|
|
110
|
-
## 坑点
|
|
111
|
-
|
|
112
|
-
- ⚠️ 这是写入操作,执行前必须确认。
|
|
113
|
-
- ⚠️ 当 `type` 是 `formula` 或 `lookup` 时,先读对应 guide,再创建。
|
|
114
|
-
- ⚠️ 不要把“每次创建后都 `+field-get`”当作固定流程;按返回里的 `field_get_recommended` 和 `next_step` 决定是否读回。
|
|
115
|
-
|
|
116
73
|
## 参考
|
|
117
74
|
|
|
118
|
-
- [
|
|
119
|
-
- [
|
|
120
|
-
- [
|
|
75
|
+
- [Field Schema](lark-base-field-schema.md) — 字段 JSON 规范(推荐)
|
|
76
|
+
- [Formula Field](lark-base-field-formula.md) — 创建公式必读
|
|
77
|
+
- [Lookup Field](lark-base-field-lookup.md) — 创建查找引用必读
|