数据迁移的重要性
在 ERP 项目实施中,从旧系统迁移数据是关键环节之一。准确、高效的数据迁移直接影响项目上线后的业务连续性。Epicor 提供了两种主要的数据导入方式:DMT(Data Migration Tool)和 REST API。
DMT(Data Migration Tool)
DMT 是 Epicor 官方提供的桌面工具,适合大批量数据迁移场景。
DMT 优势
- 图形化操作界面,操作简单直观
- 支持 CSV 和 Excel 数据源格式
- 内置数据验证规则,导入前自动检查数据质量
- 支持批量处理(一次导入数千条记录)
- 提供详细的导入日志和错误报告
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 对比
- DMT:适合一次性大批量迁移,操作简单,有完整的数据验证;不适合需要实时集成的场景
- REST API:适合编程集成、实时数据同步和自动化流程;需要开发能力,错误处理需要自己实现
常见问题排查
- 外键约束失败:确认主数据已先导入(如导入订单前确保客户和物料已存在)
- 日期格式错误:统一使用 ISO 8601 格式(YYYY-MM-DDTHH:mm:ss)
- 编码重复:使用 UpdateExt 的 upsert 模式实现"存在则更新,不存在则创建"
- 字段长度超限:导入前检查字符型字段长度是否超出数据库定义
- 必填字段缺失:通过 DMT 的 Schema 功能查看所有必填字段列表
总结
DMT 和 REST API 各有优势,实际项目中往往结合使用。DMT 用于初始数据批量迁移,REST API 用于日常的数据集成和自动化流程。选择哪种方式取决于具体场景和团队能力。