Skip to content

[P1] import: no CSV / Excel import wizard — customer Day-1 cold-start has no path #1297

@xuyushun441-sys

Description

@xuyushun441-sys

来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 4 条(P1)。

现象

平台没有 CSV / Excel 导入向导。新客户上线时没有任何把存量数据导进系统的路径

  • 客户的合同清单、供应商库、客户资料、KB 文章、历史工单 —— 全部要么手敲、要么写脚本调 API。
  • 模板里的种子数据 ≠ 客户自有数据;客户启用模板后 Day-1 是空的。

这把 ObjectStack 的「上手即用」承诺打得稀碎:客户花 10 分钟看完了 demo,要花 10 周凑数据。

复现

任意模板 + 一份真实客户的 CSV。从 Console / 应用页面试图导入 — 没有入口。

当前 workaround

  • 走 REST API:POST /api/v1/data/<object> 单条循环(无字段映射、无错误恢复、无幂等去重)。
  • 写一次性 seed script(只有开发者会做)。
  • 把数据塞进模板 src/data/index.ts 然后重发版本(违反「数据 vs 元数据」分离)。

建议范围

M1:导入向导(per-object)

  • 入口:每个 list view 顶栏「Import」按钮
  • 步骤:上传 CSV / xlsx → 自动检测分隔符 / 编码 → 字段映射(拖拽匹配) → 校验预览(前 20 行红绿提示) → 提交(异步 job)
  • 唯一键去重 / Upsert 选项(基于 externalId 或任意字段)
  • 失败行下载(带原因列)

M2:关联字段处理

  • 通过「lookup-by-business-key」语义:CSV 里写 customer_email,导入时按 customer 对象的 email 字段反查 ID
  • 缺失关联时:跳过 / 自动建桩 / 报错三选一

M3:模板预设映射

  • 每个对象可在 spec 声明 importPreset: { columns: [...] , defaults: {...} } —— 模板作者预定义好「客户最常导入的字段」一键映射

M4:导出对称

  • 同一对象 list view 「Export」按钮,导出 CSV / xlsx,作为反向通道(同时是「先导出 → 编辑 → 再导入」的常用模式)

验收

  • 任意模板的任意对象 list view 都有 Import / Export 按钮
  • 包含字段映射 + 校验预览 + 异步处理 + 失败行回收
  • contracts 模板:能 CSV 导入 500 条 vendor + 1000 条 contract,关联 vendor 用 vendor.code
  • 缺陷库 gap Add Changesets and GitHub Actions automation #4 标记为已解决

影响

  • 客户冷启动从 10 周缩到 1 天,直接决定 conversion。
  • 任何要求「数据迁移」的 RFP 否则零分。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:p1High: required for production / M2

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions