Kingdee Cloud Skyline Supplier API Field Handbook: YiKuaibao→Kingdee Supply Chain Integration Tutorial
What This Interface Solves
In the YiKuaibao↔Kingdee Cloud Skyline supply chain integration, the Kingdee Supplier master data is the most heavily queried table: purchase orders, payment applications, daily expense reports, and purchase returns all rely on the supplier code to determine currency and payee. If the supplier master is delayed or a code is missing, every downstream document stalls. This tutorial aggregates the lessons learned from 26 strategies into one authoritative handbook.
Interface Capabilities Overview
- Authentication: Kingdee Cloud Skyline uses OAuth2 with a built-in user (KDCloudStdKong) signature. Connection parameters include acctId, appId, appSecret, user, and orgId, all managed by the connector in Qeasy.
- Request / Response: Queries call
Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.View; saves callSavewith FormId=BD_Supplier. Responses return ResultType and Status. - Pagination / Incremental: Supports
Limit/StartNumpagination (≤ 100 per page). The incremental field isupdateTime, advanced via aLAST_SYNC_TIMEcursor. Full validation iterates by orgId.
Typical Field Mapping
| Field | Type | Meaning | Practical Notes |
|---|---|---|---|
| FNumber | String | Supplier code | Unique ID; map from YiKuaibao entityId after code mapping |
| FName | MLString | Supplier name | Required multilingual keys 1033/2052; 2052 mandatory, 1033 as fallback |
| FSupplierId | String | Supplier primary key | Used for lookup; maps to YiKuaibao entityId |
| FCurrencyID | String | Settlement currency | Computed dynamically by domestic/foreign supplier branch |
| FBankAccount | String | Bank account | Clean rule: trim spaces, keep digits only |
| FSupplierOrgId | String | Applicable org | Must match FUseOrgId/FCreateOrgId |
| FAddress | String | Address | From YiKuaibao extension fields; skip if empty |
| FTel | String | Phone | From YiKuaibao cellphone/officeTel |
| FPayCondition | String | Payment terms | Direct map from YiKuaibao u_付款条件说明 |
| FStatus | String | Status | Use updateTime to filter incremental sync |
How to Configure on Qeasy
In Qeasy, Kingdee Supplier sync is typically packaged as a "Kingdee Cloud Skyline adapter + master data strategy." We use one Supplier Sync connector to host authentication and pagination, and the field mapper handles one-to-one mapping of entityId, name, bankAccount from YiKuaibao to FNumber/FName/FBankAccount on BD_Supplier. Qeasy's field mapper runs the bank account cleaning script automatically and writes the result into the platform cache, which strategies G/H/K/R/V query for the domestic/foreign currency branch. The incremental cursor LAST_SYNC_TIME lives as a strategy-level variable; failures land in StrategyErrorDetail and are merged into an email alert by strategy Y.
Cross-Scenario Best Practices
- Master data first: Suppliers, departments, and employees must run before business documents, otherwise downstream lookups miss codes and the whole batch fails.
- Centralize code mapping: Material, customer, supplier, and department codes should live in dedicated mapping tables, not scattered across strategies. The platform cache is the safest shared dictionary.
- Derive currency via lookup, not hardcoding: FCURRENCYID is always computed from supplier master data by the domestic/foreign branch—hardcoding is a recipe for failure once cross-border business goes live.
- Use updateTime for incremental sync: YiKuaibao has no dedicated "last modified" field; the safe pattern is
updateTime+ sorted paging, persisted as a cursor. - Payment writeback must pass through the report tables: When writing Kingdee payments back to YiKuaibao, route through Purchase Order Report (P) and Expense Audit Report (U) caches, then expand by fsrcbillno into multiple dataLinks. Direct writeback misaligns documents.
- Clean sensitive fields via scripts: Strip spaces and keep digits only on bank accounts. Never store plaintext in production; enforce HTTPS plus encrypted storage.
Pitfalls and Lessons Learned
- Pitfall 1: Downstream purchase orders fire before the supplier master is ready, leaving FCURRENCYID empty and triggering 4xx on save. Fix: Promote strategy E to phase one in the scheduler with explicit stage orchestration.
- Pitfall 2: Employees arrive later than suppliers, so daily expense reports can't find the employee code when branching by payee type. Fix: Strategy I must precede R; on miss, fall back to "unknown employee" and alert.
- Pitfall 3: Bank accounts written with spaces cause downstream payment row validation to fail. Fix: Add a cleaning script in AfterSourceInvoke—do not rely on Kingdee-side auto-trim.
- Pitfall 4: Using
createTimefor incremental sync misses records whoseupdateTimeis later. Fix: Standardize onupdateTimewithorderBy=updateTimein every strategy. - Pitfall 5: No backoff on 429 rate-limit responses triggers temporary bans. Fix: Exponential backoff 60s/120s/300s up to 3 retries; on exhaustion, route to dead-letter queue and alert.
When to Use
This interface applies whenever YiKuaibao or the Qeasy middleware syncs supplier master data into Kingdee Cloud Skyline, and the dependent purchase orders, payment applications, daily expense reports, and purchase returns. If the source is not YiKuaibao, field names change, but the methodology—master data first, code mapping, currency branching, incremental cursor—still holds. If the target is Yonyou or SAP instead, repackage pagination and FormId.