I have noticed that some users are complaining that quantity with decimal places in shopping cart is being rounded, even when BAdI BBP_ROUNDING_BADI is not active. Therefore, I would like to share with you the standard design in this topic.
This is occurring mainly in SRM 5.0, when support package higher than 20 is applied.
In support package 20, note 1264188 has been introduced.
Such note ensures that rounding in shopping cart will occur based on UOM settings defined in transaction CUNI, as per code below available in FM BBP_PDH_QUANTITY_ROUNDING:
* the standard SRM solution does only round the Purchase order
* and Shopping cart Quantities based on CUNI settings…
IF is_icom_rounding-object_type EQ c_po or
is_icom_rounding-object_type EQ c_shop.
* Round the value to the next valid value
* according to the data of the T006 Customizing …
Checking UOM in CUNI, field “Decimal pl. rounding” defines how many decimal places are used.
As per logic available in form convert_value_according_to_uom, if “Decimal pl. rounding” is set as 0, rounding will occur for UOM.
If such settings is maintained as 3, for example, rounding will not occur and decimal places will be kept as initially.
Therefore, in order to avoid the rounding, field “Decimal pl. rounding” should be customized in transaction CUNI for UOM in question. This is the responsible transaction in SRM to define the decimal place rounding for quantities.
Of course, BAdI BBP_ROUNDING_BADI can overwrite this.
See KBA 1700884 for more details.