| Status | Revision under Review |
|---|---|
| Owner | THANGARAJAN-ext, Ganesan |
| Stakeholders |
Purpose
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.
Conversion Scope
The scope of this document includes the end-to-end approach for:
- Extracting existing Pricing Condition Records from SAP ECC systems WP2 and PF2.
- Applying transformation and cleansing logic via Syniti to conform with the S/4HANA data model and business partner framework.
- Loading the transformed condition records into SAP S/4HANA while ensuring data integrity, correct assignment to condition types, condition tables, access sequences, and pricing procedures.
This process will support the migration of condition records such as:
- Base Price (e.g., PR00)
- Discounts (e.g., K007, K004)
- Freight and surcharges
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:
- List price at various key combinations including scale-based pricing as applicable
- Discounts and surcharges at various key combinations
- Freight condition records at various key combinations
The data from legacy system excludes:
- Tax condition records that will be covered in CONV-1035 Tax condition records spec.
- Rebate condition records that will be managed via Condition contracts set up
| 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 |
|
Additional Information
Multi-language Requirement
Not Applicable
Document Management
None identified. The conversion scope is limited to the migration of pricing condition data records. No document attachments, images, or supporting files are included.
Legal Requirement
Special Requirements
Target Design
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 |
Data Cleansing
| 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 |
Conversion Process
The high-level process is represented by the diagram below:
Data Privacy and Sensitivity
Extraction
Extract data from a source into . There are 2 possibilities:
- The data exists. connects to the source and loads the data into . There are 3 methods:
- Perform full data extraction from relevant tables in the source system(s).
- Perform extraction through the application layer.
- Only if ; cannot connect to the source, data is loaded to the repository from the provided source system extract/report.
- The data does not exist (or cannot be converted from its current state). The data is manually collected by the business directly in . This is to be conducted using DCT (Data Collection Template) in
The agreed Relevancy criteria is applied to the extracted records to identify the records that are applicable for the Target loads
Extraction Run Sheet
| 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 Screen
| Selection Ref Screen | Parameter Name | Selection Type | Requirement | Value to be entered/set |
|---|---|---|---|---|
Data Collection Template (DCT)
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.
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. |
Extraction Dependencies
| Item # | Step Description | Team Responsible |
|---|---|---|
| Not Applicable | ||
Transformation
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 to make the data Target ready:
- Perform value mapping and data transformation rules.
- Legacy values are mapped to the to-be values (this could include a default value)
- Values are transformed according to the rules defined in
- Prepare target-ready data in the structure and format that is required for loading via prescribed Load Tool. This step also produces the load data ready for business to perform Pre-load Data Validation
Transformation Run Sheet
| 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 |
Transformation Mapping
Please check the attached file for the complete field to mapping table mapping CNV-1034-Transformation Rules| 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 |
Transformation Dependencies
List the steps that need to occur before transformation can commence| 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) |
Pre-Load Validation
Project Team
Completeness
| 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 |
Accuracy
| 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 |
Business
Completeness
| 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 |
Accuracy
| 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 |
Load
The load process includes:
- Execute the automated data load into target system using load tool or product the load file if the load must be done manually
- Once the data is loaded to the target system, it will be extracted and prepared for Post Load Data Validation
Load Run Sheet
| 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
Configuration
| 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 |
Conversion Objects
| Object # | Preceding Object Conversion Approach |
|---|---|
| Business Partner | Business Partner |
| Material Master | Material Master - Basic View, Product Hierarchy, Material Group, Material Group 1 to 5 |
Error Handling
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 |
Post-Load Validation
Project Team
Completeness
| 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 |
Accuracy
| 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 |
Business
The business team plays a vital role in validating the completeness and accuracy of sales pricing condition data loaded into S/4HANA. Their review ensures that key pricing elements such as condition types, customer-material combinations, and validity dates are correctly migrated and aligned with business requirements. This validation helps identify any missing or incorrect records early, supports a smooth cutover, and ensures that pricing processes function correctly from day one in the new system.Completeness
| 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 |
Accuracy
| 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 |
Key Assumptions
- Master Data Standard is up to date as on the date of documenting this conversion approach and data load.
- is in scope based on data design and any exception requested by business.
See also
Change log
Workflow history
| Title | Last Updated By | Updated | Status | |
|---|---|---|---|---|
| There are no pages at the moment. | ||||
