@amaster.ai/pi-lark 0.1.8 → 0.1.9
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-apps/SKILL.md +2 -0
- 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 +155 -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 +225 -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} +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-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} +15 -100
- 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-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-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-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 +2 -0
- package/skills/lark-calendar/references/lark-calendar-create.md +4 -3
- package/skills/lark-doc/SKILL.md +3 -3
- 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-drive/SKILL.md +5 -3
- 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 +6 -1
- package/skills/lark-minutes/SKILL.md +11 -5
- package/skills/lark-minutes/references/lark-minutes-apply-permission.md +95 -0
- package/skills/lark-minutes/references/lark-minutes-detail.md +7 -6
- package/skills/lark-minutes/references/lark-minutes-download.md +4 -2
- package/skills/lark-note/SKILL.md +13 -9
- package/skills/lark-note/references/lark-note-detail.md +5 -2
- package/skills/lark-note/references/lark-note-transcript.md +2 -0
- package/skills/lark-shared/SKILL.md +36 -0
- package/skills/lark-slides/SKILL.md +54 -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 +3514 -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 +12 -0
- package/skills/lark-task/references/lark-task-create.md +3 -1
- package/skills/lark-vc/SKILL.md +15 -5
- package/skills/lark-vc/references/lark-vc-detail.md +11 -6
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-events.md → lark-vc/references/lark-vc-meeting-events.md} +121 -20
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-list-active.md → lark-vc/references/lark-vc-meeting-list-active.md} +2 -2
- package/skills/{lark-vc-agent/references/lark-vc-agent-meeting-message-send.md → lark-vc/references/lark-vc-meeting-message-send.md} +3 -3
- package/skills/lark-vc/references/lark-vc-recording.md +8 -6
- package/skills/lark-vc/references/vc-domain-boundaries.md +8 -1
- package/skills/lark-vc-agent/SKILL.md +24 -9
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-join.md +2 -2
- package/skills/lark-vc-agent/references/lark-vc-agent-meeting-leave.md +2 -2
- 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-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
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Base NDJSON:Python 标准库示例
|
|
2
|
+
|
|
3
|
+
仅在统一数据分析 SOP 已选择 Python 标准库后读取。本页不重复 Base 的粒度与关系规则,只展示对应实现。
|
|
4
|
+
|
|
5
|
+
示例假设 `records.ndjson` 包含 `record_id`、`日期`、`状态`、`金额`、`负责人`、`标签`、`关联客户`;`customers.ndjson` 包含 `record_id`、`客户名称`。多值列使用统一数据分析 SOP 定义的数组结构。
|
|
6
|
+
|
|
7
|
+
## 加载与日期解析
|
|
8
|
+
|
|
9
|
+
NDJSON 每行是一条独立 JSON record;按行读取即可,不要先把文件整体载入字符串。
|
|
10
|
+
|
|
11
|
+
```python
|
|
12
|
+
import json
|
|
13
|
+
from datetime import date, datetime
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def read_ndjson(path):
|
|
17
|
+
with open(path, encoding="utf-8") as stream:
|
|
18
|
+
for line in stream:
|
|
19
|
+
if line.strip():
|
|
20
|
+
yield json.loads(line)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
records = list(read_ndjson("records.ndjson"))
|
|
24
|
+
for record in records:
|
|
25
|
+
raw_date = record["日期"]
|
|
26
|
+
record["日期_local"] = date.fromisoformat(raw_date[:10]) if raw_date else None
|
|
27
|
+
record["日期_instant"] = datetime.fromisoformat(raw_date) if raw_date else None
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
按来源 Base 的日、周、月分组使用 `日期_local`;计算真实时长、排序或跨时区比较使用 `日期_instant`。实际任务只需构造所需的一项。
|
|
31
|
+
|
|
32
|
+
## 集合谓词:保持 record 粒度
|
|
33
|
+
|
|
34
|
+
筛选“状态”包含“进行中”的记录,并在 record 粒度汇总:
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
active = [record for record in records if "进行中" in record["状态"]]
|
|
38
|
+
amounts = [record["金额"] for record in active if record["金额"] is not None]
|
|
39
|
+
summary = {
|
|
40
|
+
"records_count": len(active),
|
|
41
|
+
"amount_sum": sum(amounts) if amounts else None,
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 单数组展开:切换到人员粒度
|
|
46
|
+
|
|
47
|
+
用嵌套循环表达 lateral expansion;按人员 `id` 聚合,`name` 只用于展示。
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from collections import defaultdict
|
|
51
|
+
|
|
52
|
+
record_ids_by_owner = defaultdict(set)
|
|
53
|
+
owner_names = {}
|
|
54
|
+
for record in records:
|
|
55
|
+
for owner in record["负责人"]:
|
|
56
|
+
record_ids_by_owner[owner["id"]].add(record["record_id"])
|
|
57
|
+
owner_names[owner["id"]] = owner["name"]
|
|
58
|
+
|
|
59
|
+
by_owner = sorted(
|
|
60
|
+
(
|
|
61
|
+
{
|
|
62
|
+
"user_id": user_id,
|
|
63
|
+
"user_name": owner_names[user_id],
|
|
64
|
+
"records_count": len(record_ids),
|
|
65
|
+
}
|
|
66
|
+
for user_id, record_ids in record_ids_by_owner.items()
|
|
67
|
+
),
|
|
68
|
+
key=lambda row: (-row["records_count"], row["user_id"]),
|
|
69
|
+
)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Link JOIN:先建立目标表索引
|
|
73
|
+
|
|
74
|
+
目标表的 `record_id` 是唯一主键,可直接建立哈希索引;Link 的 `id` 用于索引查找。
|
|
75
|
+
|
|
76
|
+
```python
|
|
77
|
+
customers = {
|
|
78
|
+
customer["record_id"]: customer
|
|
79
|
+
for customer in read_ndjson("customers.ndjson")
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
joined = []
|
|
83
|
+
for record in records:
|
|
84
|
+
for link in record["关联客户"]:
|
|
85
|
+
customer = customers.get(link["id"])
|
|
86
|
+
joined.append(
|
|
87
|
+
{
|
|
88
|
+
"source_record_id": record["record_id"],
|
|
89
|
+
"target_record_id": link["id"],
|
|
90
|
+
"客户名称": customer["客户名称"] if customer else None,
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 多数组共现:显式生成行内笛卡尔积
|
|
96
|
+
|
|
97
|
+
两层嵌套循环表示同一 source record 内的 `负责人 × 标签`:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
record_ids_by_pair = defaultdict(set)
|
|
101
|
+
owner_names = {}
|
|
102
|
+
for record in records:
|
|
103
|
+
for owner in record["负责人"]:
|
|
104
|
+
owner_names[owner["id"]] = owner["name"]
|
|
105
|
+
for tag in record["标签"]:
|
|
106
|
+
record_ids_by_pair[(owner["id"], tag)].add(record["record_id"])
|
|
107
|
+
|
|
108
|
+
cooccurrence = sorted(
|
|
109
|
+
(
|
|
110
|
+
{
|
|
111
|
+
"user_id": user_id,
|
|
112
|
+
"user_name": owner_names[user_id],
|
|
113
|
+
"标签": tag,
|
|
114
|
+
"records_count": len(record_ids),
|
|
115
|
+
}
|
|
116
|
+
for (user_id, tag), record_ids in record_ids_by_pair.items()
|
|
117
|
+
),
|
|
118
|
+
key=lambda row: (-row["records_count"], row["user_id"], row["标签"]),
|
|
119
|
+
)
|
|
120
|
+
```
|
|
@@ -1,11 +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
|
-
|
|
7
|
-
|
|
8
|
-
查询类任务还必须先遵守 [`lark-base-data-analysis-sop.md`](lark-base-data-analysis-sop.md)。`+data-query` 适合让筛选、分组、聚合、排序和 TopN 在 Base 云端查询服务中执行;不要用默认分页的 `+record-list` 或本地 `jq` 替代聚合查询。
|
|
6
|
+
本文档合并常用 fewshot 与完整 DSL 协议。只有 [Record 查询与分析 SOP](lark-base-record-query-and-analysis-sop.md) 的 Cloud 路径选定 `+data-query` 后才读取,并优先定位与当前查询有关的示例、字段或错误协议。
|
|
9
7
|
|
|
10
8
|
## 限制
|
|
11
9
|
|
|
@@ -432,12 +430,12 @@ CLI 输出标准信封 `{ok, identity, data}`(失败时为 `{ok:false, identit
|
|
|
432
430
|
|
|
433
431
|
1. 用 `+data-query` 在 Base 云端查询服务中完成全局筛选、分组、聚合、排序和 TopN,得到业务 key、分组值或候选字段组合。
|
|
434
432
|
2. 如果已经拿到候选记录的 `record_id`,用 `+record-get` 读取逐条记录字段。
|
|
435
|
-
3. 如果拿到的是结构化业务 key(例如编号、状态、日期、金额等),用 `+record-list --filter-json`
|
|
433
|
+
3. 如果拿到的是结构化业务 key(例如编号、状态、日期、金额等),用 `+record-list --filter-json` 做精确过滤后读取;`+record-search` 用于文本展示值关键词。
|
|
436
434
|
4. 只有候选条件本身是文本展示值关键词时,才使用 `+record-search`,并用 `search_fields` 限定范围、`select_fields` 做投影。
|
|
437
435
|
5. 若候选记录包含 link 字段,提取关联 `record_id` 后到关联表用 `+record-get` 批量读取展示字段。
|
|
438
|
-
6.
|
|
436
|
+
6. 最终回答展示真实业务字段;内部 `record_id` 用于连接或定位。
|
|
439
437
|
|
|
440
|
-
不要把 `data-query pagination.limit` 理解为分页扫描;它只限制 Base 云端查询服务返回的聚合结果行数,不支持 offset
|
|
438
|
+
不要把 `data-query pagination.limit` 理解为分页扫描;它只限制 Base 云端查询服务返回的聚合结果行数,不支持 offset。需要逐条原始记录时按 Cloud SOP 的 `+record-list` / `+record-search` 回查规则处理。
|
|
441
439
|
|
|
442
440
|
## 坑点
|
|
443
441
|
|
|
@@ -450,12 +448,11 @@ CLI 输出标准信封 `{ok, identity, data}`(失败时为 `{ok:false, identit
|
|
|
450
448
|
- ⚠️ **数据表标识 `tableId` vs `tableName`**:datasource 中可以用 `tableId`(如 `tblXXX`)或 `tableName`(数据表的用户自定义显示名称),二选一,不要混用
|
|
451
449
|
- ⚠️ **`pagination.limit` 最大 5000**:超过会报错,且不支持 offset,只支持 limit
|
|
452
450
|
- ⚠️ **所有 alias 必须全局唯一**:dimensions 和 measures 之间的 alias 也不能重名
|
|
453
|
-
- ⚠️ **不要用本地分页结果替代 data-query**:凡是全局计数、分组、聚合、排序 TopN,优先让 `+data-query` 在 Base 云端查询服务中执行;默认页 `+record-list` 后本地统计只能得到已读取范围内的结果
|
|
454
451
|
|
|
455
452
|
## 参考
|
|
456
453
|
|
|
457
454
|
- [lark-base](../SKILL.md) — 多维表格全部命令
|
|
458
455
|
- [lark-shared](../../lark-shared/SKILL.md) — 认证和全局参数
|
|
459
|
-
- [lark-base-
|
|
456
|
+
- [Cloud SOP](lark-base-record-query-and-analysis-cloud-sop.md) — Cloud 路径的查询范围、下推、分页、`+record-list` / `+record-search` 回查和关系查询
|
|
460
457
|
- [lark-base-cell-value.md](lark-base-cell-value.md) — CellValue 格式规范
|
|
461
|
-
- [
|
|
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) — 创建查找引用必读
|
|
@@ -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
|
推荐示例:
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
- `icon` 默认 `star`
|
|
186
186
|
- `icon` 可用:`star`、`heart`、`thumbsup`、`fire`、`smile`、`lightning`、`flower`、`number`
|
|
187
187
|
- `min` 取值 `0..1`,默认 `1`
|
|
188
|
-
- `max`
|
|
188
|
+
- `max` 取值 `1..10`,默认 `5`
|
|
189
189
|
|
|
190
190
|
```json
|
|
191
191
|
{
|
|
@@ -229,6 +229,8 @@
|
|
|
229
229
|
|
|
230
230
|
#### 动态选项
|
|
231
231
|
|
|
232
|
+
当新字段要引用或复用另一选项字段的选项列表时,优先使用 `dynamic_options_source`,避免重复定义和维护 `options`。
|
|
233
|
+
|
|
232
234
|
支持字段:`multiple`、`dynamic_options_source`
|
|
233
235
|
动态选项不支持 `default_value`。
|
|
234
236
|
|
|
@@ -264,7 +266,7 @@
|
|
|
264
266
|
{
|
|
265
267
|
"type": "datetime",
|
|
266
268
|
"name": "截止时间",
|
|
267
|
-
"default_value": "2026-03-24 10:00
|
|
269
|
+
"default_value": "2026-03-24 10:00"
|
|
268
270
|
}
|
|
269
271
|
```
|
|
270
272
|
|
|
@@ -272,7 +274,7 @@
|
|
|
272
274
|
|
|
273
275
|
默认值 / 约束:
|
|
274
276
|
- `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`
|
|
277
|
+
- `style.format` 只控制 Base 前端展示,不影响 CLI 读取的 CellValue;前端当前最多配置到分钟级展示,底层时间值以毫秒级精度存储。
|
|
276
278
|
|
|
277
279
|
常用写法:
|
|
278
280
|
|
|
@@ -305,12 +307,7 @@
|
|
|
305
307
|
|
|
306
308
|
### 3.6 user / group_chat
|
|
307
309
|
|
|
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` 配置。
|
|
310
|
+
两者都支持 `multiple`(默认 `true`);仅 `user` 支持人员数组 `default_value`,元素使用 `{ "id": "ou_xxx" }` 或 `{ "$slot": "current_user" }`,用户 ID 必须来自真实查询。
|
|
314
311
|
|
|
315
312
|
```json
|
|
316
313
|
{
|
|
@@ -327,15 +324,7 @@
|
|
|
327
324
|
|
|
328
325
|
### 3.7 created_by / updated_by
|
|
329
326
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
```json
|
|
333
|
-
{ "type": "created_by", "name": "创建人" }
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
```json
|
|
337
|
-
{ "type": "updated_by", "name": "更新人" }
|
|
338
|
-
```
|
|
327
|
+
系统创建人和修改人字段,记录写入时只读:`{ "type": "created_by", "name": "创建人" }`、`{ "type": "updated_by", "name": "更新人" }`。
|
|
339
328
|
|
|
340
329
|
### 3.8 link
|
|
341
330
|
|
|
@@ -377,7 +366,7 @@
|
|
|
377
366
|
|
|
378
367
|
### 3.9 formula
|
|
379
368
|
|
|
380
|
-
公式字段;`expression` 必填。创建/更新前先读 [
|
|
369
|
+
公式字段;`expression` 必填。创建/更新前先读 [Formula Field](lark-base-field-formula.md) 学习公式语法。
|
|
381
370
|
|
|
382
371
|
```json
|
|
383
372
|
{
|
|
@@ -389,34 +378,7 @@
|
|
|
389
378
|
|
|
390
379
|
### 3.10 lookup
|
|
391
380
|
|
|
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
|
-
```
|
|
381
|
+
查找引用字段使用 `from`、`select`、`where` 和可选 `aggregate`;结构、条件和聚合值必须按 [Lookup Field](lark-base-field-lookup.md) 构造。
|
|
420
382
|
|
|
421
383
|
### 3.11 auto_number
|
|
422
384
|
|
|
@@ -431,52 +393,7 @@
|
|
|
431
393
|
}
|
|
432
394
|
```
|
|
433
395
|
|
|
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
|
-
```
|
|
396
|
+
`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
397
|
|
|
481
398
|
自定义规则:
|
|
482
399
|
|
|
@@ -504,7 +421,7 @@
|
|
|
504
421
|
{ "type": "location", "name": "位置" }
|
|
505
422
|
```
|
|
506
423
|
|
|
507
|
-
|
|
424
|
+
Location 读取为 `{lng,lat,full_address}`;写入只使用数字 `{lng,lat}`,`full_address` 由平台根据坐标解析,不允许手动指定;筛选行为按照 `full_address` 做字符串筛选,将 Location 当作文本列使用文本 operator。`location -> text` 时只保留 `full_address`。
|
|
508
425
|
|
|
509
426
|
```json
|
|
510
427
|
{ "type": "checkbox", "name": "完成" }
|
|
@@ -513,14 +430,12 @@
|
|
|
513
430
|
## 4. 创建与更新
|
|
514
431
|
|
|
515
432
|
- `+field-create`:按目标字段配置直接构造 `--json`。
|
|
516
|
-
- `+field-update`:使用同样的 JSON
|
|
433
|
+
- `+field-update`:使用同样的 JSON 结构,但执行完整覆盖更新,不是局部 patch。先用 `+field-get` 读取当前定义,在其基础上修改目标属性;需要保留的名称、类型、样式、选项、默认值、描述及类型专属配置都应完整写回,并带 `--yes`。
|
|
517
434
|
|
|
518
435
|
## 5. 暂不支持字段
|
|
519
436
|
|
|
520
437
|
Object(对象字段)、Button(按钮字段)、Stage(流程字段)暂时都没有被 CLI 支持。这些字段会展示为 `not_support` 字段并被保护:不允许修改,不允许读取内容。
|
|
521
438
|
|
|
522
|
-
遇到暂不支持的字段类型时,直接说明 Base CLI 当前不支持并停止;不要猜测未注册的字段 JSON、service 或 schema,也不要用其他字段类型冒充目标能力。
|
|
523
|
-
|
|
524
439
|
## 6. 易错点
|
|
525
440
|
|
|
526
441
|
- `select` 只有一个类型;不要写 `single_select` / `multi_select`,用 `multiple` 控制是否多选。
|
|
@@ -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) — 更新查找引用前必读
|