Hi Bala,
That's the standard behavior of the standard system to check at the lowest level if mentioned in sales order. Example if your SO is at plant level only then it would check at this level, If it's with plant and storage location then check would be at storage location instead of plant level and results could be different as plant might have three Sloc with more quantity. Same applies for batch which again is further lowest level as it is checking for specific batch in that storage location.
If you want this check to be at plant level then keep your sales order at this level itself else you will have to check for exit/badi to do this. Using exit/badi then needs good amount of testing as results might be over-confirmation etc. coz batch might have less quantity but plant stock would be more.
Check SAP note
376773 - UserExit EXIT_/SAPAPO/SAPLBOP_FILT_010
377186 - Backorder procg: User exit EXIT_/SAPAPO/SAPLBOP_SORT_020
Regards
Rahul
Message was edited by: Rahul Handa