@amaster.ai/pi-lark 0.1.8 → 0.1.10
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/README.md +1 -3
- package/package.json +2 -2
- package/skills/lark-apps/SKILL.md +3 -1
- package/skills/lark-apps/references/lark-apps-cache.md +38 -5
- package/skills/lark-apps/references/lark-apps-db.md +130 -2
- package/skills/lark-apps/references/lark-apps-user-id-convert.md +63 -0
- package/skills/lark-base/SKILL.md +172 -167
- 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 +243 -0
- package/skills/lark-base/references/lark-base-cell-value.md +26 -19
- package/skills/lark-base/references/{dashboard-block-data-config.md → lark-base-dashboard-block-config.md} +65 -6
- package/skills/lark-base/references/lark-base-dashboard-block-get-data.md +1 -1
- package/skills/lark-base/references/lark-base-dashboard.md +38 -20
- package/skills/lark-base/references/lark-base-data-analysis-pandas.md +93 -0
- package/skills/lark-base/references/lark-base-data-analysis-python-stdlib.md +120 -0
- package/skills/lark-base/references/lark-base-data-query.md +8 -11
- 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} +25 -101
- package/skills/lark-base/references/lark-base-field-update.md +13 -51
- package/skills/lark-base/references/lark-base-filter-condition.md +19 -31
- package/skills/lark-base/references/lark-base-form-questions-create.md +36 -5
- 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-record-history-list.md +19 -2
- package/skills/lark-base/references/lark-base-record-query-and-analysis-cloud-sop.md +145 -0
- package/skills/lark-base/references/lark-base-record-query-and-analysis-sop.md +233 -0
- package/skills/lark-base/references/{role-config.md → lark-base-role-config.md} +2 -2
- package/skills/lark-base/references/lark-base-template-center.md +195 -0
- 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/SKILL.md +11 -6
- package/skills/lark-calendar/references/lark-calendar-create.md +4 -3
- package/skills/lark-calendar/references/lark-calendar-transfer.md +89 -0
- package/skills/lark-doc/SKILL.md +3 -3
- package/skills/lark-doc/references/lark-doc-fetch.md +9 -4
- package/skills/lark-doc/references/lark-doc-update.md +12 -8
- package/skills/lark-drive/SKILL.md +5 -3
- package/skills/lark-drive/references/lark-drive-add-comment.md +2 -2
- package/skills/lark-drive/references/lark-drive-download.md +27 -1
- package/skills/lark-drive/references/lark-drive-export.md +1 -0
- package/skills/lark-drive/references/lark-drive-member-remove.md +59 -0
- package/skills/lark-drive/references/lark-drive-preview.md +21 -2
- package/skills/lark-drive/references/lark-drive-push.md +5 -1
- package/skills/lark-drive/references/lark-drive-search.md +2 -0
- package/skills/lark-im/SKILL.md +14 -3
- package/skills/lark-im/references/lark-im-message-read-status.md +96 -0
- package/skills/lark-mail/references/lark-mail-draft-create.md +12 -12
- package/skills/lark-mail/references/lark-mail-forward.md +17 -17
- package/skills/lark-mail/references/lark-mail-reply-all.md +8 -8
- package/skills/lark-mail/references/lark-mail-reply.md +6 -6
- package/skills/lark-mail/references/lark-mail-send.md +20 -20
- package/skills/lark-mail/references/lark-mail-template-create.md +7 -6
- package/skills/lark-mail/references/lark-mail-template-update.md +7 -6
- package/skills/lark-meeting/SKILL.md +146 -0
- package/skills/lark-meeting/references/lark-minutes-apply-permission.md +92 -0
- package/skills/lark-meeting/references/lark-minutes-detail.md +52 -0
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-download.md +7 -7
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-search.md +4 -34
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-speaker-replace.md +3 -4
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-summary.md +2 -5
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-todo.md +5 -15
- package/skills/{lark-minutes → lark-meeting}/references/lark-minutes-update.md +2 -3
- package/skills/lark-meeting/references/lark-minutes-upload.md +65 -0
- package/skills/lark-meeting/references/lark-note-detail.md +15 -0
- package/skills/{lark-note → lark-meeting}/references/lark-note-transcript.md +5 -9
- package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-join.md +4 -55
- package/skills/{lark-vc-agent → lark-meeting}/references/lark-vc-agent-meeting-leave.md +2 -41
- package/skills/lark-meeting/references/lark-vc-detail.md +31 -0
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-events.md → lark-meeting/references/lark-vc-meeting-events.md} +120 -109
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-list-active.md → lark-meeting/references/lark-vc-meeting-list-active.md} +4 -29
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-message-send.md → lark-meeting/references/lark-vc-meeting-message-send.md} +3 -5
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-recording.md +5 -64
- package/skills/{lark-vc → lark-meeting}/references/lark-vc-search.md +9 -28
- package/skills/lark-meeting/scenes/create-and-edit-minutes.md +125 -0
- package/skills/lark-meeting/scenes/live-meeting-attend.md +107 -0
- package/skills/lark-meeting/scenes/live-meeting-interact.md +72 -0
- package/skills/lark-meeting/scenes/query-meeting-and-artifacts.md +90 -0
- package/skills/lark-meeting/scenes/query-minutes-and-artifacts.md +70 -0
- package/skills/lark-meeting/scenes/query-note-and-artifacts.md +127 -0
- package/skills/lark-minutes/SKILL.md +5 -197
- package/skills/lark-note/SKILL.md +5 -84
- package/skills/lark-shared/SKILL.md +25 -188
- package/skills/lark-shared/references/lark-shared-config-init.md +12 -0
- package/skills/lark-shared/references/lark-shared-high-risk-approval.md +38 -0
- package/skills/lark-shared/references/lark-shared-identity-and-permissions.md +105 -0
- package/skills/lark-shared/references/lark-shared-output-contract.md +17 -0
- package/skills/lark-shared/references/lark-shared-update-notice.md +23 -0
- package/skills/lark-slides/SKILL.md +56 -54
- package/skills/lark-slides/references/cli/lark-slides-add-slide.md +92 -0
- package/skills/lark-slides/references/cli/lark-slides-create.md +176 -0
- package/skills/lark-slides/references/cli/lark-slides-delete-slide.md +65 -0
- package/skills/lark-slides/references/cli/lark-slides-history.md +132 -0
- package/skills/lark-slides/references/cli/lark-slides-media-upload.md +103 -0
- package/skills/lark-slides/references/cli/lark-slides-replace-slide.md +259 -0
- package/skills/lark-slides/references/cli/lark-slides-screenshot.md +115 -0
- package/skills/lark-slides/references/{lark-slides-update-slide.md → cli/lark-slides-update-slide.md} +21 -4
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-get.md +110 -0
- package/skills/lark-slides/references/cli/lark-slides-xml-presentation-slide-replace.md +188 -0
- package/skills/lark-slides/references/cli/lark-slides-xml-presentations-get.md +157 -0
- package/skills/lark-slides/references/iconpark-index.json +5 -41901
- package/skills/lark-slides/references/iconpark.md +3 -44
- package/skills/lark-slides/references/lark-slides-add-slide.md +3 -90
- package/skills/lark-slides/references/lark-slides-create.md +3 -174
- package/skills/lark-slides/references/lark-slides-delete-slide.md +3 -63
- package/skills/lark-slides/references/lark-slides-edit-workflows.md +3 -141
- package/skills/lark-slides/references/lark-slides-history.md +3 -130
- package/skills/lark-slides/references/lark-slides-media-upload.md +3 -102
- package/skills/lark-slides/references/lark-slides-pptx-template-workflows.md +3 -83
- package/skills/lark-slides/references/lark-slides-replace-slide.md +3 -256
- package/skills/lark-slides/references/lark-slides-screenshot.md +3 -113
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-get.md +3 -108
- package/skills/lark-slides/references/lark-slides-xml-presentation-slide-replace.md +3 -186
- package/skills/lark-slides/references/lark-slides-xml-presentations-get.md +3 -155
- package/skills/lark-slides/references/planning-layer.md +1 -1
- package/skills/lark-slides/references/slides_chart_demo.xml +5 -1415
- package/skills/lark-slides/references/slides_xml_schema_definition.xml +3 -3512
- package/skills/lark-slides/references/troubleshooting.md +3 -60
- package/skills/lark-slides/references/validation-checklist.md +3 -154
- package/skills/lark-slides/references/workflow/error-handling.md +62 -0
- package/skills/lark-slides/references/workflow/slides-editing.md +143 -0
- package/skills/lark-slides/references/workflow/template-editing.md +85 -0
- package/skills/lark-slides/references/workflow/validation-xml.md +156 -0
- package/skills/lark-slides/references/xml/iconpark-index.json +37458 -0
- package/skills/lark-slides/references/xml/iconpark.md +46 -0
- package/skills/lark-slides/references/xml/slides_chart_demo.xml +1415 -0
- package/skills/lark-slides/references/xml/slides_xml_schema_definition.xml +3601 -0
- package/skills/lark-slides/references/xml/xml-schema-quick-ref.md +497 -0
- package/skills/lark-slides/references/xml-schema-quick-ref.md +3 -495
- package/skills/lark-slides/scripts/iconpark_tool.py +1 -1
- package/skills/lark-slides/scripts/xml_lint.py +2989 -0
- package/skills/lark-slides/scripts/xml_lint_test.py +4720 -0
- package/skills/lark-slides/scripts/xml_text_overlap_lint.py +3 -2975
- package/skills/lark-slides/scripts/xml_text_overlap_lint_test.py +5 -4712
- package/skills/lark-task/SKILL.md +13 -1
- package/skills/lark-task/references/lark-task-create.md +3 -1
- package/skills/lark-vc/SKILL.md +5 -195
- package/skills/lark-vc-agent/SKILL.md +5 -191
- package/skills/lark-wiki/SKILL.md +3 -1
- package/skills/lark-wiki/references/lark-wiki-node-copy.md +5 -19
- package/skills/lark-wiki/references/lark-wiki-node-create.md +19 -2
- package/skills/lark-wiki/references/lark-wiki-node-get.md +15 -0
- package/skills/lark-wiki/references/lark-wiki-node-list.md +1 -1
- package/skills/lark-workflow-meeting-summary/SKILL.md +20 -13
- package/skills/lark-base/references/lark-base-data-analysis-sop.md +0 -210
- package/skills/lark-base/references/lark-base-data-query-guide.md +0 -69
- package/skills/lark-base/references/lark-base-record-upsert.md +0 -63
- package/skills/lark-minutes/references/lark-minutes-detail.md +0 -62
- package/skills/lark-minutes/references/lark-minutes-upload.md +0 -104
- package/skills/lark-note/references/lark-note-detail.md +0 -26
- package/skills/lark-vc/references/lark-vc-detail.md +0 -44
- package/skills/lark-vc/references/vc-domain-boundaries.md +0 -196
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Base
|
|
1
|
+
# Base Field Schema
|
|
2
2
|
|
|
3
3
|
> 适用命令:`lark-cli base +field-create`、`lark-cli base +field-update`
|
|
4
4
|
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
- `+field-create --json` 接受一个字段对象或非空字段对象数组。
|
|
11
11
|
- `+field-update --json` 只接受一个字段对象。
|
|
12
12
|
- 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接。
|
|
13
|
-
- 字段默认值使用 `default_value`,直接传对应 CellValue;支持范围只有 `text`、`number`、静态 `select`、`datetime`、`user`。清空默认值传 `null
|
|
13
|
+
- 字段默认值使用 `default_value`,直接传对应 CellValue;支持范围只有 `text`、`number`、静态 `select`、`datetime`、`user`。清空默认值传 `null`;创建时省略表示不设置。
|
|
14
14
|
- 不要使用旧结构:`field_name`、`property`、`ui_type`、数字枚举 `type`。
|
|
15
|
-
- `+field-update`
|
|
15
|
+
- `+field-update` 是 override 式的完整覆盖 `PUT`,不是 partial update;先用 `+field-get` 读取当前定义,在其基础上修改目标属性,并把整个字段需要保留的可写配置完整写回,同时带 `--yes`。
|
|
16
16
|
- `type=formula` 或 `type=lookup` 创建/更新前,必须先读对应 guide。
|
|
17
17
|
|
|
18
18
|
推荐示例:
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
| `lookup` | `type` `name` `from` `select` `where` | `aggregate` |
|
|
42
42
|
| `auto_number` | `type` `name` | `style.rules` |
|
|
43
43
|
| `attachment` / `location` / `checkbox` | `type` `name` | 无 |
|
|
44
|
+
| `button` | `type` `name` `button_config.title` | 无 |
|
|
44
45
|
|
|
45
46
|
所有类型都可额外传 `description`;上表的“常见补充字段”只列类型特有配置。
|
|
46
47
|
|
|
@@ -185,7 +186,7 @@
|
|
|
185
186
|
- `icon` 默认 `star`
|
|
186
187
|
- `icon` 可用:`star`、`heart`、`thumbsup`、`fire`、`smile`、`lightning`、`flower`、`number`
|
|
187
188
|
- `min` 取值 `0..1`,默认 `1`
|
|
188
|
-
- `max`
|
|
189
|
+
- `max` 取值 `1..10`,默认 `5`
|
|
189
190
|
|
|
190
191
|
```json
|
|
191
192
|
{
|
|
@@ -229,6 +230,8 @@
|
|
|
229
230
|
|
|
230
231
|
#### 动态选项
|
|
231
232
|
|
|
233
|
+
当新字段要引用或复用另一选项字段的选项列表时,优先使用 `dynamic_options_source`,避免重复定义和维护 `options`。
|
|
234
|
+
|
|
232
235
|
支持字段:`multiple`、`dynamic_options_source`
|
|
233
236
|
动态选项不支持 `default_value`。
|
|
234
237
|
|
|
@@ -264,7 +267,7 @@
|
|
|
264
267
|
{
|
|
265
268
|
"type": "datetime",
|
|
266
269
|
"name": "截止时间",
|
|
267
|
-
"default_value": "2026-03-24 10:00
|
|
270
|
+
"default_value": "2026-03-24 10:00"
|
|
268
271
|
}
|
|
269
272
|
```
|
|
270
273
|
|
|
@@ -272,7 +275,7 @@
|
|
|
272
275
|
|
|
273
276
|
默认值 / 约束:
|
|
274
277
|
- `style.format` 默认 `yyyy/MM/dd` 可用格式:`yyyy/MM/dd`、`yyyy/MM/dd HH:mm`、`yyyy/MM/dd HH:mm Z`、`yyyy-MM-dd`、`yyyy-MM-dd HH:mm`、`yyyy-MM-dd HH:mm Z`、`MM-dd`、`MM/dd/yyyy`、`dd/MM/yyyy`
|
|
275
|
-
- `style.format`
|
|
278
|
+
- `style.format` 只控制 Base 前端展示,不影响 CLI 读取的 CellValue;前端当前最多配置到分钟级展示,底层时间值以毫秒级精度存储。
|
|
276
279
|
|
|
277
280
|
常用写法:
|
|
278
281
|
|
|
@@ -305,12 +308,7 @@
|
|
|
305
308
|
|
|
306
309
|
### 3.6 user / group_chat
|
|
307
310
|
|
|
308
|
-
|
|
309
|
-
`user` 支持 `default_value`:人员 CellValue 数组,元素可用 `{ "id": "ou_xxx" }` 或 `{ "$slot": "current_user" }`;不要猜用户 ID。`group_chat` 不支持默认值。
|
|
310
|
-
|
|
311
|
-
默认值 / 约束:
|
|
312
|
-
- `multiple` 默认 `true`
|
|
313
|
-
- `user` 字段支持 `default_value` 配置,`group_chat` 字段不支持 `default_value` 配置。
|
|
311
|
+
两者都支持 `multiple`(默认 `true`);仅 `user` 支持人员数组 `default_value`,元素使用 `{ "id": "ou_xxx" }` 或 `{ "$slot": "current_user" }`,用户 ID 必须来自真实查询。
|
|
314
312
|
|
|
315
313
|
```json
|
|
316
314
|
{
|
|
@@ -327,15 +325,7 @@
|
|
|
327
325
|
|
|
328
326
|
### 3.7 created_by / updated_by
|
|
329
327
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
```json
|
|
333
|
-
{ "type": "created_by", "name": "创建人" }
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
```json
|
|
337
|
-
{ "type": "updated_by", "name": "更新人" }
|
|
338
|
-
```
|
|
328
|
+
系统创建人和修改人字段,记录写入时只读:`{ "type": "created_by", "name": "创建人" }`、`{ "type": "updated_by", "name": "更新人" }`。
|
|
339
329
|
|
|
340
330
|
### 3.8 link
|
|
341
331
|
|
|
@@ -377,7 +367,7 @@
|
|
|
377
367
|
|
|
378
368
|
### 3.9 formula
|
|
379
369
|
|
|
380
|
-
公式字段;`expression` 必填。创建/更新前先读 [
|
|
370
|
+
公式字段;`expression` 必填。创建/更新前先读 [Formula Field](lark-base-field-formula.md) 学习公式语法。
|
|
381
371
|
|
|
382
372
|
```json
|
|
383
373
|
{
|
|
@@ -389,34 +379,7 @@
|
|
|
389
379
|
|
|
390
380
|
### 3.10 lookup
|
|
391
381
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
支持字段:`from`、`select`、`where`、`aggregate`
|
|
395
|
-
|
|
396
|
-
默认值 / 约束:
|
|
397
|
-
- `from`、`select`、`where` 必填
|
|
398
|
-
- `aggregate` 默认 `raw_value` 代表不进行聚合,直接返回 select 回的原始值
|
|
399
|
-
- `aggregate` 可用:`raw_value`、`sum`、`average`、`counta`、`unique_counta`、`max`、`min`、`unique`
|
|
400
|
-
- `where.logic` 默认 `and`,仅支持 `and` / `or`
|
|
401
|
-
- `where.conditions` 至少 1 条
|
|
402
|
-
- `conditions` 每项是三元组 `[field, op, value?]`
|
|
403
|
-
|
|
404
|
-
```json
|
|
405
|
-
{
|
|
406
|
-
"type": "lookup",
|
|
407
|
-
"name": "状态汇总",
|
|
408
|
-
"from": "任务表",
|
|
409
|
-
"select": "状态",
|
|
410
|
-
"where": {
|
|
411
|
-
"logic": "and",
|
|
412
|
-
"conditions": [
|
|
413
|
-
["负责人", "==", { "type": "field_ref", "field": "当前负责人" }],
|
|
414
|
-
["状态", "non_empty", null]
|
|
415
|
-
]
|
|
416
|
-
},
|
|
417
|
-
"aggregate": "raw_value"
|
|
418
|
-
}
|
|
419
|
-
```
|
|
382
|
+
查找引用字段使用 `from`、`select`、`where` 和可选 `aggregate`;结构、条件和聚合值必须按 [Lookup Field](lark-base-field-lookup.md) 构造。
|
|
420
383
|
|
|
421
384
|
### 3.11 auto_number
|
|
422
385
|
|
|
@@ -431,52 +394,7 @@
|
|
|
431
394
|
}
|
|
432
395
|
```
|
|
433
396
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
默认值 / 约束:
|
|
437
|
-
- `style.rules` 是规则数组,数量 `1..9`
|
|
438
|
-
- 默认规则:
|
|
439
|
-
|
|
440
|
-
```json
|
|
441
|
-
{
|
|
442
|
-
"style": {
|
|
443
|
-
"rules": [
|
|
444
|
-
{ "type": "text", "text": "NO." },
|
|
445
|
-
{ "type": "incremental_number", "length": 3 }
|
|
446
|
-
]
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
#### `text`
|
|
452
|
-
|
|
453
|
-
支持字段:`text`
|
|
454
|
-
|
|
455
|
-
```json
|
|
456
|
-
{ "type": "text", "text": "TASK-" }
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
#### `incremental_number`
|
|
460
|
-
|
|
461
|
-
支持字段:`length`
|
|
462
|
-
|
|
463
|
-
默认值 / 约束:
|
|
464
|
-
- `length` 取值 `1..9`
|
|
465
|
-
|
|
466
|
-
```json
|
|
467
|
-
{ "type": "incremental_number", "length": 4 }
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
#### `created_time`
|
|
471
|
-
|
|
472
|
-
支持字段:`date_format`
|
|
473
|
-
|
|
474
|
-
默认值 / 约束:
|
|
475
|
-
- `date_format` 可用:`yyyyMMdd`、`yyyyMM`、`yyMM`、`MMdd`、`yyyy`、`MM`、`dd`
|
|
476
|
-
|
|
477
|
-
```json
|
|
478
|
-
{ "type": "created_time", "date_format": "yyyyMMdd" }
|
|
479
|
-
```
|
|
397
|
+
`style.rules` 包含 1–9 条规则:固定文本用 `{ "type":"text", "text":"TASK-" }`;递增序号用 `{ "type":"incremental_number", "length":4 }`(长度 1–9);创建时间用 `{ "type":"created_time", "date_format":"yyyyMMdd" }`,格式支持 `yyyyMMdd`、`yyyyMM`、`yyMM`、`MMdd`、`yyyy`、`MM`、`dd`。
|
|
480
398
|
|
|
481
399
|
自定义规则:
|
|
482
400
|
|
|
@@ -504,22 +422,28 @@
|
|
|
504
422
|
{ "type": "location", "name": "位置" }
|
|
505
423
|
```
|
|
506
424
|
|
|
507
|
-
|
|
425
|
+
Location 读取为 `{lng,lat,full_address}`;写入只使用数字 `{lng,lat}`,`full_address` 由平台根据坐标解析,不允许手动指定;筛选行为按照 `full_address` 做字符串筛选,将 Location 当作文本列使用文本 operator。`location -> text` 时只保留 `full_address`。
|
|
508
426
|
|
|
509
427
|
```json
|
|
510
428
|
{ "type": "checkbox", "name": "完成" }
|
|
511
429
|
```
|
|
512
430
|
|
|
431
|
+
### 3.13 button
|
|
432
|
+
|
|
433
|
+
```json
|
|
434
|
+
{ "type": "button", "name": "按钮", "button_config": { "title": "点击按钮" } }
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
绑定 Workflow 时,使用 `+button-rule-bind`;读取绑定关系时,使用 `+button-rule-get`;解除绑定用 `+button-rule-unbind`。
|
|
438
|
+
|
|
513
439
|
## 4. 创建与更新
|
|
514
440
|
|
|
515
441
|
- `+field-create`:按目标字段配置直接构造 `--json`。
|
|
516
|
-
- `+field-update`:使用同样的 JSON
|
|
442
|
+
- `+field-update`:使用同样的 JSON 结构,但执行完整覆盖更新,不是局部 patch。先用 `+field-get` 读取当前定义,在其基础上修改目标属性;需要保留的名称、类型、样式、选项、默认值、描述及类型专属配置都应完整写回,并带 `--yes`。
|
|
517
443
|
|
|
518
444
|
## 5. 暂不支持字段
|
|
519
445
|
|
|
520
|
-
Object(对象字段)、
|
|
521
|
-
|
|
522
|
-
遇到暂不支持的字段类型时,直接说明 Base CLI 当前不支持并停止;不要猜测未注册的字段 JSON、service 或 schema,也不要用其他字段类型冒充目标能力。
|
|
446
|
+
Object(对象字段)、Stage(流程字段)暂时没有被 CLI 支持。这些字段会展示为 `not_support` 字段并被保护:不允许修改,不允许读取内容。
|
|
523
447
|
|
|
524
448
|
## 6. 易错点
|
|
525
449
|
|
|
@@ -14,19 +14,6 @@ lark-cli base +field-update \
|
|
|
14
14
|
--json '{"name":"状态","type":"select","multiple":false,"default_value":["Doing"],"options":[{"name":"Todo","hue":"Blue","lightness":"Lighter"},{"name":"Doing","hue":"Orange","lightness":"Light"},{"name":"Done","hue":"Green","lightness":"Light"}]}' \
|
|
15
15
|
--yes
|
|
16
16
|
|
|
17
|
-
lark-cli base +field-update \
|
|
18
|
-
--base-token <base_token> \
|
|
19
|
-
--table-id <table_id> \
|
|
20
|
-
--field-id <field_id> \
|
|
21
|
-
--json '{"name":"负责人","type":"user","multiple":false,"default_value":null,"description":"用于标记记录的直接负责人"}' \
|
|
22
|
-
--yes
|
|
23
|
-
|
|
24
|
-
lark-cli base +field-update \
|
|
25
|
-
--base-token <base_token> \
|
|
26
|
-
--table-id <table_id> \
|
|
27
|
-
--field-id <field_id> \
|
|
28
|
-
--json '{"name":"编号","type":"auto_number","style":{"rules":[{"type":"text","text":"TASK-"},{"type":"created_time","date_format":"yyyyMM"},{"type":"text","text":"-"},{"type":"incremental_number","length":4}]}}' \
|
|
29
|
-
--yes
|
|
30
17
|
```
|
|
31
18
|
|
|
32
19
|
## 参数
|
|
@@ -49,19 +36,17 @@ lark-cli base +field-update \
|
|
|
49
36
|
PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
|
|
50
37
|
```
|
|
51
38
|
|
|
52
|
-
当 `--json.type` 是 `auto_number` 时,仍然走同一个 v3 字段更新接口:更新自动编号规则后,接口现状就会把新规则应用到已有编号(这是接口默认行为,只是 agent 通常不知道),因此**不需要**任何额外开关或参数。只需要正常提交目标自动编号字段定义即可;如果用户要求“将修改用于已有编号”,直接执行这次 `+field-update` 就能达到效果,不要在 `--json` 里额外添加任何参数去“触发”重排。
|
|
53
|
-
|
|
54
39
|
## JSON 值规范
|
|
55
40
|
|
|
56
41
|
- `--json` 必须是 **JSON 对象**,顶层直接传字段定义。
|
|
57
|
-
- 更新语义是 `PUT
|
|
42
|
+
- 更新语义是 override 式的完整覆盖 `PUT`,不是 partial update;先读取当前定义,再提交整个字段需要保留的可写配置,不要只传零散片段。
|
|
58
43
|
- 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接。
|
|
59
|
-
- 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;传 `null`
|
|
44
|
+
- 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;传 `null` 清空。完整规则见 [Field Schema](lark-base-field-schema.md)。
|
|
60
45
|
- `select` 更新时:`options` 仍按对象数组传,避免混入无效字段。
|
|
61
46
|
- `link` 更新限制:
|
|
62
47
|
- 不能把非 `link` 字段改成 `link`,也不能把 `link` 改成非 `link`。
|
|
63
48
|
- 现有 `link` 字段的 `bidirectional` 不能改。
|
|
64
|
-
- `auto_number
|
|
49
|
+
- 更新 `auto_number.style.rules` 会按新规则更新已有记录的编号;规则结构见 [Field Schema](lark-base-field-schema.md)。
|
|
65
50
|
|
|
66
51
|
**推荐更新示例**
|
|
67
52
|
|
|
@@ -79,32 +64,17 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
|
|
|
79
64
|
}
|
|
80
65
|
```
|
|
81
66
|
|
|
82
|
-
**字段说明示例**
|
|
83
|
-
|
|
84
|
-
```json
|
|
85
|
-
{
|
|
86
|
-
"name": "负责人",
|
|
87
|
-
"type": "user",
|
|
88
|
-
"multiple": false,
|
|
89
|
-
"description": "用于标记记录的直接负责人"
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
67
|
## 返回重点
|
|
94
68
|
|
|
95
69
|
- 返回 `field` 和 `updated: true`。
|
|
96
|
-
- `
|
|
97
|
-
- 如果响应中的 `field.type` 与提交的 `type` 不一致,必须把它当作待核验的类型不匹配;不能返回完成态,也不能只根据其中任一类型推断更新成功。
|
|
98
|
-
- 如果 API 报告本次更新没有产生任何变更(no-op),命令会如实返回该错误;这通常说明目标字段已是期望状态,不要机械重试同一份 `+field-update`。需要确认当前字段完整状态时执行 `+field-get`。
|
|
99
|
-
- 如果返回 `field_get_recommended:true` 或 `next_step:"field_get"`,按提示读回字段;`auto_number` 更新后还应抽样读记录值确认编号已按新规则生成。
|
|
70
|
+
- 按返回的 `next_step` 和 `verification_hint` 继续;类型转换涉及已有值时抽样读取记录。
|
|
100
71
|
|
|
101
72
|
## 工作流
|
|
102
73
|
|
|
103
74
|
|
|
104
|
-
1.
|
|
75
|
+
1. 先用 `+field-get` 读取当前定义,只改变目标属性,并把需要保留的其他可写配置完整写回。
|
|
105
76
|
2. `formula/lookup` 类型更新前先阅读对应指南。
|
|
106
|
-
3.
|
|
107
|
-
4. 如果这次更新会改变字段 `type` 先按下方“字段类型变更规则”判断能否执行。如果不修改 `type`,大多数场景都相对安全。
|
|
77
|
+
3. 如果这次更新会改变字段 `type`,先按下方“字段类型变更规则”判断能否执行。如果不修改 `type`,大多数场景都相对安全。
|
|
108
78
|
|
|
109
79
|
## 字段类型变更规则
|
|
110
80
|
|
|
@@ -149,10 +119,10 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
|
|
|
149
119
|
|
|
150
120
|
只有在**整列数据丢失可接受**时,才允许对黑名单场景例外执行。
|
|
151
121
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
122
|
+
1. 该列为空。
|
|
123
|
+
2. 正在初始化新建的空表。
|
|
124
|
+
3. 主字段不能删除,需要通过更新完成初始化。
|
|
125
|
+
4. 用户明确接受整列数据丢失。
|
|
156
126
|
|
|
157
127
|
不满足以上条件时,不要转换。
|
|
158
128
|
|
|
@@ -167,14 +137,6 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
|
|
|
167
137
|
- 可能影响视图 / 筛选 / 排序 / 公式 / lookup / 写入引用
|
|
168
138
|
- 如果用户不接受风险:不要执行转换。
|
|
169
139
|
|
|
170
|
-
### 完成态验证
|
|
171
|
-
|
|
172
|
-
- `FieldReadback`: 读回字段结构,确认 `type` / `multiple` / `style` / `options`
|
|
173
|
-
- `NoopReadback`: `+field-update` 返回 no-op 错误时,只能说明 API 报告没有产生变更;可以跳过重复 update,但不能替代 `FieldReadback`
|
|
174
|
-
- `ValueReadback`: 抽样读回转换后的单元格值
|
|
175
|
-
- `DownstreamReadback`: 若涉及看板 / 分组 / 排序 / lookup / 公式,继续读回结果
|
|
176
|
-
- `CompletionRule`: 结构、值、下游能力都正确,才能回复“已完成”
|
|
177
|
-
|
|
178
140
|
## 坑点
|
|
179
141
|
|
|
180
142
|
- ⚠️ 这是全量字段属性更新语义,不是 patch。
|
|
@@ -184,6 +146,6 @@ PUT /open-apis/base/v3/bases/:base_token/tables/:table_id/fields/:field_id
|
|
|
184
146
|
## 参考
|
|
185
147
|
|
|
186
148
|
- 更新前读取当前字段,确认现有 `type` 和具体配置细节,再决定是原地更新还是新建字段迁移。
|
|
187
|
-
- [
|
|
188
|
-
- [
|
|
189
|
-
- [
|
|
149
|
+
- [Field Schema](lark-base-field-schema.md) — 字段 JSON 规范(推荐)
|
|
150
|
+
- [Formula Field](lark-base-field-formula.md) — 更新公式前必读
|
|
151
|
+
- [Lookup Field](lark-base-field-lookup.md) — 更新查找引用前必读
|
|
@@ -10,7 +10,7 @@ Filter 是一组「字段/操作符/值」条件的组合,用 `logic`(`and`
|
|
|
10
10
|
- `+record-list --filter-json` / `+record-search --filter-json` 的结构化记录筛选。
|
|
11
11
|
- `+form-questions-create` / `+form-questions-update` 中的 `visible_rule` 显隐条件。
|
|
12
12
|
|
|
13
|
-
本协议**不适用于 `+data-query`**。`+data-query` 支持过滤,但使用的是 LiteQuery DSL 的 `filters` 对象结构:`{"type":1,"conjunction":"and","conditions":[{"field_name":"状态","operator":"is","value":["有效"]}]}`,不是这里的 tuple 条件 `["状态","==","有效"]
|
|
13
|
+
本协议**不适用于 `+data-query`**。`+data-query` 支持过滤,但使用的是 LiteQuery DSL 的 `filters` 对象结构:`{"type":1,"conjunction":"and","conditions":[{"field_name":"状态","operator":"is","value":["有效"]}]}`,不是这里的 tuple 条件 `["状态","==","有效"]`。需要聚合查询时先返回 [Record 查询与分析 SOP](lark-base-record-query-and-analysis-sop.md) 选路;SOP 选定 `+data-query` 后再读取 guide 和完整 DSL reference。
|
|
14
14
|
|
|
15
15
|
## 1. 顶层结构
|
|
16
16
|
|
|
@@ -60,12 +60,16 @@ value 类型取决于条件引用对象(字段 / 题目)的类型。
|
|
|
60
60
|
|
|
61
61
|
### `text`
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
用字符串;高频的片段包含 / 排除使用 `intersects` / `disjoint`,完整文本比较使用 `==` / `!=`:
|
|
64
64
|
|
|
65
65
|
```json
|
|
66
66
|
["标题", "intersects", "发布"]
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
```json
|
|
70
|
+
["标题", "disjoint", "内部"]
|
|
71
|
+
```
|
|
72
|
+
|
|
69
73
|
### `location`
|
|
70
74
|
|
|
71
75
|
location 筛选只按 `full_address` 字符串匹配,不能直接按经纬度筛选;优先使用 `intersects` 做包含匹配,例如查深圳:
|
|
@@ -74,8 +78,6 @@ location 筛选只按 `full_address` 字符串匹配,不能直接按经纬度
|
|
|
74
78
|
["位置", "intersects", "深圳"]
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
不推荐写 `["位置", "==", "深圳"]` 这类精确匹配,除非确保筛选值与完整 `full_address` 完全一致。
|
|
78
|
-
|
|
79
81
|
### `number` / `auto_number`
|
|
80
82
|
|
|
81
83
|
用数字:
|
|
@@ -86,27 +88,27 @@ location 筛选只按 `full_address` 字符串匹配,不能直接按经纬度
|
|
|
86
88
|
|
|
87
89
|
### `select`
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
用选项名数组;`intersects` 表示命中任意选项,`disjoint` 表示不包含其中任何选项:
|
|
90
92
|
|
|
91
93
|
```json
|
|
92
94
|
["状态", "intersects", ["Doing", "Blocked"]]
|
|
93
95
|
```
|
|
94
96
|
|
|
95
|
-
|
|
97
|
+
```json
|
|
98
|
+
["状态", "disjoint", ["Archived"]]
|
|
99
|
+
```
|
|
96
100
|
|
|
97
|
-
|
|
101
|
+
### `user` / `group_chat` / `created_by` / `updated_by`
|
|
98
102
|
|
|
99
|
-
|
|
103
|
+
用对象数组;人员使用 `ou_xxx`,群组使用 `oc_xxx`。不知道 ID 时,人员用 `lark-contact` 查询,群组用 `lark-im` 搜索。
|
|
100
104
|
|
|
101
105
|
```json
|
|
102
106
|
["负责人", "intersects", [{ "id": "ou_xxx" }]]
|
|
103
107
|
```
|
|
104
108
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
> **群组筛选:不要猜 ID。** 不知道 `chat_id` 时,先用 `lark-im` 搜群:`lark-cli im +chat-search --query "<群名关键词>" --as user`;取结果里的 `oc_xxx`。
|
|
109
|
+
```json
|
|
110
|
+
["负责人", "disjoint", [{ "id": "ou_xxx" }]]
|
|
111
|
+
```
|
|
110
112
|
|
|
111
113
|
```json
|
|
112
114
|
["负责群", "intersects", [{ "id": "oc_xxx" }]]
|
|
@@ -151,29 +153,15 @@ location 筛选只按 `full_address` 字符串匹配,不能直接按经纬度
|
|
|
151
153
|
|
|
152
154
|
### `formula` / `lookup`
|
|
153
155
|
|
|
154
|
-
|
|
155
|
-
- 拿不准时,先把 `value` 当作单个字符串填入做一次尝试。
|
|
156
|
-
- 如果报错,再按错误提示把 `value` 改成对应类型。
|
|
157
|
-
|
|
158
|
-
字符串示例:
|
|
159
|
-
|
|
160
|
-
```json
|
|
161
|
-
["风险说明", "intersects", "高风险"]
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
数字示例:
|
|
165
|
-
|
|
166
|
-
```json
|
|
167
|
-
["汇总分", ">=", 80]
|
|
168
|
-
```
|
|
156
|
+
value schema 随计算结果类型变化;拿不准时先读取字段定义,或根据错误提示修正 value 和 operator。
|
|
169
157
|
|
|
170
158
|
## 4. 易错点
|
|
171
159
|
|
|
172
160
|
- 不要再写旧对象风格:`{"field_name":...,"operator":...}`。
|
|
173
161
|
- `user` / `group_chat` / `link` 不要写成单个标量。
|
|
174
|
-
- `empty` / `non_empty`
|
|
162
|
+
- `empty` / `non_empty` 统一表示格子为空 / 非空,不要传 value;标量空格子和多值字段没有任何元素都属于空。
|
|
175
163
|
- 日期条件稳定写法用 `ExactDate(...)` 或 `Today` / `Yesterday` / `Tomorrow`。
|
|
176
|
-
- `formula` / `lookup` 的 value
|
|
164
|
+
- `formula` / `lookup` 的 value schema 是动态的;拿不准 value 类型时先读字段定义,或根据错误提示修正类型。
|
|
177
165
|
|
|
178
166
|
## 5. 参考
|
|
179
|
-
- [
|
|
167
|
+
- [Lookup Field](lark-base-field-lookup.md)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> **前置条件:** 先阅读 [`../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
向多维表格表单/问卷中批量添加问题。可以新建字段并作为题目,也可以把已有字段加到表单中作为题目而不新建字段。
|
|
6
6
|
|
|
7
7
|
## 命令
|
|
8
8
|
|
|
@@ -54,6 +54,13 @@ lark-cli base +form-questions-create \
|
|
|
54
54
|
--table-id <table_id> \
|
|
55
55
|
--form-id <form_id> \
|
|
56
56
|
--questions '[{"type":"select","title":"是否需要发票","required":true,"options":[{"name":"是","hue":"Blue"},{"name":"否","hue":"Gray"}]},{"type":"text","title":"发票抬头","visible_rule":{"logic":"and","conditions":[["是否需要发票","==","是"]]}}]'
|
|
57
|
+
|
|
58
|
+
# 把已有字段作为题目加到表单中,不新建字段
|
|
59
|
+
lark-cli base +form-questions-create \
|
|
60
|
+
--base-token <base_token> \
|
|
61
|
+
--table-id <table_id> \
|
|
62
|
+
--form-id <form_id> \
|
|
63
|
+
--questions '[{"use_existing_field":true,"field_id":"fldEmail","title":"你的邮箱","description":"用于接收回执","required":true}]'
|
|
57
64
|
```
|
|
58
65
|
|
|
59
66
|
## 参数
|
|
@@ -70,7 +77,14 @@ lark-cli base +form-questions-create \
|
|
|
70
77
|
|
|
71
78
|
## `--questions` 格式
|
|
72
79
|
|
|
73
|
-
|
|
80
|
+
`--questions` 是 1~10 个问题对象的数组。每个对象二选一:
|
|
81
|
+
|
|
82
|
+
- 新建字段题目:创建一个新字段,并把该字段作为表单题目。
|
|
83
|
+
- 已有字段题目:把一个已存在字段加入表单,只改变该字段在表单中的可见性,不创建字段。
|
|
84
|
+
|
|
85
|
+
### 形态 A:新建字段题目
|
|
86
|
+
|
|
87
|
+
新建字段题目会在数据表中创建新字段,返回的 question `id` 就是新字段的 `field_id`。CLI 当前要求每个新建字段题目显式传 `title` 和 `type`。
|
|
74
88
|
|
|
75
89
|
| 字段 | 必填 | 说明 |
|
|
76
90
|
|-----------------------|------|------|
|
|
@@ -84,6 +98,22 @@ lark-cli base +form-questions-create \
|
|
|
84
98
|
| `style` | 否 | 字段样式配置(见下方说明) |
|
|
85
99
|
| `visible_rule` | 否 | 题目显隐条件(见下方「`visible_rule` 显隐条件」) |
|
|
86
100
|
|
|
101
|
+
### 形态 B:已有字段题目
|
|
102
|
+
|
|
103
|
+
已有字段题目只把一个已存在字段加入表单,不新建字段,也不改变已有记录数据。适合把之前用 `+form-questions-delete --keep-field` 移出表单的题目重新加回,或把表里已有字段补充为表单题目。
|
|
104
|
+
|
|
105
|
+
| 字段 | 必填 | 说明 |
|
|
106
|
+
|-----------------------|------|------|
|
|
107
|
+
| `use_existing_field` | **是** | 固定传 `true`,表示使用已有字段 |
|
|
108
|
+
| `field_id` | **是** | 已有字段的 ID 或字段名;推荐字段 ID,避免同名字段歧义。引用长度 1~100,较长字段名请改用字段 ID |
|
|
109
|
+
| `title` | 否 | 题目标题;省略时使用字段名 |
|
|
110
|
+
| `description` | 否 | 问题描述(纯文本或 Markdown 链接,如 `[文本](https://example.com)`) |
|
|
111
|
+
| `required` | 否 | 是否必填(true/false),默认 false |
|
|
112
|
+
| `option_display_mode` | 否 | 选项展示方式(仅已有字段为 `select` 时有效):`0`=下拉,`1`=纵向(默认),`2`=横向 |
|
|
113
|
+
| `visible_rule` | 否 | 题目显隐条件(见下方「`visible_rule` 显隐条件」) |
|
|
114
|
+
|
|
115
|
+
已有字段题目不要携带字段定义属性,例如 `type`、`style`、`options`、`multiple`、`name`。服务端使用 strict schema,误传不属于该形态的字段会被拒绝。
|
|
116
|
+
|
|
87
117
|
### `style` 字段说明
|
|
88
118
|
|
|
89
119
|
| 类型 | style 结构 | 说明 |
|
|
@@ -139,10 +169,11 @@ lark-cli base +form-questions-create \
|
|
|
139
169
|
|
|
140
170
|
1. 先确定表单所属的真实 `table_id`,并在整个表单管理工作流中复用它;仅在 ID 缺失或归属不明确时调用 `+table-list`。
|
|
141
171
|
2. 用 `+form-questions-list` 查看现有问题。问题 `id` 是承载该问题的 `field_id`,不是独立于数据表的临时 ID。
|
|
142
|
-
3.
|
|
143
|
-
4.
|
|
172
|
+
3. 需要把表里已有字段加进表单时,先用 `+field-list` 确认真实字段 ID 和字段类型,再用 `use_existing_field:true` + `field_id`;字段已经是可见题目时不要重复创建,改用 `+form-questions-update`。
|
|
173
|
+
4. 除非用户明确要求同名的独立问题,否则目标标题已经存在时用 `+form-questions-update` 更新必填状态、标题或描述;不要创建同名问题后再删除旧问题。
|
|
174
|
+
5. 创建确实不存在的问题,或用户明确要求的同名独立问题,并报告新建的问题 ID。
|
|
144
175
|
|
|
145
|
-
`+form-questions-delete`
|
|
176
|
+
`+form-questions-delete` 默认会删除承载问题的数据表字段及记录数据;如果只是想把题目移出表单并保留字段,必须用 `+form-questions-delete --keep-field`。移出后可用本文的已有字段题目形态加回。
|
|
146
177
|
|
|
147
178
|
## 参考
|
|
148
179
|
|
|
@@ -51,7 +51,11 @@ lark-cli base +record-batch-create --base-token <base_token> --table-id <table_i
|
|
|
51
51
|
## 坑点
|
|
52
52
|
|
|
53
53
|
- 每个 `create_records` 元素都是独立的记录字段对象,只提交该记录需要写入的字段。
|
|
54
|
-
- 单次最多 200
|
|
54
|
+
- 单次最多 200 条;`1254104` 表示超过单批上限,拆成多个批次。
|
|
55
|
+
- `1254045` 表示字段不存在,重新 `+field-list` 后使用真实字段名或 `field_id`。
|
|
56
|
+
- `1254015` 表示 CellValue 类型不匹配,按真实 Field schema 和 CellValue 规范修正。
|
|
57
|
+
- 返回 `ignored_fields` / `READONLY` 时,从普通 Record 写入中移除 Formula、Lookup、系统字段和自动编号等只读字段。
|
|
58
|
+
- 同一 Table 连续批量写入使用串行执行;`1254291` 表示并发写冲突,短暂等待后重试当前批次。
|
|
55
59
|
- `select` 字段只支持写入字段中已有的选项;构造 CellValue 前先用 `+field-list` 或 `+field-search-options` 确认目标选项存在。
|
|
56
60
|
|
|
57
61
|
## 参考
|
|
@@ -45,9 +45,12 @@ lark-cli base +record-batch-update --base-token <base_token> --table-id <table_i
|
|
|
45
45
|
|
|
46
46
|
## 坑点
|
|
47
47
|
|
|
48
|
-
- 单次最多更新 200
|
|
48
|
+
- 单次最多更新 200 条记录;`1254104` 表示超过单批上限,拆成多个批次。
|
|
49
|
+
- `1254045` 表示字段不存在,重新 `+field-list` 后使用真实字段名或 `field_id`。
|
|
50
|
+
- `1254015` 表示 CellValue 类型不匹配,按真实 Field schema 和 CellValue 规范修正。
|
|
49
51
|
- 命令不会自动做字段/行映射转换,传什么就发什么。
|
|
50
|
-
- 如果字段映射包含只读字段,返回里可能出现 `ignored_fields
|
|
52
|
+
- 如果字段映射包含只读字段,返回里可能出现 `ignored_fields` / `READONLY`;移除 Formula、Lookup、系统字段和自动编号等只读字段。
|
|
53
|
+
- 同一 Table 连续批量写入使用串行执行;`1254291` 表示并发写冲突,短暂等待后重试当前批次。
|
|
51
54
|
|
|
52
55
|
## 参考
|
|
53
56
|
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
查询单条记录的变更历史。它返回历史事件,不返回记录当前值,也不支持整表审计扫描。
|
|
4
4
|
|
|
5
|
+
## 使用前置
|
|
6
|
+
|
|
7
|
+
`+record-history-list` 仅查询单条记录。调用前必须获得能唯一对应用户指定目标、且与 `table_id` 属于同一张表的 `record_id`。
|
|
8
|
+
|
|
9
|
+
如果当前信息无法唯一确定目标记录,先向用户确认,必要时用 `+record-list` 辅助定位;不得自行选择记录,也不得扩展为批量或整表扫描。需要查询多条记录时,先确认范围,再逐条调用。
|
|
10
|
+
|
|
11
|
+
用 `+record-list` 展示候选时,可重复传入 `--field-id` 做最小投影。字段名包含空格时,需要给完整值加引号,例如 `--field-id "Project Owner"`。
|
|
12
|
+
|
|
13
|
+
用户明确指定某个视图的第 N 行时,先用同一 `view_id` 调用 `+record-list`,并将 `--offset` 设为 N-1、`--limit` 设为 1。默认 Markdown 输出从 `_record_id` 列读取唯一记录 ID;显式使用 `--format json` 时从 `.data.record_id_list[0]` 读取。`_record_id` 不是 JSON 顶层字段;视图或排序上下文不明确时仍需先确认。
|
|
14
|
+
|
|
5
15
|
## 推荐命令
|
|
6
16
|
|
|
7
17
|
```bash
|
|
@@ -16,14 +26,21 @@ lark-cli base +record-history-list \
|
|
|
16
26
|
--record-id <record_id> \
|
|
17
27
|
--page-size 30 \
|
|
18
28
|
--max-version <next_max_version>
|
|
29
|
+
|
|
30
|
+
lark-cli base +record-history-list \
|
|
31
|
+
--base-token <base_token> \
|
|
32
|
+
--table-id <table_id> \
|
|
33
|
+
--record-id <record_id> \
|
|
34
|
+
--format pretty
|
|
19
35
|
```
|
|
20
36
|
|
|
21
37
|
## 返回解释
|
|
22
38
|
|
|
23
39
|
- 历史条目通常按版本号降序返回,最新在前。
|
|
24
40
|
- 每条历史包含版本号、操作人、操作时间、操作类型和字段变更。
|
|
25
|
-
- `create_time` 是秒级 Unix
|
|
41
|
+
- 默认 JSON 中的 `create_time` 是秒级 Unix 时间戳;`--format pretty` 会将其转换为带 UTC 偏移的本地时间,并和操作人、字段变化放在同一行。
|
|
26
42
|
- `field_changes` 描述字段变更,重点看字段名/字段类型、`before` 和 `after`。
|
|
43
|
+
- `--format pretty` 中空的 `before` 或 `after` 显示为 `-`;默认 JSON 保留原始值。
|
|
27
44
|
- `activity_type` 常见值:`create`(创建记录)、`update`(编辑记录)、`delete`(删除记录)。
|
|
28
45
|
|
|
29
46
|
以下字段类型的变化可能不会出现在 `field_changes` 中:
|
|
@@ -40,4 +57,4 @@ lark-cli base +record-history-list \
|
|
|
40
57
|
## 注意
|
|
41
58
|
|
|
42
59
|
- `table-id` 和 `record-id` 必须来自同一张表。
|
|
43
|
-
-
|
|
60
|
+
- 这是单条记录历史,不是表级审计;用户明确要求查询多条记录时,先确认目标范围,再按记录串行调用。
|