Authoritative Tutorial: Kingdee Cloud Bank Account Query Interface Field Handbook
What This Interface Solves
In supply chain integration between Kingdee Cloud and Xiaoman OKKI CRM, bank account master data is the common reference base for payment receipts, collection documents, and invoicing information. The CN_BANKACNT interface is used to batch-pull bank account master data from the Kingdee side on schedule, which downstream systems use for CRM bank account reconciliation and customer/supplier payment account references. It is a pure query strategy with an empty write operation on the target side.
Interface Capability Overview
- API:
executeBillQuery(Kingdee Cloud universal document query interface) - FormId:
CN_BANKACNT(bank account master data form) - Request Parameters:
FormId,FilterString,FieldKeys,Limit,StartRow, supporting field-set paginated retrieval - Pagination Mode: Controlled via
{{PAGINATION_PAGE_SIZE}}and{{PAGINATION_START_ROW}}variables - Scheduling: Scheduled task, crontab
3 2 * * *(daily at 02:03) - Response Structure: Returns three base fields:
FNumber,FName,FBANKID - Integration Role: QUERY_ONLY (query only, no target write)
Typical Field Mapping
| Field Name | Type | Meaning | Field Notes |
|---|---|---|---|
| FNumber | string | Account code, business-side unique identifier | Both number and id in Kingdee point to this field; always use FNumber as the primary key for cross-system reconciliation |
| FName | string | Bank account name / display name | Used for display in business documents; may share the same value as FNumber in some scenarios but should not be used interchangeably |
| FBANKID | string | Opening bank association identifier | Pitfall point: depending on FieldKeys configuration, may return FBANKID.FNumber or FBANKID.FName; downstream must be compatible with both forms |
Generic concept mapping: FNumber → bank_account_code, FName → bank_account_name, FBANKID → opening_bank_id.
How to Configure on Qeasy Cloud
In the Qeasy Cloud Data Integration Platform, the Kingdee Cloud source side has been encapsulated as a standard adapter. Calling executeBillQuery requires only three steps:
- Select Form: In the source adapter dropdown, select
CN_BANKACNT; the platform will automatically load the default field set - Configure FieldKeys: In the Qeasy field mapper, check FNumber, FName, FBANKID; if the opening bank name is needed, expand
FBANKID.FNamein Kingdee metadata - Configure Pagination Variables: Bind
Limitto{{PAGINATION_PAGE_SIZE}}andStartRowto{{PAGINATION_START_ROW}}; Qeasy Cloud will automatically iterate page by page until empty
Since this strategy is QUERY_ONLY, simply configure the target side as an empty write operation. Qeasy Cloud will not perform any database writes—it only pushes data to downstream strategies or temporary storage areas.
Cross-Solution Practical Points
- FNumber is the unique anchor: All cross-system reconciliation and customer/supplier payment account references must go through FNumber—do not match by FName
- Dual-form compatibility for FBANKID: Downstream parsing must be compatible with both
FBANKID.FNumberandFBANKID.FName, otherwise data flow will break across different customer environments - Use FilterString for incremental sync: Filtering by
FModifyDate > last_sync_timeis more stable than full re-pull; Qeasy Cloud variables can directly inject timestamps - Avoid the dawn window: 02:03 avoids Kingdee's own settlement and backup windows to prevent long-transaction blocking
- Trim FieldKeys first: Only check business-required fields to significantly reduce per-call response payload size
- Empty write is not useless: QUERY_ONLY strategies often serve as data sources or reconciliation baselines for downstream sync strategies
Pitfall Retrospective
- FBANKID nested object parsing failure: When FieldKeys is written as
FBANKID, it returns the association ID string; when written asFBANKID.FNumber, it returns the code—both formats must be handled separately downstream, otherwise opening banks will all be empty - FNumber and FName confusion: Business teams mistakenly use FName as the reconciliation key, causing accounts with identical names to be conflated—the safe approach is to reject non-FNumber primary keys at the interface layer
- Pagination variables not substituted: In early Qeasy Cloud versions, hardcoded Limit/StartRow caused only the first page to be retrieved; be sure to use platform pagination variables
- Dawn settlement collision: When crontab overlaps with Kingdee's daily settlement task,
executeBillQuerywill time out; recommend leaving a 30-minute buffer before and after - Empty result due to insufficient permissions: If the Kingdee integration user lacks
CN_BANKACNTquery permissions, the system silently returns empty data—integration monitoring needs zero-data alerts
When to Use
Suitable for scenarios where Kingdee Cloud serves as the ERP master data source and bank accounts need to be synchronized to downstream systems such as CRM/SCM. If the downstream does not depend on opening bank details, or if Kingdee already has a standard API alternative, evaluate whether to consolidate it into a master data sync strategy for reuse.