Firstly, you can have the Reservation creation during Release of PM Order. Further, you can configure the Availability check in such a way not to release the order if there are some missing components.
You can do the setting in the mentioned configuration with option "2 - Check availability during order release".
Checking tables MARD and RESB is in general not sufficient to know what is available. Checking MARD just tells you what you have in your storage location in SAP. But there is quite a difference between stock on hand and available stock. I tried to explain it in this blog: Unrestricted use stock not equal to available stock
Use BAPI_MATERIAL_AVAILABILITY to know what is available.
But isn't the availability check not already executed automatically in a PM order?
Also see transaction IWBK which gives you some of this information..
PeteA
Configured availability check does not stop, it only gives the info message. I want to restrict to create reservation if No stock or stock avl but already reserved.
Add comment