BAQ inside BPM

Sadly, testing showed some issues with my BPM plan. There are 2 separate problems that I must solve.
Problem 1) If the RcvDtl.OurUnitCost = 0 is true and PartClass=P004 is false then I raise an exception and stop the receipt entry. The result is that the parts are then moved to arrived. Is there a way to stop them from even showing arrived?
Problem 2) The factory likes to do mass receipts with many lines. My test had 4 lines on a mass receipt with line 3 expected to fail. My goal is to accept lines 1, 2, and 4 while stopping line 3. With my BPM setup, all the lines were placed in arrived. The BPM was able to identify that it was line 3 that had the issue (based on my message result) but it was not able to receive and save line 1,2, and 4 lines and stop line 3 which was the one rule breaking line.

I am planning to keep reading, run another trace, and testing. I have found this link that might be helpful for my mass receipt issue.Prevent over receipt for mass receipt

I would like to request more assistance with my issue, please.
Thank you,
Heide Warren