How to Block a Purchase Order (PO) to Prevent Goods Receipt (GR) in SAP

So, You Want to Block a PO in SAP? Let’s Talk Options

Imagine this: you're in procurement or logistics, and there’s a purchase order (PO) out there that should absolutely not receive any more goods. Maybe it’s fulfilled, maybe there was an error, or maybe the supplier's off the grid. Whatever the reason, your next mission is to block that PO from accepting any further Goods Receipt (GR) entries. But here's the kicker: SAP doesn't let you block a PO at the header level. Yep, no one-button “Kill Switch.” So, what now? Let’s break down your real options.

Option 1: Match PO Quantity to Received Quantity

Quick fix alert.
The simplest way to ensure no further GR is possible? Just set the PO quantity equal to the quantity already delivered.

Here’s how:

  • Open ME22N (Change Purchase Order).
  • Go to the line item.
  • Modify the PO quantity to match the quantity from the previous GRs. Why it works:
SAP thinks you’ve received everything, so it doesn’t expect more. End of story. Pro tip:
This is clean, audit-safe, and great when you’ve hit full delivery.

Option 2: Block the Line Item

Now, maybe you don’t want to adjust quantities. Maybe you’re still mid-negotiation. Enter: the item-level block.

How to do it:

1. Head over to ME22N.
2. Select the specific PO line item you want to block.
3. Click the little lock icon.
4. Alternatively, go to Edit → Block from the top menu. And boom — SAP won’t let anyone post a GR for that item. Heads up:
This is more of a temporary fix. It doesn’t close the PO in the system, so archiving later? Still tricky.

Option 3: Use a BADI to Force the Delivery Completion Indicator

Here’s where things get fancy. If your organization leans into automation or custom enhancements, you can use a BADI (Business Add-In) to manipulate how the system interprets the delivery completion.

Real-world scenario:

  • You’ve got items that should be “done” regardless of quantity.
  • You trigger a BADI that flags them as completed.
  • SAP won’t suggest or allow further GRs. Technical tip:
This approach requires ABAP know-how and configuration access. It's powerful—but don’t unleash it without talking to your SAP functional consultant or dev team first.

Bonus: Control GR with the ‘Latest Possible Goods Receipt’ Date (LEWED)

This one’s often overlooked but golden in audits. If you want SAP to literally yell at the user when trying to post a late GR, use the LEWED field.

Here’s what you do:

  • In ME22N, go to the PO item.
  • Set the LEWED date to a past date (e.g., yesterday).
  • Ensure system message M7163 is configured as an error in SPRO.
Now, if someone tries to post a GR? SAP goes, “Nope. Too late.” And blocks it. 

Important:
You need your system configured to treat that message as an error, not just a warning. Check OSS Note 856279 for more on this.

A Quick Word of Caution

Tempted to just block everything? Here’s the thing… Blocking a PO is not a best practice for closure. Why? Because SAP still sees blocked POs in MRP and other processes. Plus, blocked POs can’t be archived easily — meaning you leave open loops in your data. If you're truly done with a PO, consider:
  • Setting final delivery indicators
  • Adjusting quantities
  • Clearing invoices and receipts
  • Closing the business case completely

Final Thoughts: Pick the Right Tool for the Job

Blocking a PO isn’t always a one-size-fits-all task. Sometimes a quick quantity tweak does the trick. Sometimes you need a technical solution. Other times, it’s about process hygiene and closing the loop properly. TL;DR:
  • Quick & Easy: Match quantities.
  • Temporary & Direct: Lock line items.
  • Tech-Savvy: Use a BADI or LEWED with error messages. No header-level blocking? No problem — now you’ve got a toolkit.

FAQs

1. Can I block a PO at the header level in SAP?

No. SAP does not allow header-level blocking for POs. You must block at the item level.

2. Does blocking a PO stop MRP from considering it?

No. Blocked POs are still visible in MRP unless you close them using proper procedures.

3. What happens if I change PO quantity to match GR quantity?

SAP considers the order complete and stops allowing further GRs.

4. Can I use BADI without development access?

No. BADI implementation requires ABAP development and SAP configuration access.

5. Is the LEWED date field error message automatic?

Not by default. You must configure message M7163 to be treated as an error in Customizing.

See also
Explanation Of Blanket Purchase Order

Get help for your SAP MM problems
SAP MM Forums - Do you have a SAP MM Question?

SAP MM Books
SAP Material Management Certification, Interview and Configuration Reference Books

SAP Material Management Tips
SAP MM Configuration Tips and Materials Management Discussion Forum

Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.  The site www.erpgreat.com is in no way affiliated with SAP AG.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of
www.erpgreat.com or the content authors.