导入与导出
从 CSV 把记录导入 Carbon,并把任意表格的当前视图下载为 CSV。
Carbon 支持为每张共享数据表导出 CSV,并为选定实体导入 CSV。导出会写入匹配表格当前筛选和搜索的所有行:浏览器中最多 1,000 行,更多则作为后台任务。导入使用引导式映射流程和特权后台函数,在事务中插入或更新记录。
把表格导出为 CSV
在数据表表头使用 Download CSV(下载 CSV)。基于 Carbon 共享数据网格构建的每张表都有此操作。
下载反映你当前看到的内容:
- 只写入匹配当前筛选和搜索的行,而不只是屏幕上已加载的行。先筛选或搜索以缩小文件内容,再导出。
- 只包含当前保存视图中可见的列,按你排列的顺序。隐藏列被排除;合成的选择、展开和操作列从不导出。
- CSV 表头与网格中显示的人类可读标签相同。
对于物料、供应商、员工和客户等带 ID 的列,导出会用可读名称替代原始 ID,使文件可读。少数列标记为仅导出:它们在网格中隐藏,但始终写入 CSV。
超过 1,000 行的导出
当匹配行超过 1,000 时,Carbon 在后台构建文件。你可以继续工作,文件就绪时会收到带下载链接的通知。链接有效期为 7 天。
- 后台导出保存的是存储值,而不是屏幕格式:日期为
2026-10-13,数字无货币符号。 - 每家公司一次只运行一个导出。若另一个正在运行,Carbon 会告诉你需要等待多久。
- 导出在 100,000 行处停止。提前停止时通知会说明。
- 少数列表无法后台导出,会导出前 1,000 行并说明。
较小的导出命名为 data.csv
1,000 行或以下的导出在浏览器中构建并立即下载为 data.csv。如果导出多张表,请在下载后重命名。
可以导入什么
批量导入仅适用于受支持的实体。在各自的列表界面通过 Bulk Import(批量导入) 菜单导入:
部件和工具列表的 Bulk Import 菜单还提供三种制造方法导入,用于加载物料清单和工序:BOM、Operations(工序) 和 Parts with Methods(带制造方法的部件),后者同时创建部件及其完整 BOM 和工艺路线。这些是按行类型的 CSV:每行标记为 PART、BOM、BOP、STEP、TOOL 或 PARAM,并指明其父部件。
制造方法导入会追加到已有的制造方法。Make Method Version(制造方法版本) 留空时写入未归档的最高版本;你指定的版本必须是大于 0、最多两位小数的数字。新 BOM 行排在现有行之后。Op No(工序号) 是工序的顺序,因此必须是数字:与现有工序顺序相同的行会把其步骤、工具和参数加到该工序,10、10.0 和 010 都指同一道工序。方法上已有的行(相同物料、工序、步骤名称、工具或参数键)会被跳过并列出,因此文件可以安全地重复运行。导入只修改草稿版本,并遵循与 BOM 和 BOP 编辑器相同的变更通知和发布锁。被拒绝的部件会连同原因列出,其行一行也不会写入。当发布控制设为警告时,导入会像编辑器一样写入已发布修订,并在结果中把该部件列在警告下。
空白单元格采用编辑器填入的值:没有计量单位的 BOM 行采用物料自己的单位;没有工序类型或工序说明的工序采用其工艺的类型和名称。导入也会拒绝编辑器所拒绝的内容:BOM 行是部件自身或工具/服务、工具不是工具物料、数量/时间/成本为负,以及最大值小于最小值的步骤。检验工序需要检验计划,CSV 无法携带,因此请在应用中添加检验工序。
固定资产不能在这里导入
模型列出了 fixedAsset 导入形状,但导入函数自己的表列表省略了它,因此固定资产 CSV 会被拒绝。请在应用中创建固定资产。BOM 行没有自己的表导入(methodMaterial);请使用上面的 BOM 制造方法导入或在应用中添加。
导入流程
导入使用四步向导,随后是后台写入。
上传。 点击 Bulk Import,选择实体,拖入 CSV。Carbon 在浏览器中解析以读取表头行,并把文件上传到公司的私有存储。你可以先下载该实体的模板:一行 CSV,表头是每个字段标签,唯一的数据行是提示,把每列标记为 REQUIRED(必填)或 optional(可选)并列出有效枚举值。用你的数据覆盖提示行后重新上传。
映射列。 把你的每个 CSV 列匹配到 Carbon 字段。必填字段必须映射;留为 N/A 的会被跳过。对于枚举字段(如补货方式或),还要把你的原始值映射到 Carbon 的值,向导会模糊匹配明显的值(CSV 中的 "B" 会建议 "Buy")。某些查找可以就地创建:尚不存在的类型或状态无需离开向导即可添加。
校验。 映射后的数据按实体 schema 检查。缺少必填字段或值无法解析会在写入前暴露。
导入。 提交会把映射发送到 Carbon,后者调用特权导入函数。它从存储重新下载文件、应用列和枚举映射、逐行决定插入还是更新,并在数据库事务中写入结果。
枚举值回退到默认值
CSV 值没有对应 Carbon 枚举映射时,该行会以该字段配置的默认值导入,而不是失败。例如未映射的「补货方式」单元格会落为 "Buy and Make"。如果默认值不是你想要的,请刻意映射你的值。
插入、更新或跳过
对于标准实体导入,重新导入相同标识符会更新现有记录而不是重复创建。导入器在写入前对每行分类:
按唯一 ID 匹配使用以 csv 来源为键的共享外部映射表,因此同一 ID 文件的第二次导入会走更新路径而不是创建重复。如果记录在应用中创建,而你之后导入使用相同名称的 CSV,名称回退会捕获并更新而不是重复。
导入不会填充自定义字段
导入写入实体的标准字段及其文档化的附属表(地址、付款、供应商部件、成本),不会映射到按公司的自定义字段。请在导入后通过记录表单在应用中设置。
期初库存
库存 → 数量表提供三种加载现有库存的导入,通常在上线时执行一次。每行通过与手工库存调整相同的过账核心过账为 Positive Adjmt.(正向调整):按物料当前成本、日期为今天的一条物料台账分录,以及整个文件在同一张库存调整日记账上的一对分录。物料成本为零的行不生成日记账分录。导入时不评估库存调整业务规则。这些导入只会增加库存,从不减少或设置数量。
选择与物料跟踪类型匹配的导入。物料跟踪类型不同的行会报错并指明正确的导入;非库存物料根本无法入库。
三者共用的规则:
- 部件号 + 版本必须匹配现有物料;版本留空表示
0。未知物料是错误。 - 地点在向导中映射到你的某个地点。存储单元可选,按名称在该地点内匹配,忽略大小写。指定的存储单元不存在是错误;导入绝不会创建它。
- 数量必须是正数。
- 到期日可选,必须写作
YYYY-MM-DD。留空时,固定时长保质期的物料会像手工调整一样计算到期日。 - 没有唯一 ID 列,因此这些导入不记录 CSV ID 映射。
重新导入库存数量文件会再次增加库存
库存跟踪行没有自然键,因此每次导入时每个有效行都会过账。同一文件导入两次会使数量翻倍。批次和序列号行有保护:已存在于该物料(任何状态)的批号或序列号会被跳过,文件中重复的号码在首行之后被跳过。同一序列号出现在两个不同物料上是允许的。
错误与部分失败
导入按行处理校验失败。无效行被报告,有效行继续。结果包括:
- inserted(已插入) 和 updated(已更新)——写入记录数。
- errors(错误)——应修正并重新导入的行(缺少必需数据),每行带行号、原因和原始单元格值。
- skipped(已跳过)——有意不写入的行(文件内重复、已存在),结构相同。
BOM、工序或带制造方法的部件导入会把部件计为插入和更新,并报告新增了多少 BOM 行、工序、步骤、工具和参数。结果例如:「4 个部件已更新。新增:6 条 BOM 行。0 行需要修正,2 行已跳过。」
由于结果携带每个失败行的原始单元格,向导的结果视图会准确显示需要修正哪些行,无需重新解析文件。硬失败(文件无法下载或意外数据库错误)是唯一会使整个导入失败并返回错误消息而不是逐行报告的情况。
导入按设计绕过行级安全
导入函数使用绕过 RLS 的特权数据库连接,因此你的导入权限在提交时一次性前置检查:客户需要销售权限,供应商需要采购权限,物料和制造方法需要物料权限,工作中心和工艺需要生产权限,存储单元和期初库存需要库存权限。如果缺少该模块的更新权限,导入会在任何写入前被拒绝。期初库存导入还需要库存创建权限,与手工库存调整相同。