Warehouse Inventory Sync in Practice: Configuring Monthly Surplus Count from Jiandaoyun to Kingdee Cloud via Qeasy
What This Strategy Solves (Scenario and Value)
In a retail enterprise, monthly warehouse counts are recorded in Jiandaoyun as a "Warehouse Count Sheet (Monthly)". The surplus portion needs to generate an "Other Inbound" document in Kingdee Cloud to update book inventory. Although it looks like a simple document transformation, count data spans warehouses, materials, batch numbers, quantities, and variance reasons—any mismatch will leave book and physical inventory permanently out of sync.
We use the Qeasy Data Integration Platform to host this strategy, reliably and traceably sending monthly surplus records to Kingdee, achieving book-to-physical consistency and closed-loop documentation.
Data Flow and Field Mapping
The overall flow is: Jiandaoyun Count Sheet (filtered for surplus rows in the middle layer) → Qeasy intermediate table → Kingdee Cloud Other Inbound document.
Key field mapping (Jiandaoyun → Kingdee):
- Document Number: Count Sheet No. → Other Inbound document number (custom numbering rule, must be enabled on Kingdee side)
- Business Date: Count Date → Business Date
- Warehouse Code: Count Warehouse Code → Inventory Warehouse (organization + code combination)
- Material Code: Material Code → Material Code
- Batch Number: Batch field → Batch Number (leave empty for non-batch-managed materials)
- Actual Quantity: Counted Quantity → Received Quantity
- Variance Reason: Variance Description → Remark/Summary
- Document Type: Fixed value "Surplus Inbound" → Document Type (mapped per target system preset)
How to Configure on Qeasy
In the Qeasy Data Integration Platform, typical configuration is divided into four parts:
- Data Source Connection: Add Jiandaoyun as a source system, select the "Warehouse Count Sheet (Monthly)" form, and configure access credentials (desensitized).
- Target System Connection: Add Kingdee Cloud as the target, use its open API to write the "Other Inbound" document, paying attention to context parameters such as account set, organization, and warehouse.
- Field Mapping and Transformation: In Qeasy's mapping canvas, map source fields one by one per the table above. For organization-sensitive fields like warehouse code, we recommend maintaining a "Warehouse Code Mapping Table" in Qeasy that centrally manages the Jiandaoyun warehouse and Kingdee warehouse (including the organization dimension)—this is one of the common patterns Qeasy customers use.
- Filter and Routing: Add a branch condition in the middle layer to pick only rows with "Variance Quantity > 0"; shortages go through a separate strategy without interference.
Implementation Steps
The implementation rhythm we usually follow with customers has four steps:
- First Full Sync: Manually triggered after monthly closing, pushing all surplus documents for the current month at once as a baseline. Qeasy's full-sync tasks support breakpoint resumption, so a network blip mid-push will not lose data.
- Confirmation and Reconciliation: Review document-by-document on the Kingdee side, check quantity, batch number, and warehouse, then post inventory only after everything is correct.
- Incremental Starting Point: Record the "last sync time" in Qeasy's incremental cursor, then push newly added or changed surplus records on schedule.
- Scheduling Frequency: For monthly count scenarios, we recommend a scheduled trigger once a month (around 02:00 on the 1st), aligned with the month-end closing window. If a customer needs weekly or daily counts, copy the same strategy and change the filter condition to the corresponding cycle.
This "dual-track incremental and full sync" is another common Qeasy customer practice: full sync to set the baseline, incremental sync for daily ops. Both pipelines share the same mapping configuration, so a single change applies everywhere.
Pitfall Review
From a real engagement, several pitfalls are worth documenting:
- Warehouse code missing the organization dimension. A typical mistake is feeding Jiandaoyun's warehouse code directly to Kingdee, which uses a multi-org architecture—without an organization prefix, it reports "warehouse does not exist". The safe approach is to combine organization + code into a composite key recognized by the target system in Qeasy's mapping table.
- Batch number field not handling nulls. Some materials are not batch-managed; Jiandaoyun's batch field is empty, and pushing it directly causes Kingdee validation to fail. The safe approach is to add a rule in Qeasy's transformation: when batch is empty, write null to the target field instead of an empty string.
- Document number collision between count sheet and inbound document. If both sides share the same numbering rule, "document number already taken" errors occur. The safe approach is to enable "allow manual document number entry" on the Kingdee side, with Qeasy generating per a unified rule to avoid collisions.
- Surplus and shortage pushed together. A monthly count sheet has both surplus and shortage rows; if pushed in one batch, the target side struggles to identify direction. The safe approach is to route in Qeasy's middle layer by sign of variance quantity—surplus to "Other Inbound", shortage to "Other Outbound", with strategies maintained separately.
- Resource contention at month-end timing. Both Jiandaoyun and Kingdee are busy on the closing day, making timeouts likely. The safe approach is to place the sync window in the early morning at the beginning of the month, with failures routed through Qeasy's retry queue rather than stacked during daytime business hours.
Applicable and Non-Applicable Scenarios
Applicable: Enterprises with standardized monthly count processes that need surplus/shortage results to land in the ERP in real time or on schedule for book adjustment; especially suited for multi-org, multi-warehouse chain retail or distribution scenarios.
Not applicable: Scenarios where count dimensions do not align with the ERP (e.g., Jiandaoyun counts by SKU while Kingdee manages by SKU + batch number), where Kingdee organization context permissions are unavailable, or where the count process itself allows manual entry—in these cases, forced sync actually increases maintenance overhead.