Purchase Order Sync from Weaver OA to Kingdee Cosmic: A Single-Strategy Integration Deep Dive
What This Strategy Solves
Purchase orders sit at the heart of supply chain operations. In one manufacturing engagement, purchase orders were raised in Weaver OA-E9, but receiving, IQC inspection, and finance all run on Kingdee Cosmic. Without orders flowing into Cosmic, the warehouse had to re-key everything—slow and error-prone. We used the Qeasy data integration platform to build a single "purchase order sync" strategy that pushes OA purchase orders into Cosmic and generates inbound stock documents. Encoding mappings are centrally managed, header and body are processed in phases, and we run an incremental + full reconciliation dual track.
Data Flow and Field Mapping
End-to-end flow: Weaver OA-E9 (source) → Qeasy middleware (cleaning, mapping, enrichment) → Kingdee Cosmic (target, generates inbound stock document).
Key field mapping (simplified):
| Meaning | Weaver OA-E9 field | Qeasy middleware | Kingdee Cosmic field |
|---|---|---|---|
| Document number | requestNo | Pass-through, used as idempotency key | FBillNo |
| Supplier code | supplierCode | Looked up via supplier mapping table | FSupplierId (master data ID) |
| Material code | itemCode | Looked up via material mapping, validated | FMaterialId |
| Quantity | qty | Unit conversion (EA/box) | FQty |
| Price | price | Tax-inclusive / tax-exclusive conversion | FPrice |
| Warehouse code | warehouseCode | Mapped to Cosmic warehouse master data | FStockId |
| Line number | lineNo | Renumbered as consecutive integers | FEntryEntity/FSeq |
The classic pitfall here is supplier and material master data IDs: OA carries business codes, Cosmic needs the underlying primary key. We centralize all code mappings into a single mapping resource on Qeasy so a new code is provisioned on both sides in one place—this is one of the patterns Qeasy customers rely on to avoid silent drift.
Configuring on Qeasy
On the Qeasy platform the strategy has four building blocks:
- Data source registration. Register the Weaver OA-E9 Http endpoint as a source with the right auth, and Kingdee Cosmic as a target system logged into the appropriate org.
- Strategy canvas orchestration. Source side pulls incrementally by document status + last modified time. Target side uses Cosmic's "purchase inbound" save API. In between, add cleaning nodes, unit conversion nodes, and ID mapping nodes.
- Idempotency and dedup. Use OA's requestNo as the idempotency key. Cosmic's FBillNo uniqueness constraint guarantees duplicate pushes never create duplicate documents.
- Exception handling. Failed records land in Qeasy's error table. Engineers see precise field-level errors in the console—"supplier not found," "warehouse disabled"—everything laid out clearly.
Implementation Steps
We recommend slicing the go-live into three phases to keep things stable:
- Phase 1: align the incremental starting point. Manually trigger a one-time historical full backfill in Qeasy to push all legacy orders. After that, the scheduler only picks up deltas. The incremental field is OA's "last modified time" with minute-level granularity to avoid missing records.
- Phase 2: set the scheduling frequency. By default, run the incremental pull every 5 minutes—this meets business needs in most cases. During month-end closing or large receiving batches, temporarily move to 1-minute high-frequency mode. Qeasy's scheduler supports this kind of dynamic adjustment.
- Phase 3: full reconciliation. Run a full comparison during off-peak hours once a week. Compare "successfully inbound into Cosmic" vs "approved orders in OA." Any drift gets investigated immediately.
A common pattern among Qeasy customers: process header and body in stages. Push the header first to obtain the FBillNo, then push the body in batches by line number. This avoids timeouts when submitting huge bodies in one shot.
Pitfall Review
- Encoding mappings not maintained. Classic mistake: mappings are complete at go-live, but three months later new materials appear without mappings and Cosmic rejects with "material not found." Steady practice: put mappings into the change process so new materials are created on both sides at the same time.
- Unit conversion ignored. OA stores units in "box," Cosmic in "EA." Direct mapping multiplies inventory by the wrong factor. We recommend doing unit conversion in the Qeasy middleware and adding a validation rule to block abnormal data.
- Wrong idempotency key. A past project used "creation time" as the idempotency key and ended up pushing the same document multiple times. The safe choice is the business document number.
- Header and body submitted in one go, timing out. Documents with 200+ lines timeout. Staged submission solves it.
- Ignoring available inventory check. Purchase inbound triggers an availability check. We recommend turning that off in Qeasy and letting downstream documents handle it.
When It Applies and When It Doesn't
Applies: when Weaver OA is the entry point for purchase orders and Kingdee Cosmic is the back-end ERP, and the business needs near-real-time or real-time sync to generate inbound stock documents—common in manufacturing and retail. Does not apply: when both systems have strong validation rules with large semantic gaps, or when the purchase order needs complex approval flows that OA cannot provide.