1. 方案场景
1.1 客户画像
某知名汽车零部件制造企业,专注于生产发动机部件、传动系统等高精度零部件。企业采用金蝶K3 Cloud ERP 系统进行供应链、财务和生产计划管理,同时使用新核云 MES 系统负责车间生产执行、质量控制和物料流转。该企业属于典型的离散制造业,产品结构复杂,生产批次多,且需满足汽车行业严格的追溯和质量标准。日常运营中,ERP 和 MES 系统独立运行,导致数据流不通畅,影响整体效率。
1.2 客户痛点
企业面临的核心问题包括:
数据割裂与手动同步:ERP 和 MES 系统间基础数据(如物料、BOM)、生产数据(如生产订单、报工记录)需人工录入和核对,错误率高,效率低下。
生产过程不透明:委外加工环节难以实时监控,生产进度、工时统计和成本核算依赖手动报表,偏差率大,影响决策准确性。
质量追溯困难:汽车行业要求全流程质量追溯,但系统间数据不一致,导致从原材料到成品的追溯链条断裂,响应客户投诉时延长达数天。
物料管理低效:倒冲料和备料计划与实际需求脱节,经常出现库存积压或缺料停工,库存周转率低,资金占用高。
1.3 目标愿景
企业希望通过新核云开放平台实现以下目标:
数据一体化:打通金蝶 K3 ERP与新核云 MES,实现数据自动同步,消除信息孤岛,减少人工干预。
生产精细化:实时监控生产进度、委外工序和资源消耗,提升生产透明度和效率。
质量可追溯:建立端到端质量追溯体系,快速响应质量问题,满足汽车行业ISO/TS标准。
物料精准化:优化物料需求计划,实现按需备料,降低库存成本。
2. 解决方案
2.1 方案总览
通过新核云开放平台,构建金蝶 K3 Cloud 与新核云 MES 之间的双向、实时数据集成通道,覆盖11个核心业务场景(包括基础数据同步、生产订单管理、委外加工、生产入库等)。方案采用事件驱动架构,利用新核云 OpenAPI 进行主动数据交换,并通过 webhook 事件订阅实现实时响应。同时,未来还可以使用 web widget 前端插件在 MES 界面中无缝嵌入 ERP 功能,提升用户体验。
数据流向:
ERP → MES:下发物料信息、BOM、生产订单、备料计划、领料出库和生产退料数据。
MES → ERP:回传委外报工记录、生产入库、工序检验入库、报废入库等数据。
技术实现:
API调用:金蝶K3通过新核云 OpenAPI 主动同步数据。
Webhook事件订阅:订阅 MES 事件,触发金蝶K3数据处理。
Web widget集成:未来还可以在 MES 界面中嵌入金蝶K3的生产汇报单查看和编辑功能,避免页面跳转。
定制逻辑处理:包括生产订单多行转单行拼接、工艺路线自动匹配、入库类型区分等。
以下是业务流程图:
2.2 方案优势
全面覆盖:支持多个业务模块集成,涵盖基础数据、生产、委外、质量等全流程,减少定制开发成本。
实时同步:基于 webhook 事件驱动,数据延迟低于1秒,确保实时性和准确性。
灵活适配:通过新核云开放平台配置化处理,轻松适应企业特定业务流程,如多行订单拼接和工艺路线默认值设置。
稳定可靠:内置重试机制、异常告警和性能监控(如日志跟踪)。
降低成本:自动化数据流减少人工操作,提升生产效率,降低运营成本。
3. 集成方式
3.1 核心集成点
| 集成方向 | 业务场景 | 数据内容 | 技术方式 |
|---|---|---|---|
| ERP → MES | 基础数据同步 | 物料信息、BOM | API调用 |
| 生产订单下发 | 生产订单、备料计划 | API调用 | |
| 物流管理 | 领料出库、生产退料 | API调用 | |
| MES → ERP | 委外工序报工 | 在制品入库 | Webhook |
| 生产入库回传 | 生产汇报单(含工时、质量状态) | Webhook | |
| 逆向操作 | 撤销报工、反审核入库 | Webhook |
3.2 实现要点
ERP到MES数据下发:金蝶 K3 利用新核云 OpenAPI 接口,在数据变更时自动触发同步。物料和 BOM 信息通过标准 API 映射字段同步;生产订单处理采用定制逻辑,将 ERP 多行订单拼接为 MES 单行格式(如单号+行号),并默认由 MES 匹配首道工序工艺路线和投料信息,简化集成复杂度。
MES到ERP数据回传:通过订阅新核云 webhook 事件(如报工、入库),实时捕获 MES 操作并调用金蝶 K3 API 回传数据。委外工序报工自动创建入库单,逆向操作支持撤销;生产入库统一下推为生产汇报单,并通过字段映射区分合格与不合格品(如设置库存状态代码),确保数据准确对接。
异常处理:集成逻辑内置错误重试机制和详细日志记录,对 API 调用和 webhook 事件进行监控告警,快速定位并解决同步问题,维护系统稳定性。
3.3 集成步骤
第一步:ERP数据下发:金蝶K3 Cloud ERP系统向新核云开放平台下发基础数据(如物料信息、BOM)和生产数据(如生产订单、备料计划)。这一步通过API调用实现,确保数据从ERP初始同步到新核云开放平台。
// 示例:金蝶K3调用新核云OpenAPI同步生产订单
public void syncProductionOrder(String orderData) {
// 设置API端点(新核云开放平台提供的接口URL)
String apiUrl = "https://open.xinheyun.com/api/production-orders";
// 准备认证Header(使用新核云API密钥)
Map<String, Object> headers = Map.of(
"X-Api-Key", "your_xinheyun_api_key",
"X-Client-ID", "k3_erp_system"
);
// 调用HttpUtil发送POST请求
String response = HttpUtil.httpPost(apiUrl, headers, orderData);
// 处理响应(日志记录/错误处理)
log.info("订单同步响应:{}", response);
}
第二步:开放平台处理与更新:新核云开放平台接收ERP下发的数据,进行格式转换、验证和映射处理,然后调用新核云MES的API接口,更新MES系统中的数据(如生产订单状态、物料清单)。
// 示例:新核云开放平台接收数据后调用MES API
@PostMapping("/sync-to-mes")
public ResponseEntity<String> syncToMES(@RequestBody SyncRequest request) {
// 数据转换(如多行订单拼接为单行)
String mesFormatData = OrderConverter.convertERPToMES(request.getData());
// 调用新核云MES内部API
String mesResponse = HttpUtil.httpPost(
"https://mes.xinheyun.com/internal-api/orders",
Map.of("Internal-Auth", "platform-secret-key"),
mesFormatData
);
return ResponseEntity.ok(mesResponse);
}
第三步:MES执行操作:新核云MES系统根据更新后的数据执行生产操作,如工序报工、委外加工、生产入库等。MES在操作过程中生成实时数据(如报工记录、质量状态)。
第四步:MES数据回传:新核云MES系统将执行结果数据(如委外报工记录、生产入库单)回传给独立部署应用。这一步通常通过事件触发,确保数据及时传递。
// 示例:MES触发Webhook事件通知
public void triggerProductionReport(ReportData data) {
// Webhook订阅端点(独立部署应用的URL)
String webhookUrl = "https://custom-app.com/webhook/production-report";
// 发送实时事件(使用HttpUtil的JSON POST方法)
String response = HttpUtil.httpPost(
webhookUrl,
Map.of("Event-Type", "MES_PRODUCTION_REPORT"),
JsonUtil.toJson(data)
);
// 内置重试机制(简化版)
if (!response.contains("success")) {
log.warn("Webhook发送失败,启动重试...");
HttpUtil.httpPost(webhookUrl, ...); // 实际应实现指数退避重试
}
}
第五步:独立部署应用处理与事件推送:独立部署应用接收MES回传的数据,进行业务逻辑处理(如数据聚合、异常检查),然后通过Webhook事件将数据推送给金蝶K3 Cloud ERP系统。
1. 核心API调用方法
/**
* 执行金蝶K3保存操作(支持保存/提交/审核)
* 这是事件推送的核心方法
*/
void saveOperation(String formId, Object data, K3SaveOperationType operationType, String tenantId) {
// 实际实现会调用金蝶K3的Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save
// 这里简化为伪代码展示流程
String apiUrl = "https://k3cloud.kingdee.com/api/dynamicform/save";
// 构建请求体
Map<String, Object> request = Map.of(
"FormId", formId,
"Data", data,
"Operation", operationType.getValue()
);
// 调用HttpUtil发送请求
String response = HttpUtil.httpPost(
apiUrl,
getK3AuthHeaders(tenantId),
JsonUtil.toJson(request)
);
// 处理响应和异常
if (!response.contains("Success")) {
throw new K3CloudException("保存操作失败:" + response);
}
}
/**
* 下推操作(生产订单 → 生产汇报单)
* 这是实现业务流转的关键方法
*/
String pushDown(String tenantId, String fromFormId, String toFormId,
String ruleId, Collection<String> numberList,
Collection<String> entryIds) {
String apiUrl = "https://k3cloud.kingdee.com/api/dynamicform/push";
// 构建下推参数
Map<String, Object> params = Map.of(
"FromFormId", fromFormId,
"ToFormId", toFormId,
"RuleId", ruleId,
"Numbers", numberList,
"EntryIds", entryIds
);
// 发送请求
return HttpUtil.httpPost(
apiUrl,
getK3AuthHeaders(tenantId),
JsonUtil.toJson(params)
);
}
/**
* 逆向操作:反审核并删除
* 支持业务流程回滚
*/
boolean unAuditAndDelete(String formId, String key, String code, String tenantId) {
// 1. 先反审核
unAudit(formId, Map.of(key, code), tenantId);
// 2. 再删除
return delete(formId, Map.of(key, code), tenantId);
}
2. 业务处理层调用
// 生产入库处理
public EventResult createProductionReport(...) {
// 调用下推接口(步骤5的核心事件推送)
String pushDownResp = invokeK3Service.pushDown(
tenantId,
KingdeeFormIdEnum.PRD_MO.getFormId(), // 生产订单表单
KingdeeFormIdEnum.PRD_MORPT.getFormId(), // 生产汇报单表单
null, null, entryIds
);
// 调用保存操作接口(更新质量状态)
invokeK3Service.saveOperation(
KingdeeFormIdEnum.PRD_MORPT.getFormId(),
updateParams,
K3SaveOperationType.SAVE,
tenantId
);
}
// 逆向操作处理
public EventResult delProduceIn(...) {
// 调用反审核删除接口
invokeK3Service.unAuditAndDelete(
KingdeeFormIdEnum.PRD_MORPT.getFormId(),
"FBillNo",
inventoryBatch.getSourceCode(),
tenantId
);
}
第六步:ERP数据接收与闭环:ERP系统接收Webhook事件,更新内部记录(如生产汇报、库存状态),并验证数据一致性,完成集成闭环,确保系统间数据实时同步。
// 示例:调用金蝶K3 Cloud API回传入库数据
public void pushToK3Cloud(StockInData data) {
// 金蝶K3 API端点
String k3Url = "https://k3cloud.kingdee.com/api/stock/in";
// 金蝶API特殊头要求
Map<String, Object> k3Headers = Map.of(
"KDAPI-Account", "erp_admin",
"KDAPI-Secret", "k3_api_secret",
"KDAPI-Lang", "zh_CN"
);
// 发送请求(设置30秒超时)
String response = HttpUtil.httpPost(
k3Url,
k3Headers,
data.toK3JSON(),
30000L // 显式设置超时
);
// 监控日志(对应方案中的异常处理)
log.debug("金蝶入库接口响应:{}", response);
}
3.4 开发者资源
本方案基于新核云开放平台构建,开发者可利用以下资源快速实施:
新核云开放平台技术文档—— 查看完整API列表和参数说明。
金蝶K3 Cloud 文档 —— 获取金蝶端集成接口详情。
示例代码仓库 —— 包含示例代码,用于API调用和webhook处理。
4. 客户价值总结
该集成方案的实施,为企业、新核云开放平台及行业带来显著价值:
对企业客户的价值:
效率提升:数据同步自动化减少人工操作,生产效率提高.
成本降低:库存周转率提升,缺料停工情况大幅减少,节省人力成本。
质量提升:质量追溯时间从数天缩短至分钟级,客户投诉响应速度提升。
决策支持:实时生产数据支持精准决策,提升订单交付率。
对新核云开放平台的价值:
验证集成能力:在复杂汽车零部件场景中验证了平台的API、webhook功能。
社区建设:案例作为范本,吸引更多开发者参与,丰富社区资源,减少一对一技术支持需求。
可复用性:方案模板可快速适配电子、机械等行业,加速客户 onboarding。
对行业的价值:
标杆案例:为汽车零部件行业提供数字化集成最佳实践,推动行业标准化。
降低门槛:中小企业可参考此案例低成本实现系统集成,促进产业升级。
5. 方案咨询
如果您是汽车零部件企业,正面临系统集成挑战,新核云开放平台为您提供成熟解决方案。
您是业务负责人?
- 联系我们的行业解决方案专家,获取定制化咨询和演示。
- 联系电话:+(86)400-164-1521 | 邮箱:contact@xinheyun.com
您是技术负责人或开发者?
- 立即注册新核云开发者账号,访问完整技术文档和代码示例。
- 加入新核云社区论坛——开放平台,与其他开发者交流经验.
