Authoritative Tutorial on the Xbongbong Product Query API: Field Handbook for Jushuitan × Xbongbong Master Data Integration
What This API Solves
In Jushuitan × Xbongbong master-data integration, products anchor sales orders, quotations, and opportunities. The /pro/v2/api/product/list endpoint paginates the Xbongbong product list. Typical uses are syncing Xbongbong products into Jbmsuitan goods and feeding mapping/lookup tables. It is read-only and commonly drives downstream master-data governance.
Capability Overview
- Auth: Standard Xbongbong OpenAPI auth; the body carries
corpidanduserIdfor tenant and operator identification. - Method: POST, JSON body.
- Key Inputs:
page(default 1),pageSize(default 100),conditions(filter),viewApproval(include pending approvals, 1/0),corpid,userId. - Response: A wrapped envelope; business data lives in
result.list. Each record carriesdataId,data,addTime,updateTime,formId. - Pagination / Incremental: Traditional
page+pageSizepaging; incremental syncs can rely onupdateTimetime windows. - Strategy Type: QUERY_ONLY. Target is configured as "write-no-op," landing data in the Qeasy staging layer only.
Typical Field Mapping
| Field | Type | Meaning | Practical Notes |
|---|---|---|---|
| dataId | string | Internal product primary key | Mapped to id in metadata; used for dedup and cross-system linkage |
| data.serialNo | string | Business product code | Mapped to number; stable key for Jushuitan goods mapping |
| data | object | Product detail object | Holds name, spec, category, price, unit; schema depends on Xbongbong form config |
| addTime | string | Created time | Suitable for audit and first-sync judgment |
| updateTime | string | Last modified time | Best anchor for incremental sync via time windows |
| formId | string | Business form ID | Distinguishes product ownership in multi-form / multi-line setups |
Configuring in Qeasy
In the Qeasy Data Integration Platform, this API is usually exposed as a "Query Adapter." Selecting the Xbongbong product source auto-loads /pro/v2/api/product/list with a prefilled request template. In the field mapper, map dataId to the primary-key column and data.serialNo to the code column. result.list is auto-flattened into rows, and pageSize defaults to 100 but is tunable for stress tests. Set the target to "no-op" to preserve the read-only semantics, and schedule with a business-hours cadence such as */30 8-20 * * *.
Cross-Scenario Lessons
- Use
dataIdas the primary key anddata.serialNoas the business key. Roles are stable across scenarios: the primary key handles dedup, the business key powers Jushuitan goods mapping. Don't mix them up. - Flatten
databefore mapping. In Qeasy's field mapper, expanddataand pick only what you actually need rather than dumping the whole JSON into a target field. updateTimeis more incremental-friendly thanaddTime. Products change prices and categories far more often than they are created, so a time window onupdateTimecuts request volume significantly.- Page size is not "the bigger the better."
pageSize=100is a safe default. Too large risks Xbongbong throttling; too small inflates request count. In real projects it usually lands between 50 and 200. viewApprovaldecides whether to wait for approvals. If the downstream sync demands "products in use," pass0to exclude pending approvals and avoid dirty data entering Jushuitan.- Use
formIdto isolate multi-form / multi-line businesses. In groups running several Xbongbong forms,formIdis the key signal of product ownership—don't ignore it.
Pitfalls & Fixes
- Pitfall 1: Treating
data.serialNoas the primary key.serialNomay be empty or changed, causing key drift. KeepdataIdas PK anddata.serialNoas business key only. - Pitfall 2: Misaligned
updateTimetime zones. If the timestamp carries a timezone but the consumer parses it as local time, increments miss data. Normalize timezones centrally in Qeasy. - Pitfall 3: Relying on the default
viewApproval. Behavior varies across environments when omitted; pass0or1explicitly to avoid dirty data. - Pitfall 4: Treating empty
result.listas success. Handle empty pages separately—don't let an incremental run misread "no changes" and skip the next pull. - Pitfall 5: Writing the entire
dataobject into the target. This pollutes Jushuitan goods fields and trips downstream validation. Pick fields precisely in the mapper.
When to Use
This API fits one-way sync where Xbongbong is the product master source and Jushuitan is the downstream goods store. It also works well for initial master-data inventory. For two-way sync or complex business validation, layer write-side strategies on top rather than overloading this read-only endpoint.