Qeasy Cloud
Get Started

Master Data Sync from Lingxing Auxiliary Materials to Kingdee Cloud Materials: A Qeasy Hands-On Tutorial

· 谢锴斌· Integration Solutions· 15 views· 4 min read
Kingdee CloudERP供应链集成主数据同步轻易云batchSave

What This Strategy Solves

Pushing auxiliary-material master data from Lingxing ERP to Kingdee Cloud looks like a trivial table copy. In practice, a poorly designed code mapping or description convention will cause reconciliation drift within three months. Using the Qeasy Data Integration Platform, we deliver this strategy as a stable, low-latency foundation for downstream procurement, sales, and inventory flows.

Data Flow and Field Mapping

End-to-end flow: Lingxing ERP (source, incremental pull of auxiliary-material list by create_time) → Qeasy middleware (mapping, code completion, cleansing) → Kingdee Cloud material (target, batchSave).

Representative field mapping:

SemanticSource (Lingxing aux API)Middleware HandlingTarget (Kingdee batchSave)
Unique codeskuPass-through, used as the dedup keyFNumber
Material nameproduct_namePass-throughFName
Description / specdeclaration.customs_declaration_specPass-through, fallback to empty stringFDescription
Create org—Constant 100FCreateOrgId
Use org—Constant 100FUseOrgId
Source internal ididIdempotency hint only—
Pull windowcreate_time_start/endVariables {{LAST_SYNC_TIME}} / {{CURRENT_TIME}}—

Note: setting both id to 0 and idCheck=true lets the target system dedupe by code, which is the reliable pattern for Kingdee material.

How to Configure in Qeasy

On the Qeasy platform, configure the strategy in three parts: source connector, target connector, and the integration flow.

  1. Source connector (Lingxing ERP): API /erp/sc/routing/data/local_inventory/productAuxList, POST, WebAPI type, QUERY effect. Hard-code offset=0, length=100, and bind create_time_start/create_time_end to {{LAST_SYNC_TIME}} and {{CURRENT_TIME}}. Enable autoFillResponse so the response schema is auto-discovered.
  2. Target connector (Kingdee Cloud): API batchSave, POST, EXECUTE effect. Set FCreateOrgId and FUseOrgId to constant 100; bind FNumber, FName, FDescription to source fields via variables.
  3. Flow orchestration: pull → map → batch submit → log. A common pattern among Qeasy customers is to keep code mapping in a centralized node that handles special characters, empty-value fallback, and length truncation. This node becomes reusable for sibling strategies such as "Lingxing Product → Kingdee Material".
  4. Idempotency: rely on the target system's code-based dedup (idCheck=true); keep the middleware light, avoiding hard deduplication that could block legitimate writes.

Implementation Steps

We recommend a three-phase rollout.

Phase 1: Incremental baseline. Run an initial full backfill by create_time, then switch to the incremental window using {{LAST_SYNC_TIME}} and {{CURRENT_TIME}}. Source cron 58 0 * * *, target cron 59 0 * * * — source first, target second, naturally serializing pull-then-write.

Phase 2: Full reconciliation trigger. Schedule a weekly full reconciliation (e.g., Sunday 02:00) to catch anything missed during incremental runs. Configure it as a separate timer in Qeasy, running alongside the daily incremental.

Phase 3: Stabilize the cadence. Daily incremental is sufficient for auxiliary materials; over-frequent pulls only stress upstream APIs. Once Lingxing batches move to hourly granularity, then revisit and tighten the cron.

Lessons Learned

  1. Empty descriptions break batchSave. declaration.customs_declaration_spec is sometimes empty while FDescription is required. A typical failure is letting batchSave fail the whole batch; the safer move is to fall back to an empty string in the middleware.
  2. Case-sensitive SKU mismatches. Lingxing usually sends uppercase SKUs while legacy Kingdee codes mix cases, producing "same item, different code". The wrong move is direct pass-through; the right move is to uppercase and trim in the mapping layer.
  3. Hidden 100-row page cap. The source defaults to length=100. Many teams forget pagination and silently get only the first 100 rows. Enable auto-pagination in Qeasy and detect the next-page indicator.
  4. Hard-coded org constants. Hard-coding FCreateOrgId/FUseOrgId to 100 forces a full reconfiguration when multi-org customers switch organizations. Bind orgs via a lookup dictionary and pass them dynamically per material.
  5. Missing baseline timestamp. If you don't persist the initial LAST_SYNC_TIME, the second run silently drops data. Persist CURRENT_TIME after every run as the next baseline.

Applicable and Non-Applicable Scenarios

Applicable: auxiliary/finished SKU sets at the ten-thousands scale, daily-level change frequency, target systems that dedupe by code in supply-chain integration. Not applicable: real-time sub-second material status sync, multi-language/multi-currency complex specifications, or private deployments where batchSave is not exposed.

Original content. Please credit the source when reposting: https://www.qeasy.cloud/insights/solutions/strat-kingdee-cloud-erp-9642-n3b43463f-9b5db689

Comments