创建现有记录的副本,同时保留特定数据元素。
复制记录
要创建现有记录的副本并保持特定元素,请使用 copyTodo
变更:
mutation CopyTodo {
copyTodo(
input: {
title: "new todo"
todoId: "todo-id"
todoListId: "todo-list-id"
options: [
DESCRIPTION
DUE_DATE
CHECKLISTS
ASSIGNEES
TAGS
CUSTOM_FIELDS
COMMENTS
]
}
)
}
必需的头部
x-bloo-token-id: "your-token-id"
x-bloo-token-secret: "your-token-secret"
x-bloo-project-id: "project-id-or-slug"
x-bloo-company-id: "company-id-or-slug"
输入参数
字段 | 类型 | 必需 | 描述 |
---|---|---|---|
title | String | 否 | 复制记录的新标题(可选) |
todoId | String | 是 | 要复制的记录的ID |
todoListId | String | 是 | 要在其中创建副本的列表ID |
options | Array | 是 | 从原始记录复制的数据元素 |
复制选项
options
数组接受以下值:
选项 | 描述 |
---|---|
DESCRIPTION | 复制记录的描述 |
DUE_DATE | 复制截止日期和时区 |
CHECKLISTS | 复制所有检查清单及其项目 |
ASSIGNEES | 复制所有分配的用户(按目标项目成员资格过滤) |
TAGS | 复制所有关联标签 |
CUSTOM_FIELDS | 复制所有自定义字段值(包括文件附件) |
COMMENTS | 复制所有评论和回复 |
示例响应
{
"data": {
"copyTodo": true
}
}
定位副本
复制的记录默认将放置在目标列表的底部。要控制定位,请使用 [移动记录变更](/api/records/move-record-list)。
复制的记录默认将放置在目标列表的底部。要控制定位,请使用 [移动记录变更](/api/records/move-record-list)。
所需权限
您需要在源项目和目标项目上具有 编辑 权限(所有者、管理员或成员角色)。注意:成员角色用户只能在同一项目内复制记录。跨项目复制需要管理员或所有者权限。复制失败将返回 `FORBIDDEN` 错误代码。
您需要在源项目和目标项目上具有 编辑 权限(所有者、管理员或成员角色)。注意:成员角色用户只能在同一项目内复制记录。跨项目复制需要管理员或所有者权限。复制失败将返回 `FORBIDDEN` 错误代码。
错误处理
此操作的常见错误代码:
TODO_NOT_FOUND
: 无效或无法访问的 todoIdTODO_LIST_NOT_FOUND
: 无效或无法访问的 todoListIdFORBIDDEN
: 权限不足或跨项目限制
请参阅 错误代码 以获取完整参考。
高级功能
跨项目复制
该变更支持在不同项目之间复制记录,考虑事项如下:
- 所有者/管理员: 可以跨任何他们有权限访问的项目复制记录
- 成员: 限制仅在同一项目内复制
- 分配人过滤: 在跨项目复制时,分配人会自动过滤,仅包括有权访问目标项目的用户
自定义字段处理
使用 CUSTOM_FIELDS
选项时:
- 所有自定义字段值都会复制到新记录
- 自定义字段中的文件附件会正确复制,并带有新的存储引用
- 自定义字段类型会被保留,并根据目标项目的配置进行验证
自动化集成
跨项目复制可能会触发源项目和目标项目中的额外自动化规则,从而允许在项目边界之间进行复杂的工作流管理。