Symptom
You are using the 'Migration Cockpit' to migrate legacy Purchase Orders into your S/4Hana Public Cloud system. Despite filling the XML template with a Net Price, when the Purchase Order is saved in the system, it has a net price of 0.00.
"Image/data in this KBA is from SAP internal systems, sample data, or demo systems. Any resemblance to real data is purely coincidental."
Environment
SAP S/4HANA Cloud Public Edition All Versions
Reproducing the Issue
- Open APP "manage your solution" - "migrate your Data"
- Create a New project, activate and start the transfer
- Choose Option - Purchase orders (only open only)
- Upload your XML file, validate the mapping, simulate and post the PO.
- The Purchase Order is saved but with error, 'Net price must be greater than 0' (06218)
Cause
There can be a dual cause for such an issue.
Point 1) Missing data in the XML file
Point 2) Incorrect custom 'Pricing Procedure' configuration.
Resolution
Point 1) To be relevant for pricing, you have to make sure the 'invoice receipt flag' is filled in the XML (See illustration)
** If the invoice receipt flag is not set in the payload, the free item indicator will be set in the PO item and there will be no price conditions
Point 2) If you have assigned a custom 'Pricing Procedure', you must make sure the configuration is consistent with the standard 'Pricing Procedure' as it is delivered.
In particular a custom 'Pricing Procedure' has to be defined in exactly the same way, with respect to the conditions PPR0 and PMP0 in the illustration below. In addition to this, there should be no additional 'Price' condition type configured, only PPR0 and PMP0 (or their equivalent Z-conditions).
Note - The file must also contain valid 'Units of Measure' and where required, conversion factors must be fully maintained in the master data.
Please also check that the Supplier currency is defined, if it is missing the system will be forced to execute a currency conversion with a blank currency leading to this error.
* Regarding the pricing procedure configuration. When a PO is created the system executes a new pricing. If an active condition record exists for the PPR0 condition, the system
will transfer the value from the payload to the PPR0 condition found. If no condition record master data exists, the system will transfer the payload value to the PMP0 condition.
So the migration PO item value could be assigned to the automatic condition PPR0 or the manual price condition PMP0 as a result.
Keywords
EKPO-NETPR, NETPR, EKPO-REPOS, REPOS, MEPO_ITEM_FILL_REPOS, INVOICE RECEIPT INDICATOR, 06218, 06 218, KALSM, V1804, free item, UMSON. , KBA , MM-PUR-PO , Purchase Orders , MM-PUR-PO-BAPI , BAPIs - Purchase order , Problem
SAP Knowledge Base Article - Public