Qeasy Cloud
Get Started

Practical Guide: Syncing Stores from the Source ERP to Customer Master Data in the Target ERP

· 钟家寿· Integration Solutions· 28 views· 5 min read
JushuitanKingdee Cloud主数据同步店铺客户Incremental Sync全量初始化轻易云轻易云Qeasy

What This Strategy Solves

A retail enterprise needs to treat stores from the source ERP as customer master records in the target ERP. This may look like simple master-data transfer, but unclear coding rules, inconsistent statuses, and an undefined update scope can quickly create duplicate customers and stale store records. We use Qeasy to connect the complete process: source identification, data transformation, target-side persistence, and operational visibility.

Data Flow and Field Mapping

The data flow is: store data from the source ERP → the Qeasy intermediate layer → customer master data in the target ERP. Records are cleaned, matched, and validated before they are written to the target system.

Business MeaningSource Store FieldQeasy Intermediate ProcessingTarget Customer Field
Customer codeStore codeStandardize the format; route conflicts to the exception queueCustomer code
Customer nameStore nameTrim outer spaces and preserve a valid business nameCustomer name
Base categoryStore attribute or typeMap to the customer base categoryCustomer base category
OwnerAssigned person informationTransform according to the ownership mapping ruleCustomer manager
StatusActive or inactive statusPrevent inactive records from being newly createdCustomer effective status
Contact informationAddress and contact detailsNormalize formats and process sensitive fields according to access rulesAddress and contact fields
Source identifierStore source identifierPreserve source and update timeCustom source field

Coding mappings should be centrally managed rather than scattered across scripts. When two stores have the same name, the unique source code must be the matching key. If the customer already exists in the target system, update it; otherwise, create it. A common response pattern is centralized coding-map management, allowing one rule change to apply across the integration.

How to Configure It in Qeasy

First, create a “Store to Customer” synchronization strategy in the Qeasy data integration platform. Select the source ERP as the source, the target ERP as the destination, and configure a one-way flow. Use a strategy name that clearly identifies the business object so it is not confused with other master-data strategies.

Second, configure source extraction. Read store records in a stable order and capture the source identifier, update time, status, and other fields required for synchronization. Do not retrieve an unnecessarily large scope at once; filtering by status or update time is preferable where supported.

Third, configure intermediate transformation. Standardize codes, names, and statuses, and populate fields required by the target system. Convert addresses and contact details according to the target field definitions. When sensitive information is involved, transmit only what the business process requires. Records that cannot be mapped to a base category or owner should not be silently discarded; instead, emit a clear failure reason.

Fourth, configure target-side persistence. Query the target system by customer code before writing. Update an existing customer and create a missing one. Inactive stores should not be created by default; whether inactive status should be synchronized must be defined as an explicit business rule. Idempotency control is recommended, using the source identifier together with the target code to determine whether an operation is necessary.

Fifth, configure exception handling and monitoring. Duplicates, missing fields, mapping failures, and target write failures should be classified separately. Each exception should include the source record identifier, rule name, and failure reason. Qeasy task execution records can be used to review success counts, failure counts, and retry results. A completed task should not automatically be considered a business-correct result.

Implementation Steps: Incremental Start, Full Trigger, and Schedule

Before production rollout, run a full initialization. The purpose of a full task is not to guarantee one flawless run, but to establish a verifiable baseline: how many source records were read, how many mappings succeeded, how many customers were created or updated, and how many exceptions occurred. Business users should sample both newly created and updated customers to verify codes, names, categories, and statuses.

Configure incremental synchronization from the last successful source-side time, while preserving the time window and task state properly. A safer approach is to retain a lookback period before each read so that boundary records are less likely to be missed. The exact window depends on the business change rate and should not be assigned an invented fixed value here. Use the update time as the basis for advancing the synchronization cursor.

Choose the schedule according to how frequently store information changes. A lower-frequency schedule can be used when changes are infrequent, while the frequency can be increased when records change often. Regardless of frequency, avoid having multiple tasks read the same data simultaneously. Enable the daily incremental process only after the initial full load and validation have completed.

During the initial rollout, a dual-track mode of incremental and full synchronization can be used: run incremental synchronization on a schedule while retaining a manually triggered full reconciliation task. Full synchronization does not replace incremental synchronization. It repairs historical omissions, validates mapping rules, and identifies target-side exceptions. If a staged header/body approach is required, this strategy focuses on customer master data, so the customer header can be completed first and contact information can be expanded later if needed.

Monitor every run with traceable states such as pending, extraction completed, transformation completed, write completed, and exception pending. Repair failed data and rerun it; do not modify previously recorded results directly.

Lessons Learned: Common Failure Points

1. Using the store name as the unique key. A typical mistake is to skip records when names match, causing different stores to be omitted. Always use the unique source code, and treat the name only as a display field.

2. Full synchronization repeatedly creates customers. Without a target-side existence check, rerunning the full load creates duplicates. Query by the target code before writing and control creation and updates with an idempotency key.

3. Inactive stores are created again. Inactivity in the source does not mean a new customer should be created in the target. The intermediate layer must use status as a write condition, updating the target status or sending the record to a confirmation queue instead of creating it.

4. Encoding rules are embedded in transformation scripts. Multiple strategies then maintain conflicting rules. Centralize coding mappings, publish changes consistently, and retain historical versions.

5. Only the task success count is reviewed. A successful write can still contain an incorrect base category or a truncated field. Sample-check source and target records after every release and monitor exception types continuously.

Suitable and Unsuitable Scenarios

This strategy is suitable when stores must be managed as customer master records that support subsequent order, settlement, or transaction processes. It is not suitable for transactional details, real-time inventory, or other high-frequency data. If a store and a customer are different business entities, model them separately instead of forcing the relationship through field mapping alone.

Original content. Please credit the source when reposting: https://www.qeasy.cloud/insights/solutions/strat-jushuitan-kingdee-cloud-4911-n4e4ab070-4b0e7c58

Comments