使用 DMT 和 REST API 批量导入数据到 Epicor ERP

← 返回首页

数据迁移的重要性

在 ERP 项目实施中,从旧系统迁移数据是关键环节之一。准确、高效的数据迁移直接影响项目上线后的业务连续性。Epicor 提供了两种主要的数据导入方式:DMT(Data Migration Tool)和 REST API。

DMT(Data Migration Tool)

DMT 是 Epicor 官方提供的桌面工具,适合大批量数据迁移场景。

DMT 优势

DMT 使用流程

1. 准备数据文件(CSV/Excel)
   - 第一行为字段名,必须与 Epicor 字段名完全匹配
   - 日期格式建议使用 YYYY-MM-DD
   - 数值字段不要包含货币符号和千分位逗号

2. 配置 DMT 连接
   - 服务器地址和实例名
   - 数据库连接信息
   - 认证方式(Windows 集成认证或用户名密码)

3. 选择导入对象
   - 如 Part、Customer、OrderHed、OrderDtl 等

4. 映射字段
   - 将源数据列映射到 Epicor 目标字段
   - 设置必填字段的默认值

5. 预验证(Validate)
   - 检查数据完整性和业务规则
   - 修正错误后重新验证

6. 执行导入(Process)
   - 选择"添加"或"更新"模式
   - 监控导入进度
DMT 导入前务必在测试环境做一次完整的演练。特别注意:主数据(如 Customer、Part)必须先于事务数据(如 OrderHed)导入,否则会因外键约束而失败。

REST API 方式

对于需要编程控制的场景,Epicor REST API 提供了更灵活的数据操作能力。

认证获取

POST /api/v1/auth/login
Content-Type: application/json

{
    "username": "manager",
    "password": "********",
    "instance": "EPIC06"
}

// 返回 accessToken,有效期 2 小时

创建物料主数据

POST /api/v1/odata/EPIC06/Erp.BO.PartSvc/Parts
Content-Type: application/json
Authorization: Bearer {token}

{
    "PartNum": "FG-10001",
    "Description": "成品A-10001",
    "PartClass": "FG",
    "ProdCode": "MFG",
    "TypeCode": "P",
    "UOMClassID": "EA"
}

批量创建

POST /api/v1/odata/EPIC06/Erp.BO.PartSvc/UpdateExt
Authorization: Bearer {token}

{
    "Part": [
        {"PartNum": "FG-10001", "Description": "成品A", "PartClass": "FG"},
        {"PartNum": "FG-10002", "Description": "成品B", "PartClass": "FG"},
        {"PartNum": "RM-20001", "Description": "原材料C", "PartClass": "RM"}
    ]
}

DMT vs REST API 对比

常见问题排查

  1. 外键约束失败:确认主数据已先导入(如导入订单前确保客户和物料已存在)
  2. 日期格式错误:统一使用 ISO 8601 格式(YYYY-MM-DDTHH:mm:ss)
  3. 编码重复:使用 UpdateExt 的 upsert 模式实现"存在则更新,不存在则创建"
  4. 字段长度超限:导入前检查字符型字段长度是否超出数据库定义
  5. 必填字段缺失:通过 DMT 的 Schema 功能查看所有必填字段列表

总结

DMT 和 REST API 各有优势,实际项目中往往结合使用。DMT 用于初始数据批量迁移,REST API 用于日常的数据集成和自动化流程。选择哪种方式取决于具体场景和团队能力。