Driving through the long road of MM world, I heard similar questions many times from consultants, customer and colleagues asking how to overcome error of
unrealistic stock value at SAP System.

Well, different customers, different business scenarios, different behaviours. But, I would say that in most of cases we can use some workarounds to avoid errors from this nature.

Especially talking about error messages ‘M7 304’ and ‘M7 308’.
M7304 – Stock value and quantity unrealistic: & / &
M7308 – Stock value and qty are unrealistic: & / & -> see long text

Let’s talk about these above errors in details:


This error is raised in the following piece of code:


     IF ( w-salk3 < 0 AND NOT w-lbkum < 0 ) OR
         ( w-salk3 > 0 AND NOT w-lbkum > 0 ).
        WRITE w-salk3 CURRENCY i_waers TO l_salk3_message.
        WRITE w-lbkum UNIT i_meins TO l_lbkum_message.
        MESSAGE e304 WITH l_salk3_message l_lbkum_message.

If the field MBEW-SALK3 (Total value on stock) is becoming lower than zero and then error is raised.

– Common reason:
If the Tax condition is customized as non-deductible taxes, then the amounts are added to the material value and – during goods movement –
and subtracted from the stock value. If the same material was previously posted to the stock with deductible taxes, a negative balance can result.

– Comment:
A negative stock balance cannot be prevented by allowing negative stock in the material master. A negative stock value is only tolerated in
conjunction with negative stock quantity but not with zero stock quantity.

– General solution:
A withdrawal of stock material should be posted with the same tax settings as the placement of material into the stock, i.e., in both cases ‘deductible’ or in both cases ‘non-deductible’. The non-deduct. taxes that are due are to be added to the material value on the receiving-plant side, at goods receipt thus.

– Workaround:
A possible way to overcome the error in this particular case is to increase the stock temporarily (movement type 561), so the stock amount is not zero after goods issue, and to correct for the stock increase after the goods issue (movement type 562).

– Another possibility is MR22 transaction.
Use the function “Debit/credit material” (contained in Valuation menu) to post a correspondingly high material debit (if value is negative) or
material credit (if value is positive) for the material. Then carry out the goods movement. When you use this procedure, the system creates a
revaluation document.


Error ‘M7 308’ is usually caused by a rounding issue.
In case, it is because the total quantity on stock is not matching to the total value on stock.

In order to solve this error we should recalculate the total value.

And to do that we have to post and re-post a price change in transaction MR21.

– go to MM03 transaction and check the price in Accounting 1 view.

–  then, go to MR21 transaction and post a price change by increasing the price in 0,01. For example, if price is 100,00 USD change to 100,01

– open MR21 transaction once again and then post a price change by reducing the price in 0,01. For example, from 100,01 USD to 100,00.

Once these price changes have been posted the total value on stock will be adjusted and then you should be able to make any necessary goods
movements for this material.

See the following notes as reference:
1026379 – MB5K: Misleading error message 045 due to rounding
1708261 – Error ‘M7 308’ is raised when trying to post a goods movement

Best Regards,
Fábio Almeida
SAP Consultant – ERP MM

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply