| Status | |
|---|---|
| Owner | THANGARAJAN-ext, Ganesan |
| Stakeholders | The business stakeholders involved in making, reviewing, and endorsing this decision. Type @ to mention people by name |
The purpose of this document is to define the data conversion approach for creating Pricing Condition Records in the SAP S/4HANA target system, as part of a Greenfield implementation.
In SAP ECC, sales pricing condition records exist as part of the pricing procedure configuration and are stored in condition tables such as KONV, A*, and related master and transactional tables. These records are used to define pricing elements such as base price, discounts, freight, and surcharges across sales documents.
In SAP S/4HANA, the structure and usage of pricing condition records remain largely consistent; however, data models may be simplified, and dependencies on business partners (replacing customer/vendor master records) become critical in ensuring consistency across sales and purchasing functions.
This conversion aims to migrate active and relevant sales pricing condition records from existing ECC systems into S/4HANA by applying required transformation logic using Syniti as the data migration and transformation platform. The converted records will be loaded into the target S/4HANA system using standard SAP mechanisms such as IDOCs, BAPIs, or direct table loads where applicable.
This process will support the migration of condition records such as:
The conversion will ensure all condition records are aligned to the new Pricing Key combinations defined for example, based on Business Partner, Material Masters and relevant Organizational Units (Sales Org, Distribution Channel, Division) as designed for the target S/4HANA landscape.
The data from legacy system includes:
The data from legacy system excludes:
| Source | Scope | Source Approx No. of Records | Target System | Target Approx No. of Records |
|---|---|---|---|---|
WP2 | Pricing Condition Records |
| S/4HANA System |
|
PF2 | Pricing Condition Records |
| S/4HANA System |
|
Not Applicable
None identified. The conversion scope is limited to the migration of pricing condition data records. No document attachments, images, or supporting files are included.
Summarize Legal Requirement/s, if any
Specify any special requirements or considerations that may impact the data conversion process based on specific locations, regulatory compliance or system limitations. Clearly outline any regional or localization requirements such as country-specific data formats, legal reporting obligations or industry standards that must be adhered to (e.g., localization rules for countries like China).
If the data conversion involves third-party systems or external data sources, such as Icertis, describe any additional requirements related to data mapping, transformation logic, validation rules or security measures that must be followed.
With Functional input, document the technical design of the target fields that are in the scope of this document.
The technical design of the target for this conversion approach.
| Table | Field | Data Element | Field Description | Data Type | Length | Requirement |
|---|---|---|---|---|---|---|
KONH | KNUMH | KNUMH | Condition Record Number | CHAR | 10 | Mandatory (Key) |
KONH | ERDAT | ERDAT | Created On | DATS | 8 | Optional |
KONH | DATAB | DATAB | Valid From | DATS | 8 | Mandatory |
KONH | DATBI | DATBI | Valid To | DATS | 8 | Mandatory |
KONP | KSCHL | KSCHL | Condition Type | CHAR | 4 | Mandatory |
KONP | KBETR | KBETR | Rate | CURR | 11 | Mandatory |
KONP | KPEIN | KPEIN | Pricing Unit | DEC | 5 | Mandatory if UoM |
KONP | KMEIN | KMEIN | Unit of Measure | UNIT | 3 | Optional |
KONP | WAERS | WAERS | Currency | CUKY | 5 | Mandatory |
KONP | KZBZG | KZBZG | Calculation Type | CHAR | 1 | Mandatory |
| KONM | KSTBM | KSTBM | Scale Base Value | DEC | 17 | Optional |
| KONM | KBETR | KBETR | Scale Rate | CURR | 11 | Optional |
All data cleansing should take place in the data source system as defined in this document, unless system limitations prevent it.
If data cleansing is managed outside of the source system (e.g. Syniti Migrate, 3rd Party Vendor, DCT), the necessary documentation must be produced and appended to this deliverable for sign-off.
| ID | Criticality | Error Message/Report Description | Rule | Output | Source System |
|---|---|---|---|---|---|
1034-001 | C1 | Remove obsolete condition records | Eliminate pricing condition records where the material, customer, or condition type is blocked or discontinued. | List of obsolete records | WP2/PF2 |
1034-002 | C1 | Validate Customer-Material master data | Ensure pricing condition records refer to valid and active Customer and Material master records. | List of invalid Customer Material combinations | WP2/PF2 |
1034-003 | C1 | Remove expired condition records | Delete condition records where validity end date has already passed. Exception the condition records required for open sales orders under migration scope | List of expired records | WP2/PF2 |
1034-004 | C1 | Validate mandatory fields | Check for missing mandatory fields (e.g. Condition Value, Currency, UoM, Scale data, Validity dates). | List of incomplete records | WP2/PF2 |
1034-005 | C2 | Detect duplicate condition records | Identify and flag duplicate pricing condition records for the same condition type, key combination, and validity period. This is possible as the source is from multiple systems WP2 and PF2 | List of duplicate records | WP2/PF2 |
1034-006 | C1 | Validate currency consistency | Validate that the currency used in pricing conditions matches the currency allowed for the corresponding sales organization or customer master data. | List of inconsistent currency | WP2/PF2 |
1034-007 | C2 | Validate scale data | Identify and correct scale records with inconsistent or overlapping ranges (quantity/value). | List of scale issues | WP2/PF2 |
1034-008 | C1 | Validate unit of measure consistency | Validate unit of measure used in pricing conditions aligns with material master base UoM and allowed UoMs. | List of inconsistent UoM records | WP2/PF2 |
The high-level process is represented by the diagram below:
Summarize High-Level Process. Include diagrams, where applicable. Include information supporting details of Extract, Transform and Load specific to the Data Object

Extract data from a source into Syniti Migrate. There are 2 possibilities:
The agreed Relevancy criteria is applied to the extracted records to identify the records that are applicable for the Target loads
| Req # | Requirement Description | Team Responsible |
|---|---|---|
| 1034-001 | Confirm scope and extraction approach for each ECC source systems WP2, PF2 (direct DB or manual extract) | Data Team (L2C), Data Team (Syniti) |
| 1034-002 | Establish and validate Syniti connectivity to both ECC source systems | Technical / Basis Team, Data Team (Syniti) |
| 1034-003 | Perform full data extraction from relevant SAP pricing tables (e.g., A*, KONH, KONP, etc.) from both source systems WP2, PF2 | Data Team (Syniti) |
| 1034-004 | Extract pricing condition records via the application layer for additional validations for Manual Data Collection using DCTs | Functional / Data Team (L2C) |
| 1034-005 | Apply agreed Relevancy Criteria to filter only applicable condition records for S/4HANA (e.g., active conditions, valid dates, active customers/materials) | Data Team (L2C), Data Team (Syniti) |
| 1034-006 | In case of restricted access or connectivity issues, receive pre-extracted pricing reports/files from source system team and upload to Syniti Migrate manually | Data Team (L2C), Data Team (Syniti) |
| 1034-007 | Identify pricing data not present in SAP (e.g., special rates, legacy exceptions) and collect manually via DCT (Data Collection Template) | Business Users / Data Team (L2C), Data Team (Syniti) |
| 1034-008 | Perform data quality checks on extracted records (e.g., missing key fields, invalid dates, incorrect formats) | Data Team (L2C), Data Team (Syniti) |
| 1034-009 | Review and approve extracted data sample sets from each source system before transformation begins | Business / Functional Team |
| 1034-010 | Archive raw extracts and maintain extraction audit logs for traceability | Data Team (L2C), Data Team (Syniti) / PMO Team |
| Selection Ref Screen | Parameter Name | Selection Type | Requirement | Value to be entered/set |
|---|---|---|---|---|
A Target Ready Data Collection Template will be created for the required data, except for fields that need transformation as per the defined transformation rules. These templates will follow the format required by the target S/4HANA pricing configuration.
Each template corresponds to a specific condition table structure, designed to handle data based on the key combinations used for one or more condition types. You can identify the correct template based on the condition type and the relevant sales organizations or entities.
Please find the complete list of Data Collection Templates in the link attached below.
DCT-CNV-1034-Pricing Condition Records
Please note, creation of Data collection template must be aligned with pricing configurations for Condition types, Access sequence and Associated Condition Tables. For now, the following Template is prepared based on Pricing Configurations from S/4HANA Sandbox environment. This will be replaced once the pricing configuration is ready.
<Object> DCT Rules
| Field Name | Field Description | Rule |
|---|---|---|
| KSCHL | Condition Type | Mandatory. Must be a valid condition type configured in S/4HANA. Use lookup list provided. |
| Field List Based on Chosen Access Table / Key Combination (Refer to Full Template List Above) | ||
| VKORG | Sales Organization | Mandatory. Must match valid Sales Org values in target system. Only authorized values per scope should be used. |
| VTWEG | Distribution Channel | Optional based on condition table. Must be valid if provided. |
| SPART | Division | Optional. Use only if applicable. Validate against S/4HANA master data. |
| KUNNR | Customer Number | Must be a valid customer number in the S/4HANA master data. |
| LIFNR | Vendor Number | Use only when condition type applies to vendor. Must match master data. |
| MATNR | Material Number | Used only for material-based pricing. Should be padded to 18 characters. |
| WERKS | Plant | Optional. Use only if relevant for the pricing condition. |
| Mandatory Fields in All DCTs | ||
| KBETR | Condition Rate | Mandatory. Should be numeric. Decimal separator should be "." (e.g., 25.50). |
| KONWA | Currency | Mandatory. Must be a valid ISO currency code (e.g., USD, EUR). |
| KPEIN | Pricing Unit | Mandatory. Must be numeric and represent number of units (e.g., 1, 1000). |
| KMEIN | Unit of Measure | Mandatory. Must match valid UOM from SAP (e.g., EA, KG, L). |
| DATAB | Valid From Date | Mandatory. Format: YYYYMMDD. Cannot be in the past or beyond system date range. |
| DATBI | Valid To Date | Mandatory. Format: YYYYMMDD. Must be later than Valid From date. |
List the steps that need to occur before extraction can commence
| Item # | Step Description | Team Responsible |
|---|---|---|
| Not Applicable | ||
The Target fields are mapped to the applicable Legacy field that will be its source, this is a 3-way activity involving the Business, Functional team and Data team. This identifies the transformation activity required to allow Syniti Migrate to make the data Target ready:
| Item # | Step Description | Team Responsible |
|---|---|---|
| 1 | Identify target S/4HANA fields and determine applicable legacy source fields from both ECC systems WP2, PF2 | Functional Team (L2C)+ Data Team (L2C) |
| 2 | Review condition types and access tables used in each ECC source systems WP2, PF2 | Business Team + Functional Team (L2C) |
| 3 | Map legacy field values to S/4HANA target values (including field-level mapping and technical names) | Data Team (L2C), Data Team (Syniti) |
| 4 | Define value mapping rules for fields requiring standardization or harmonization across the two source systems WP2, PF2 (i.e., USD, US$ mapped to USD, and ZD01 and ZDISC from ECC system mapped to ZD01 etc., | Functional Team (L2C)+ Data Team (L2C) |
| 5 | Identify and agree on default values where legacy data is incomplete or inconsistent | Business Team + Functional Team (L2C) |
| 6 | Configure transformation rules in Syniti Migrate (including calculated fields, formatting rules, etc.) | Data Team (Syniti), Data Team (L2C) |
| 7 | Review transformation logic and mappings with Business for confirmation | Business Team + Functional Team (L2C) |
| 8 | Perform initial transformation run and generate draft target-ready dataset | Data Team (Syniti), |
| 9 | Review draft target-ready data for structure and completeness | Data Team (L2C), Functional Team (L2C) |
| 10 | Share transformed data with Business for Pre-load Validation | Business Team |
| 11 | Incorporate feedback from Business and refine mappings or transformation logic as needed | Data Team (L2C) |
| 12 | Finalize and approve transformed data as Target Ready Load File | Business + Functional (L2C) + Data Team (L2C) |
| 13 | Handover final file to Load Team or trigger the load via Syniti Load Workbench | Data Team (Syniti), Data Load Team |
Transformation Rules
The source and target tables have the same fields as listed in the key combination. Please check the attached file for the complete source-to-target field mapping CNV-1034-Transformation Rules
| Rule # | Source system | Condition Type | Source Table | Key Combination (Fields) | Target System | Target Table | Target Condition Type | Target Description | Transformation Logic |
|---|---|---|---|---|---|---|---|---|---|
| 1034-001 | QF2 | BOLL | A764 | ALAND / LLAND / VKORG | S/4HANA | A764 | BOLL | ||
| 1034-002 | QF2 | BOLL | A110 | LLAND / VKORG | S/4HANA | A110 | BOLL | ||
| 1034-003 | QF2 | CTXJ | A604 | AUART_SD | S/4HANA | A604 | CTXJ | ||
| 1034-004 | QF2 | CV | A534 | KUNNR / LLAND / SPART / VKBUR / VKORG / VTWEG / ZZPRODH_P3 | S/4HANA | A534 | CV |
| Field Name | Mapping Table Name | Mapping Table Description |
|---|---|---|
| AUART_SD | AUART | Sales Document Types |
| BUKRS | BUKRS | Company Code |
| KUNAG | KUNNR | Business Partner - Customer |
| KUNNR | KUNNR | Business Partner - Customer |
| KUNRG | KUNNR | Business Partner - Customer |
| KUNWE | KUNNR | Business Partner - Customer |
| LGORT | LGORT | Storage Location |
| MATKL | MATKL | Material Group |
| MATNR | MATNR | Material Master |
| PRODH | PRODH | Product Hierarchy |
| SPART | SPART | Division |
| VKBUR | VKBUR | Sales Office |
| VKORG | VKORG | Sales Organization |
| VKORGAU | VKORG | Sales Organization |
| VTWEG | VTWEG | Distribution Channel |
| WERKS | WERKS | Plant |
| Item # | Step Description | Team Responsible |
|---|---|---|
| 1 | Value Mapping Tables are complete | Functional Team (L2C) + Data Team (L2C) |
| 2 | Pricing configuration is complete | Functional Team (L2C) + Data Team (L2C) |
| 3 | Org structure configuration is complete | Functional Team (L2C) + Data Team (L2C) |
| 4 | Dependent Master Data records for Customer and Material are loaded | Functional Team (L2C) + Data Team (L2C) |
| Task | Action |
|---|---|
| Configuration | Ensure necessary configurations are in place in target system and field mapping is aligned with access sequence, pricing condition types |
| Review Mapping Table | Ensure all the source organization units are mapped with target values |
| Check Values | Validate the pre-load data confirming the values are aligned with target system format and |
| Validate template structure and required field population | Ensure mandatory fields like VKORG, VTWEG, MATNR, KUNNR, KSCHL, valid dates are filled |
| Task | Action |
|---|---|
| Review Mapping Table | Ensure all the source organization units are mapped with target values |
| Check mapping rules against configuration (access sequences, condition tables) | Cross-check mapping sheet with customizing entries in V/03, V/04, V/05, V/08 |
| Set up validation rules based on condition tables and field catalog | Use rule-based validation and lookups against master data (e.g., MARA, KNA1) |
| Perform format validation (date, currency, decimal separators) | Standardize format to match SAP accepted input (e.g., YYYYMMDD for dates) |
| Implement logic to detect duplicate condition records | Example: Run duplicate checks using key combinations (e.g., VKORG + MATNR + KUNNR) |
| Conduct dry runs using LTMC or BAPIs and review logs | Analyze load results and correct format or conversion errors |
| Task | Action |
|---|---|
| Review populated templates for missing or incorrect values | Use checklists to verify completeness and correctness before submission |
| Ensure all required pricing scenarios are covered | Confirm that customer/material-specific special conditions are not missed |
| Task | Action |
|---|---|
| Review condition records for duplicate or conflicting entries | Review for duplicates within key combinations (e.g., customer-material-date) |
| Validity Period Check | Review validity period of the condition records to ensure pricing coverage |
| Spot-check high-impact pricing conditions for accuracy | Validate pricing accuracy for key customers and materials |
The load process includes:
| Item # | Step Description | Team Responsible |
|---|---|---|
| 1 | Confirm readiness of final approved data sets for each ECC source system WP2 and PF2 | Business / Functional Team |
| 2 | Validate transformation rules and mappings in Syniti tool | Data Team (L2C-Data) |
| 3 | Generate target-ready load files based on S/4HANA condition table format | Data Team (Syniti) |
| 4 | Review and approve load files before execution | Business / Functional Team |
| 5 | Execute automated data load using Syniti into the S/4HANA system (or generate manual load files if required) | Data Team (Syniti) |
| 6 | Monitor load progress and capture load statistics (records loaded, errors, duplicates, etc.) | Data Team (Syniti) / Technical Team |
| 7 | Extract loaded data from S/4HANA for post-load validation | Data Team (Syniti) |
| 8 | Perform post-load data validation (compare target data with source/approved files) for all loaded pricing condition types | Data Team (L2C-Data) |
| 9 | Log and resolve any data load errors or mismatches identified during validation | Data Team (L2C-Data) + Functional Team |
| 10 | Obtain business sign-off on successful load and validation | Business Team |
| 11 | Archive load logs, error reports, and validation results for audit/compliance | Data Team (L2C-Data) / Data Team (Syniti) / PMO |
Load Phase and Dependencies
Identify the phase as to “when” the load for this object will occur. <Pre-Cutover, Cutover, Post Cutover> and list the steps that need to occur before the load can commence
List the Configurations required before loading can commence
| Item # | Configuration Item |
|---|---|
| Condition types | Ensure the condition types are assigned with access sequence and condition tables are active for all the key combinations planned for each condition type |
| Organization Data | Ensure configurations for all the organization units involved in pricing condition records are imported into the target system |
| Object # | Preceding Object Conversion Approach |
|---|---|
| Business Partner | Business Partner |
| Material Master | Material Master - Basic View, Product Hierarchy, Material Group, Material Group 1 to 5 |
As part of the sales pricing condition data load from multiple SAP ECC systems to a single S/4HANA instance using the Syniti data migration tool, various data quality, configuration, and technical challenges may arise. These errors typically occur during the transformation, load, and post-load validation phases and can impact the accuracy, completeness, or acceptance of condition records in the target system.
The following table outlines the most commonly observed error types during data load, and the corrective actions typically taken to resolve them. This helps ensure consistency in issue handling, improves traceability during cutover, and supports smooth end-to-end execution of the pricing condition load.
| Error Type | Error Description | Action Taken |
|---|---|---|
| Invalid Condition Type | Condition type not found or not configured in target S/4HANA system | Validated against configuration; corrected or replaced with valid KSCHL |
| Missing Key Fields | One or more key fields (e.g., VKORG, MATNR, KUNNR) are blank or incorrectly formatted when required as per the selected Key Combination | Populated missing values; ensured format (e.g., leading zeros for KUNNR/MATNR) |
| Invalid Date Range | Valid From (DATAB) is after Valid To (DATBI) | Corrected the date range to ensure DATAB < DATBI and in required date format |
| Duplicate Records | Identical key combinations found more than once in the load file | Duplicates removed or merged as per business rule. Aligned with Business and documented for future loads |
| Unmapped Values | Values for fields like UoM (KMEIN), Currency (KONWA), etc. not mapped in Syniti | Updated mapping tables; ensured value conversion aligned with S/4HANA settings |
| Invalid Currency Format | Incorrect currency formatting or unsupported currency code | Standardized to valid ISO currency codes (e.g., USD, EUR, JPY) |
| Invalid Number Format | KBETR or KPEIN contains special characters or comma separators | Cleaned formatting; ensured decimal values used with '.' as separator |
| Authorization Errors | Lack of access to execute load in target client/system | Raised access request; obtained necessary authorizations |
| Condition Table Mismatch | Field structure in load file doesn’t match condition table in target system | Corrected the file structure to align with condition table (A001, A002, etc.) |
| Transformation Miss | Required transformation logic not applied before load | Re-applied transformation rules and revalidated source-target mapping |
| Obsolete Master Data | Customer or material master data no longer exists in target system | Replaced or removed based on business input |
| Technical Load Failure | File not processed due to syntax/format error or system issue | Reviewed logs; regenerated file; re-executed load after resolving issue |
| Missing Condition Record Dependencies | Dependent records (e.g., access sequences, pricing procedures) not available | Reviewed config dependencies; coordinated with config team for correction |
| Task | Action |
|---|---|
| Execute condition record report (e.g., V/LD, PRC_COND_MONITOR) | Run transaction reports to confirm condition records exist as expected |
Compare uploaded data against source file values | Use Custom reconciliation tools or Excel based comparison tools to validate the following ensure number of records loaded meets the load file record volume |
Check for load errors or partial loads in AIF or LTMC | Review IDocs, BDC, or Legacy Transfer Migration Cockpit LTMC logs for any failures |
Perform technical reconciliation with database tables (e.g., KONH, KONP) | Query SAP tables and match field-level values using SE16N or custom report |
| Task | Action |
|---|---|
| Compare uploaded data against source file values | Use Custom reconciliation tools to validate the following
|
| Verify Key Field Values | Ensure values like Condition Type, Material, Customer, Sales Org, Validity Dates, and Rates are correctly populated |
| Task | Action |
|---|---|
| Participate in Post-Load Walkthroughs | Join scheduled validation sessions with the migration and functional teams |
| Review Loaded Condition Records | Access the S/4HANA system (via transactions like VK13 or custom reports) to view loaded pricing data |
| Check for Missing Records | Identify any missing condition records or key combinations that were expected but not loaded |
| Task | Action |
|---|---|
| Compare Against Approved Load File | Cross-check data in S/4HANA against the final business-approved load file used for migration |
| Validate Accuracy of Converted/Transformed Data | Review any transformed fields (e.g., currency conversion, unit mappings) for correctness |
| Log and Report Discrepancies | Use provided discrepancy log format or defect management tool to report any findings |
Any additional key assumptions.
Insert links and references to other documents which are relevant when trying to understand this decision and its implications. Other decisions are often impacted, so it's good to list them here with links. Attachments are also possible but dangerous as they are static documents and not updated by their authors.