Qeasy Cloud
Get Started

MES to Kingdee Cloud Skylink Supply Chain Integration Overview: 14 Strategies Bridging Master Data, Production, and Inventory

· 王浩宇· Integration Solutions· 31 views· 4 min read
四化智造MES(WEB)Kingdee CloudMES供应链集成轻易云数据集成平台私有化部署虚拟物料

Scenario and Value

In one real manufacturing integration project, the business side reported: MES reporting, material issue, and quality inspection data had to be manually re-entered into Kingdee Cloud Skylink by procurement and finance staff. Month-end reconciliation showed discrepancies running into double or even triple digits, and the outsourcing process was especially chaotic — raw materials, semi-finished goods, and outsourcing fees were mixed in the same application, leading to wrong document types or mismatched departments and materials on the Kingdee side.

The root cause was not a data entry error on either side, but the lack of an automatic closed loop between the two systems. MES is a fact-recording system; Kingdee is a financial accounting system. Kingdee strictly differentiates document types (expense purchase requisition, production issue, miscellaneous delivery, virtual warehouse stock-in/out, etc.), while MES only cares about production execution. Coding rules, warehouse conventions, and organizational conventions differ between the two, and manual reconciliation cannot keep up.

This solution arranges 14 strategies into layers — master data first, business flows in parallel, queries independent — so that every outsourcing application, material issue, and quality pass-in from MES lands in the corresponding Kingdee document within a configurable time window and is auto-submitted for audit.

Integration Architecture and Data Flow

The overall architecture is one-way synchronization: MES (WEB) is the source system, Kingdee Cloud Skylink is the target system, and the integration platform — Qeasy, the data integration platform from Qingyiyun — handles 12 SYNC strategies and 2 QUERY_ONLY strategies, deployed on-premises.

┌─────────────────────┐                    ┌─────────────────────┐
│   MES (WEB)          │  ── 12 SYNC ─────▶│   Kingdee Skylink   │
│   (Source A)         │                    │   (Target B)        │
└─────────────────────┘                    └─────────────────────┘
         │
         │  2 QUERY_ONLY strategies (in-platform, no persistence)
         ▼
┌─────────────────────┐
│   Integration Platform / Manual │
└─────────────────────┘

The data flow runs in four phases:

  1. Master data landing: Strategy A syncs MES material processes into Kingdee virtual materials (FMaterialGroup=virtual) and is the prerequisite for all subsequent issue, stock-in, and stock-out operations.
  2. Procurement and quality: Strategies B (expense purchase requisition), E (outsourced inspection → purchase stock-in), and M (in-process inspection → miscellaneous stock-in) run in parallel with no mutual blocking.
  3. Production and inventory: Strategies C/D (outsourced issue), F/G/H (internal production issue, semi-finished stock-in/out), I (production report), and J/K (feed/return) depend on the virtual materials created by Strategy A.
  4. Auxiliary queries: Strategies L (purchase todo) and N (process info) are read-only, do not write to Kingdee, and serve reporting and manual review.

Interface List

Strategy IDData ObjectDirectionNotes
AMaterial process → virtual materialMES→KingdeeMaster data, must run first
BOutsourcing application → expense purchase requisitionMES→KingdeeType CGSQD04_SYS
COutsourced issue (raw) → production issueMES→KingdeeLinked to production order
DOutsourced issue (semi) → miscellaneous deliveryMES→KingdeeSemi-finished only
EInspection (no process) → purchase stock-inMES→KingdeeType picked by bill prefix RKD01/RKD03
FInternal semi issue → misc delivery (virtual wh)MES→KingdeeVirtual warehouse
GInternal production issue → production issueMES→KingdeeLinked to production order
HInternal semi stock-in → misc stock-in (virtual wh)MES→KingdeePairs with F
IProduction stock-in request → production reportMES→KingdeeLinked to production order
JProduction feed → production feedMES→KingdeeTrim empty link nodes
KProduction return → production returnMES→KingdeeInverse of J
LPurchase todo queryMES→PlatformRead-only
MInspection (with process) → misc stock-inMES→KingdeeIn-process inspection
NProcess info queryMES→PlatformRead-only

Implementation Notes

Phased scheduling: Strategy A runs full sync every 2 hours or once daily; B–K and M run incremental every 15–30 minutes; L and N run on demand or hourly. Master data must execute before business strategies, otherwise downstream will fail because the virtual material does not yet exist.

Incremental fields and full fallback: All SYNC strategies default to incremental cursors on updateTime/id. Strategy A runs a full sync at first go-live and at a fixed weekly point to cover cases where MES does not update updateTime.

Code mapping: Four mapping tables — material (partNo → FNumber), supplier (supplierName → FSupplierId), department (createName → FPostDept lookup), warehouse (warehouse_uuid → Kingdee warehouse ID) — are centrally maintained on the platform, so source-side code changes do not affect downstream.

Exception retry: Network timeouts use exponential backoff at 30s/60s/120s, up to 3 retries; Kingdee 5xx triggers 2 retries; 4xx and data validation failures do not retry but write to the failure table for manual fix and re-sync. The whole chain uses business document numbers (business_no, orderNo, etc.) as idempotency keys to avoid duplicates.

Privacy and permissions: Sensitive master data such as organization and supplier passes through the platform's mapping layer; clear text is not persisted in logs. Failure details retain only the fields needed for troubleshooting.

Best Practices and Pitfall Review

  1. Master data first, no parallelism. In the first version we tried to run business strategies in parallel with master data to save time, but a large batch of issue documents failed because virtual materials had not yet been created. We later split Strategy A into a separate "master data channel" and blocked all downstream strategies until it completed. The problem disappeared immediately.
  2. Trim empty link nodes in feed/return. In Strategies J/K, if a detail row has no source issue document to link, FEntity_Link will be sent as an empty object to Kingdee and immediately trigger a validation failure. The safe approach is to strip empty nodes in the AfterTargetGenerate hook before submission.
  3. Inspection bill prefix decides stock-in type. Strategy E uses LEFT(purchaseOrderNo,4)='CGDD' to distinguish standard purchase stock-in from outsourced purchase stock-in. Do not hard-code the type in configuration, or you will need a code change every time the document type changes.
  4. Pair virtual material with virtual warehouse. Semi-finished goods exit via Strategy F and enter via Strategy H. Using the same virtual warehouse convention is the only way to keep the inventory ledger balanced; do not substitute a real warehouse, or month-end stocktaking will not match.
  5. Centralize code mapping management. Once supplier, material, and department mapping tables are scattered across multiple strategies, maintenance becomes painful. Maintain versions centrally in Qeasy with an approval workflow for changes.

When to Use Qeasy

When MES and Kingdee Cloud Skylink must collaborate across multiple business domains and organizations — with strict requirements on document type, organizational convention, and virtual material/warehouse conventions — the visual strategy orchestration, dependency scheduling, code mapping, and failure retry mechanisms of Qeasy can be reused directly. There is no need to write a separate integration service for each document, and stable operation is maintained in an on-premises environment.

Original content. Please credit the source when reposting: https://www.qeasy.cloud/insights/solutions/sol-mes-web-kingdee-cloud-9660

Comments