Stepwise Push-In + Self-Flow Push-In: Practical Guide to Syncing Outbound Warehouse Adjustment Documents from Kingdee Cosmos to Wangdiantong
What This Strategy Solves
Outbound warehouse adjustment documents originate in Kingdee Cosmos and need to flow into Wangdiantong to close the loop on inventory and document status. On the surface it looks like a simple document handover, but the real challenges are threefold: first, Kingdee generates large volumes with many statuses, and a full dump into Wangdiantong can easily trigger rate limits on the target system; second, the binding between the header and line items must be preserved, otherwise physical stock and book stock diverge; third, outbound warehouse adjustments involve batches and inventory states, and mapping rules are scattered. We use the Qeasy data integration platform as the backbone. The core approach is "stepwise push-in" to break the write cadence into manageable chunks, combined with "self-flow push-in" so that Wangdiantong completes its own internal document flow after receiving the data.
Data Flow and Field Mapping
The overall flow is: Kingdee Cosmos (source) → Qeasy integration platform (middleware) → Wangdiantong (target).
| Domain | Source (Kingdee Cosmos) | Middleware (Qeasy) | Target (Wangdiantong) |
|---|---|---|---|
| Document Number | FBillNo | bill_no (standardized) | outer_order_no |
| Adjustment Type | FAdjustType | adjust_type_code | adjust_type |
| Warehouse Code | FStockId | warehouse_code | warehouse_no |
| Line Material | FMaterialId | sku_code | goods_no |
| Adjustment Quantity | FQty | qty | adjust_qty |
| Batch Number | FLot | lot_no | batch_no |
| Document Date | FDate | biz_date | order_date |
| Remarks | FNote | remark | remark |
The middleware does three things: centralizes code mapping by keeping the Kingdee FStockId to Wangdiantong warehouse_no lookup table in Qeasy so all strategies can reuse it; standardizes fields so dates, quantities, and strings share one internal format; and tags status (pending write, written, failed retry).
How to Configure on Qeasy
Step one, build the source connection on the Qeasy data integration platform using the Kingdee Cosmos adapter and confirm authorization for the organization and document type. Step two, build the target connection using the Wangdiantong adapter and confirm that the outbound warehouse adjustment interfaces are available. Step three, do the field mapping — this is where things go wrong easily. The classic mistake is to pass Kingdee FMaterialId directly as Wangdiantong's goods_no, only to find that the two coding systems do not line up at all. The safe approach is to run a mapping table plus a custom script in the middleware for the conversion. Step four, configure the stepwise push-in cadence parameters: batch size, timeout threshold, and failure retry count. Step five, attach the self-flow push-in rules on the target side so that Wangdiantong completes its own review and bookkeeping flow.
Implementation Steps
We recommend a four-phase rollout.
Phase One: Incremental Starting Point. Begin with incremental data after a chosen cutoff date to avoid flooding the target system with history. Use the modification timestamp on the Kingdee side as the incremental cursor.
Phase Two: Full Backfill Trigger. Once incremental runs are stable, pick a low-traffic window (such as early morning on a weekend) to trigger one full backfill and complete the historical adjustment documents. Stop the full job immediately after it finishes; keep only the incremental job.
Phase Three: Scheduling Cadence. We suggest a 15-minute increment cycle — close to real-time without hitting Kingdee's interface frequency limits. The schedule can be expressed via cron in Qeasy.
Phase Four: Monitoring and Alerts. Wire up a DingTalk bot to push failed documents, backlog counts, and timeout durations into the ops group. A common pattern among Qeasy customers is the "incremental plus full double track": run incremental daily, and run a full reconciliation once a month to make sure the two sides still match.
Lessons Learned from the Field
1. Push header and lines in stages — do not write the whole document at once. In one real project we tried pushing the whole document in one go, and Wangdiantong ended up with misaligned line items. We spent half a day tracing it back to a field-length truncation on the target interface. The safe approach is to write the header first and then push the lines in smaller batches.
2. Code mapping must be centralized. Hard-coded mappings scattered across each strategy will, three months later, leave no one remembering the mapping rules. When the numbers diverge, the cost of root-causing it becomes enormous.
3. Do not truncate the batch number. Kingdee's batch number is a long string; Wangdiantong supports it, but if the middleware truncates it by mistake, same-batch inventory gets scrambled.
4. Failure retries must be tiered. Network jitter can auto-retry, but business validation failures need human intervention — do not retry them forever.
5. Align time zones and date formats during configuration. Kingdee's default organization time zone and Wangdiantong's may differ; normalize them in the middleware to yyyy-MM-dd HH:mm:ss in UTC+8 up front.
When This Fits and When It Does Not
Fits: adjustment, transfer, and profit/loss documents between Kingdee Cosmos and Wangdiantong, where the target system needs to complete its own review flow. Does not fit: high-frequency inventory movements requiring sub-minute real-time; or scenarios where the source document structure changes so often that maintaining the middleware mapping table becomes impractical.