Vikas
Since you need to perform some validation/display message you should do it via BADI MRM_HEADER_CHECK. You create the implementation and inside the method you have both item and header data available. You can code your logic and raise error (exception for the method) in case you find some issue. You check the sample code of BADI by GOTO->Display>Sample code. The other BADI is for changing the value not throwing any error mesage
Nabheet