In short

SAP Mass Purchase Order Creation with ME21N

SAP mass purchase order creation means raising many purchase orders in one controlled run from a requirements file rather than stepping through ME21N. Unlike master data, every order raised is a legal commitment and a budget consumption, and release strategy fires on each one.

  • A purchase order is a commitment, not a record. Four hundred orders is four hundred obligations and four hundred approval events.
  • The account assignment category decides the sheet. K needs a cost centre, F an order, P a WBS element, blank goes to stock.
  • Decide the price source per file. Supplying a price overrides determination, and overriding where a contract exists breaks invoice matching later.
  • Warn the approver before the run. A release queue receiving four hundred items unannounced is a process failure even when the load worked.
  • Find mistakes before release. That window is when correction is cheap; after it, changes reset the approval.
Diagram The eight stages that turn a requirements list into committed purchase orders.

Where the volume comes from

Purchase order volume arrives from a small number of recognisable places, and in each one the requirements list already exists somewhere before SAP is involved.

  • Planning output. MRP produces requisitions, sourcing converts them, and where conversion is manual the list becomes a spreadsheet.
  • Seasonal or campaign buys. A retail season or promotional cycle generates hundreds of orders against known vendors at agreed prices.
  • Project mobilisation. A capital project starts and its bill of materials becomes orders against WBS elements.
  • Framework agreement call-offs. Contracts exist, terms are settled, and the call-offs are volume work rather than sourcing work.
  • Catalogue or external system integration. A procurement front end holds approved requirements that have to become SAP orders.
  • Site or plant openings. A new location needs its initial stock and consumables ordered in one wave.
  • Period-end catch-up. Orders that should have been raised through the period, batched because someone found the backlog.

The common thread is that the sourcing decision has already been made. Mass order creation is the wrong tool when the vendor or price is still open; that work belongs in requisitions, which is covered in the ME51N guide.

Header, items, and schedule lines

A purchase order is three levels deep, and a spreadsheet is flat. Reconciling those two shapes is most of the work in building a PO file.

SAP purchase order structure showing the EKKO header with vendor, document type, purchasing organisation and currency, EKPO item rows with material, account assignment and quantity, and an EKET schedule line with delivery date.
Diagram A purchase order is three levels deep. The sheet has to say which level every column belongs to.
  • Header (EKKO). Vendor, document type, purchasing organisation, purchasing group, currency, payment terms. One set of values per order.
  • Item (EKPO). Material, plant, quantity, net price, account assignment category, item category. One row per line.
  • Schedule line (EKET). Delivery date and the quantity due on it. One row per delivery, and an item with three staggered deliveries has three schedule lines.

The practical layout that works for most files is one row per item, with header fields repeated across every row belonging to the same order, and a reference column deciding the grouping. Where an item genuinely needs multiple schedule lines, either add rows carrying the item reference or accept a single delivery date and adjust afterwards.

Header fields must agree within a group. If two rows share a PO reference but carry different vendors, the order is ambiguous. Sort by reference and confirm no header field varies inside a block before every run. This one check prevents the most confusing class of failure.

What SAP mass purchase order creation means

SAP mass purchase order creation is the practice of raising many purchase orders in one controlled run from a structured file, instead of stepping through ME21N one order at a time. The requirements are prepared in Excel, grouped into orders, mapped to the header, item and schedule line fields a PO needs, validated against live master data, and raised through SAP's standard purchasing interface with the PO number written back per row.

There is a difference between this and every other object in the mass upload cluster, and it is worth stating plainly at the start.

A purchase order is a commitment. Creating a material master record changes what your system knows. Creating a purchase order changes what your company owes. Four hundred orders raised in ninety seconds is four hundred obligations to suppliers, four hundred budget consumptions, and four hundred release strategy triggers. The technical mechanics are no harder than the other objects in this cluster. The consequences of getting it wrong are commercial rather than administrative, and that shapes how the run should be governed.

The eight stages of SAP mass purchase order creation with ME21N: build the sheet, log in to postnow.ai, map to ME21N fields, validate, fix flagged rows, test create, raise through BAPI, and reconcile PO numbers.

Choosing the grouping

How you group items into orders is a commercial decision disguised as a technical one. One order per vendor per plant is the common default and produces manageable documents. One order per requirement produces a large number of small orders, which suppliers dislike and which multiplies release strategy events. One giant order per vendor is efficient to raise and painful to amend later.

Ask procurement what they want before deciding. The grouping is visible to the supplier and difficult to change once the orders are out.

The fields you have to map

Mapping of Excel columns to SAP ME21N fields for mass purchase order creation: vendor to LIFNR, document type to BSART, material to MATNR, plant to WERKS, quantity to MENGE, net price to NETPR, account assignment to KNTTP and delivery date to EINDT.
Diagram Header fields repeat per row. Item fields are unique. The reference column decides the grouping.

Vendor and purchasing organisation

The vendor must exist, must not be blocked for purchasing, and must be linked to the purchasing organisation on the row. That last condition catches files built against a vendor list from another entity. The vendor master guide covers creating the purchasing segment that makes this work.

Document type

Document type drives the number range, the field selection and, in many configurations, the release strategy. Standard orders, framework orders and transport orders behave differently. Using the wrong type is not usually an error; it produces orders in the wrong number range with the wrong approval path, which is discovered later and cannot be corrected by changing a field.

Net price, and where it comes from

This is the field that most distinguishes purchase order loads from other mass work. A PO price can come from three places: an info record, a contract or scheduling agreement, or the file itself.

Supplying the price in the file is straightforward and overrides determination. It is right when the price is genuinely known and agreed for this order. It is wrong when a contract exists, because the order then carries a price that does not match the agreement and nobody notices until invoice matching fails.

Leaving the price blank lets SAP determine it, which is right when info records or contracts are properly maintained and produces error ME 083 when they are not. On a large file, the pattern of ME 083 errors is a useful map of where your info record coverage has gaps.

💡
Decide the price source per file, not per row. A file where some rows carry prices and others rely on determination is difficult to review, because a reviewer cannot tell whether a blank is intentional. Split into two runs if you genuinely need both.

Account assignment: four categories, four different sheets

The four SAP account assignment categories for purchase orders: K cost centre, F internal order, P WBS element and blank for stock, showing what each is used for, which cost object it requires and how the cost is treated.
Diagram The account assignment category decides which extra columns your file needs.

The account assignment category decides where the cost lands and which extra columns your file needs. It is the single largest structural variable in a PO file.

Blank means stock. The material goes into inventory, is valued on the material master, and needs no cost object. This is the simplest file shape and the one most planning-driven orders use.

K means cost centre. The item is consumed on receipt and expensed. The file needs a cost centre column, populated on every K row. This is most consumable and indirect buying.

F means internal order. Cost collects on an order, typically for events, campaigns or maintenance work. The file needs the order number.

P means WBS element. Cost capitalises to a project. The file needs the WBS element, and project structures change, so validation against the live project is worth more here than elsewhere.

A file spanning several categories needs every category's columns present, populated only on the rows that use them. This is fine and normal, and it makes visual review harder, which is an argument for splitting large mixed files by category.

Release strategy: what happens when four hundred orders need approving

Most organisations put purchase orders through a release strategy, and mass creation interacts with it in ways that surprise people the first time.

Orders created through the standard interface are subject to the same release strategy as orders created in ME21N. The strategy is determined per order from its characteristics, usually value, document type, purchasing group and plant. Four hundred orders therefore generate up to four hundred release events, all landing in someone's inbox at once.

Three consequences worth planning for:

  • The approver needs warning. A release queue that normally receives ten items a day receiving four hundred at nine in the morning is a process failure even though the load worked perfectly.
  • Grouping changes the value bands. Because strategy is usually value-driven, how you group items into orders determines which approval level each order hits. Many small orders may all fall below a threshold that one combined order would have exceeded, which is a governance question, not an optimisation.
  • Unreleased orders do nothing. They exist, they consume nothing, and they do not transmit to the supplier. A load that finishes with four hundred unreleased orders has not achieved what the business asked for, so releasing is part of the plan rather than someone else's problem.
📝
Never design a grouping to avoid an approval threshold. It is the one shortcut in purchase order work that turns a process improvement into an audit finding.

The eight stages of a controlled ME21N run

Build the requirements sheet

One PO item per row, header fields repeated across rows that belong together, and a reference column that decides the grouping. Agree the grouping with procurement before building, not after.

Check: sort by reference and confirm no header field varies inside a group.

Log in to postnow.ai

Open the PostNow task pane inside Excel and sign in. The pane connects the workbook to your SAP system with your own credentials and authorisations, so the run can only raise orders you could raise manually.

Map header, item and assignment fields

Vendor and terms at header level, material, plant, quantity and price at item level, account assignment and its cost object per row. Save the mapping, because the same buy returns.

Check: every account assignment category on the file has its cost object column.

Validate against live SAP

Vendors open and linked to the purchasing organisation, materials extended to their plants, cost objects valid on the delivery date, prices determinable, delivery dates inside the factory calendar.

Fix flagged rows

Missing info records, blocked vendors and unextended materials are all upstream problems. Resolve them at source rather than by overriding, because each override is a decision somebody will have to justify.

Test in a quality client

Raise a subset, then open two orders in ME23N and read them. Check the price, the account assignment and which release strategy was determined. Release strategy is the thing a success log will never show you.

Check: the release strategy determined is the one you expected.

Raise through standard logic

The run calls BAPI_PO_CREATE1, SAP's published interface for purchase order creation. Every check ME21N applies still applies, including price determination and release strategy.

Reconcile and hand over

PO numbers are written back per row, and the approver is told what is coming. The run is finished when the orders are released and transmitted, not when they are created.

Step by step infographic for SAP mass purchase order creation with ME21N: build the requirements sheet, log in to postnow.ai, map header and item fields, set account assignment, validate every row, then raise and reconcile.
Infographic SAP mass purchase order creation in six steps, from requirements list to committed orders.

Validation: six checks before a single order is raised

Six validation checks before an SAP ME21N mass purchase order run: vendor open for orders, material extended to plant, account assignment complete, price determinable, delivery date valid, and order unit consistent.
Diagram Each check maps to a message you would otherwise meet one order at a time.

Two of these are worth expanding.

Material extended to plant is the same condition described in the material master guide, seen from the other side. A material with no purchasing view in the plant cannot be ordered there. On a file covering a new site, this failure will hit most rows, and the fix is a material extension run that has to happen first.

Delivery date valid catches more than past dates. Dates outside the factory calendar, dates before the planned delivery time allows, and dates that fall in a plant shutdown all cause problems, some as errors and some as silently rescheduled deliveries.

Errors, and what they are telling you

Common SAP ME21N purchase order errors and their fixes: ME 021 vendor blocked for purchasing, ME 083 enter net price, KI 235 account assignment requires a cost object, and 06 218 material not maintained for plant.
Diagram The four messages that stop most ME21N loads, and what each one is really telling you.

ME 021, the blocked vendor, deserves a specific note. A purchasing block is set deliberately, usually because of a quality issue, a commercial dispute or a compliance concern. It is the one error in this guide where the right response is almost never to remove the obstacle. Take the row out of the run and ask why the block is there.

Running the whole sequence inside Excel

Try this in your own system

PostNow runs SAP mass purchase order creation from Excel

The eight stages above happen in the requirements file procurement already works from. PostNow adds a task pane to Excel, connects to your SAP system with your own credentials, and takes the file through grouping, mapping, validation and creation without leaving the sheet.

Group

Item rows sharing a reference become one purchase order.

Assign

Account assignment resolved per row, with its cost object checked.

Validate

Vendors, materials, prices and dates verified against live SAP.

Trace

The PO number written back on the row that created it.

Start free trial 14-day trial · raises through BAPI_PO_CREATE1, release strategy respected

Orders, requisitions, and agreements

Comparison of SAP ME21N purchase orders, ME51N requisitions and ME31K contracts, covering what each creates, whether it commits you legally, release strategy, MRP effect and the best fit for mass creation.
Diagram The choice is really a question about how settled the sourcing decision is.

The choice between these three is really a question about how settled the sourcing decision is.

Raise orders when the vendor and price are agreed. This is the case for call-offs against contracts, seasonal buys at negotiated prices, and planning output that has already been sourced.

Raise requisitions when demand is known and sourcing is not. Requisitions commit nothing externally, go through their own release process, and are converted to orders once a vendor is chosen. Mass requisition creation is lower risk than mass order creation for exactly this reason.

Create agreements when the relationship is ongoing and the quantities are not yet known. The agreement fixes terms; releases against it become the volume work.

What the orders trigger downstream

A purchase order is the start of a chain, and mass creation puts volume into every link of it.

  • Release strategy. Immediate, and covered above.
  • Output determination. Released orders transmit to suppliers by print, email or EDI. Four hundred transmissions at once is a moment worth telling suppliers about, particularly where one vendor receives many.
  • MRP. Orders appear as firm receipts and change what the next planning run proposes. Raising orders that duplicate existing coverage produces excess supply that nobody notices until stock arrives.
  • Goods receipt. Deliveries against these orders arrive later, and where volume is high, receipting becomes its own mass task. The MIGO guide covers that side.
  • Invoice verification. Supplier invoices will match against these orders. Prices that were overridden in the file are where three-way match failures come from. See the MIRO guide.
  • Commitment accounting. Where active, the orders consume budget on creation, so a large run can exhaust a budget before anything is received.

None of this argues against mass creation. It argues for telling the people downstream that it is happening.

Amending and cancelling at volume

Purchase orders are amendable, which makes them more forgiving than financial documents and less forgiving than master data.

An order that has not been released can be changed freely. Once released, changes may reset the release depending on configuration, which sends it back through approval. Once a goods receipt or invoice exists against a line, the options narrow considerably.

For a mass run this produces a clear practical rule: find mistakes before release, not after. The window between creation and release is when correction is cheap. That is another reason to check a sample in ME23N rather than trusting the log, and to keep runs small enough that a full review before release is realistic.

Deletion is a flag on the item rather than a removal, so a wrongly created order leaves a visible trace whatever you do. Cancelling four hundred orders is a tidier outcome than amending them, but neither is invisible, which is the strongest argument for testing properly first.

Item categories: when the order is not a simple buy

Account assignment decides where the cost lands. Item category decides what kind of transaction the line actually is, and it changes the columns your file needs just as much.

  • Standard (blank). Buy a material from a vendor, receive it, pay for it. Most rows in most files.
  • Subcontracting (L). You send components to the vendor, they return a finished item. The order needs a component list, and the components have to be provided or the receipt fails. A subcontracting row in a file of standard rows is a common cause of a run that mostly works.
  • Consignment (K). Stock sits at your site owned by the vendor until consumed. No invoice on receipt, and valuation works differently. Files mixing consignment and standard lines need the distinction explicit.
  • Third-party (S). The vendor ships directly to your customer. The order links to a sales order and the goods never reach your plant.
  • Text item (blank material). No material number, so the file must carry a description, a material group and an account assignment. These are the rows that fail validation when a template assumes a material is always present.

The practical guidance is to split by item category rather than mixing. Each category needs different columns populated, and a single file trying to serve all of them becomes wide, sparse and hard for anyone to review. Splitting also means a failure in the subcontracting rows does not stop the standard buy.

Source determination, info records, and where the vendor comes from

Every purchase order needs a vendor, but not every requirements file carries one. Where the vendor is absent, SAP can determine it from source lists, quota arrangements and outline agreements, which is a genuine convenience and a source of surprises at volume.

Supplying the vendor explicitly is the predictable option. The order goes to the vendor named in the file, and if that vendor is wrong it is wrong visibly. This is the right choice for most mass runs, because a reviewer can check the file before anything is raised.

Letting SAP determine the source works well where source lists are properly maintained and produces unpredictable results where they are not. On a large run, source determination can spread orders across vendors in a pattern nobody intended, particularly where quota arrangements are active and the quota is consumed unevenly by the run itself.

The related question is the info record. An info record holds the price and conditions for a material and vendor combination, and it is what makes price determination work. Two things about them matter for mass creation:

  • Missing info records surface as ME 083. The pattern of those errors across a file tells you exactly which material and vendor combinations are undocumented, which is useful information in its own right.
  • Info records can be created from the order. Where configuration permits, raising an order with a price updates or creates the info record. On a mass run this quietly writes hundreds of info records, which may or may not be what procurement wants. Check the setting before a large first run.
💡
Run a validation pass purely to find gaps. Before the real run, validate the file and read the errors as a coverage report rather than a problem list. Missing info records, unextended materials and blocked vendors are all more useful found in bulk than one at a time.

Governance, approval, and commitment

  • Approve the file, not the orders. The reviewable artefact is the requirements list: vendors, quantities, prices, total value. Approving that before the run is more meaningful than approving four hundred documents afterwards.
  • Show the total. Whoever signs off should see what the run commits in aggregate. This is the number that matters and it is invisible when orders are raised one at a time.
  • Run as a named user. The orders carry the identity and purchasing authorisations of the person who ran them.
  • Never engineer the grouping around thresholds. Worth repeating because the temptation is real under deadline pressure.
  • Tell the approver before, not after. A release queue that receives a warning is a process; one that does not is an incident.
  • Keep the completed file. Requirements, PO numbers and values in one artefact is the record of what was committed and why.

Volume, batching, and timing

  • Runtime tracks orders, not rows. Two thousand items forming four hundred orders makes four hundred calls. Consolidating items into fewer orders is faster and produces larger documents.
  • Batch by vendor or plant. A failed batch should be describable in one sentence, and both boundaries keep failure modes homogeneous.
  • Avoid running during MRP. Orders created mid-planning-run produce a supply picture that is briefly inconsistent, and diagnosing that wastes an afternoon.
  • Mind the period. Where commitment accounting is active, the posting period affects which budget is consumed.
  • Stagger transmission. Where output goes by EDI to one vendor, four hundred simultaneous messages may be unwelcome at their end.

From a one-off run to a repeatable buy

  • Save the mapping with the grouping rule. How items become orders is the decision that took the thinking.
  • Ship a template to the requesters. If planning or the project team submits requirements with material, plant, quantity, date and account assignment already correct, the run is a formality.
  • Encode the account assignment logic. Which buying type uses which category, and which cost object column it needs.
  • Record the document types proven against. Along with their release strategies, so nobody assumes a template covers a case it has never met.
  • Name an owner. Document types, release strategies and purchasing organisations all change.

Common mistakes and how to avoid them

  • Header fields disagreeing within a group. Two vendors under one PO reference produces an ambiguous order and a confusing failure.
  • Overriding a price where a contract exists. The order no longer matches the agreement, and invoice matching fails later.
  • Forgetting that release strategy will fire. Four hundred approvals landing unannounced is a process failure even when the load succeeded.
  • Missing cost objects on assigned rows. Every K, F and P row needs its object. Blank rows for stock are correct; blank rows for K are not.
  • Ordering materials not extended to the plant. An MM02 extension run has to happen first.
  • Working around a blocked vendor. The block exists for a reason. Take the row out and ask.
  • Raising orders when sourcing is not settled. Requisitions exist precisely for that case and commit nothing.
  • Treating the run as finished at creation. Unreleased orders do nothing at all.

After the orders are raised

The run is not finished at creation. Four things close the gap between orders existing and procurement working.

Review before release. This is the last cheap moment. Open a sample in ME23N and check the price, the account assignment, the delivery date and which release strategy was determined. A file that passed validation can still have produced orders nobody wants.

Release, and watch the queue. Someone has to approve them. Whether that is one person clicking through four hundred items or a collective release depends on your configuration, and finding out during the run is too late.

Confirm transmission. Released orders go out by print, email or EDI. Check that they did, particularly where one vendor receives many and their systems may throttle.

Hand the numbers back. Whoever supplied the requirements needs the PO numbers written against their rows, so the planning system, project or requesting team can track receipts.

The complete ME21N mass creation reference

The reference sheet below collects everything above into one image you can share before a buying run.

SAP mass purchase order creation reference infographic for ME21N covering what gets ordered, the fields to map, checks before raising, the errors you will meet, and how the run works from requirements list to committed order.
Infographic The complete ME21N reference: fields, assignment, checks, errors, and the run itself.

Go deeper

SAP MM mass upload

The hub for procurement at volume: orders, requisitions, goods movements and invoices.

SAP mass upload

The pillar guide covering methods, validation, error handling and governance across every transaction.

SAP master data mass upload

The vendors and materials these orders reference have to exist and be extended first.

Methods and alternatives

How BAPI, screen recording and LSMW compare for procurement documents.

Frequently asked questions

What is SAP mass purchase order creation?
SAP mass purchase order creation is the practice of raising many purchase orders in one controlled run from a structured file, instead of stepping through ME21N one order at a time. Requirements are prepared in Excel, grouped into orders, mapped to header, item and schedule line fields, validated against live master data, and raised through SAP's standard purchasing interface.
How do I mass create purchase orders in SAP from Excel?
Build a file with one PO item per row, repeat the header fields across rows belonging to the same order, and use a reference column to decide the grouping. Map header, item and account assignment fields, validate vendors, materials and prices against live SAP, then raise through BAPI_PO_CREATE1. The eight stages above set out the full sequence.
How does a flat spreadsheet describe a purchase order with several items?
Each row is an item, and the header fields are repeated on every row belonging to the same order. A reference column groups the rows. If two rows share a reference but carry different vendors or document types, the order is ambiguous and the run will either split it or fail, so sorting by reference and checking that no header field varies inside a group is the single most useful pre-run check.
Does release strategy still apply to mass created purchase orders?
Yes. Orders raised through the standard interface are subject to exactly the same release strategy as orders created in ME21N, determined per order from value, document type, purchasing group and plant. A run of four hundred orders can generate four hundred release events at once, so the approver needs warning. Unreleased orders do nothing and do not transmit to the supplier, so releasing is part of the plan rather than someone else's problem.
Should I supply the net price or let SAP determine it?
Decide per file rather than per row. Supplying the price overrides determination and is right when the price is genuinely agreed for that order. Leaving it blank lets SAP find it from an info record or contract, which is right when those are properly maintained and produces error ME 083 when they are not. Overriding a price where a contract exists causes invoice matching to fail later.
What are the SAP account assignment categories for purchase orders?
Blank means stock: the material goes into inventory and no cost object is needed. K means cost centre: the item is expensed on receipt and the file needs a cost centre column. F means internal order and needs the order number. P means WBS element and capitalises to a project. A file spanning several categories needs every category's columns present, populated only on the rows that use them.
Why does my ME21N mass upload fail with error ME 083?
ME 083 means no net price could be determined: there is no info record or contract for that material and vendor combination, and the file did not supply a price. Either supply the price in the sheet or create the info record first. On a large file the pattern of ME 083 errors is a useful map of where your info record coverage has gaps.
What is the difference between mass creating purchase orders and requisitions?
A purchase order commits you legally to a supplier. A requisition is internal and commits nothing externally, going through its own release process before conversion to an order. Raise orders when the vendor and price are settled; raise requisitions when demand is known but sourcing is not. Mass requisition creation is lower risk for exactly this reason.
Can I amend or cancel purchase orders created in bulk?
An order that has not been released can be changed freely. Once released, changes may reset the release depending on configuration, sending it back through approval. Once a goods receipt or invoice exists against a line the options narrow considerably. Deletion is a flag on the item rather than a removal, so a wrongly created order leaves a visible trace whatever you do. Find mistakes before release, not after.
What do mass created purchase orders trigger downstream?
Release strategy fires immediately. Released orders transmit to suppliers by print, email or EDI. The orders appear to MRP as firm receipts and change what the next planning run proposes. Goods receipts and invoice verification follow later, and where commitment accounting is active the orders consume budget on creation, so a large run can exhaust a budget before anything is received.
Start with a real file

Run your next sap mass purchase order creation from Excel

Map your columns once, validate every row against live SAP, and post through standard logic. Each row comes back with the document number it created.

Start free trial
  • 14-day free trial
  • Works with ECC and S/4HANA
  • Your data stays in your systems