EKKN table — Purchasing Document Account Assignment Table
EKKN stores the account assignment lines of a purchase order or requisition item: the G/L account, cost center, order, WBS element or asset that a portion of the item's value is posted to. A single item can have more than one row here when the account assignment is distributed across multiple cost objects by quantity or percentage.
EKKN holds the account assignment detail behind each PO item, the link between purchasing and controlling or asset accounting. This page covers the fields that matter, how the table joins to EKPO and EKBN, and the recurring mistake of treating it as one row per item.
Published 15 Sept 2026· 1,125 words
What it stores
Each row in EKKN represents one account assignment line for one purchasing document item. For an account-assigned item (cost center, internal order, WBS element, asset, network, or similar), this table carries the actual G/L account and the cost object the item's value flows to. When an item is not split, there is exactly one EKKN row per EKPO item. When it is split - a common pattern for shared costs across two cost centers, or a WBS element plus a cost center - there are multiple EKKN rows for the same EBELN/EBELP, each carrying its own share expressed as a quantity or a percentage. The table exists for both purchase orders and, structurally mirrored, for purchase requisitions via a separate table. It is read at goods receipt and invoice posting time to determine where the FI/CO document lands.
Key fields
- MANDT - client
- EBELN - purchasing document number, joins to the parent item
- EBELP - item number within the purchasing document
- ZEKKN - account assignment sequence number, distinguishes multiple distribution lines on the same item
- SAKTO - G/L account the line posts to
- KOSTL - cost center, populated when the account assignment category is cost-center based
- AUFNR - order number, populated for order-based account assignment
- PS_PSP_PNR - WBS element, populated for project-based account assignment
- VPROZ - percentage of the item assigned to this line, used for percentage-based distribution
- MENGE - quantity assigned to this line, used for quantity-based distribution
- NETWR - net value assigned to this line
- ANLN1 - asset number, populated when the account assignment category is asset-based
How it joins the data model
- EKKN-EBELN = EKPO-EBELN and EKKN-EBELP = EKPO-EBELP to get from an account assignment line back to the purchasing document item
- EKKN-EBELN = EKKO-EBELN to reach the document header for vendor, document type and purchasing organization
- EKKN-EBELN = EKBN-EBELN and EKKN-EBELP = EKBN-EBELP and EKKN-ZEKKN = EKBN-ZEKKN to see how the account assignment line was actually distributed during goods receipt and invoice postings
- EKKN structure mirrors EBKN, which carries the same account assignment detail for purchase requisition items before conversion to a PO
- SAKTO, KOSTL, AUFNR and PS_PSP_PNR link out to the respective G/L account, cost center, order and WBS element master data outside this table
How to read it safely
Always restrict on MANDT implicitly and on EBELN, ideally with EBELP, before pulling from EKKN in any productive-size client - the table has no natural upper bound and scanning it without a document key restriction is slow. If the question is account-object driven rather than document driven (for example, list every PO line hitting a given cost center this year), filter on KOSTL together with a posting-date range from a joined table such as EKBE, because EKKN itself carries no posting date. Do not assume ZEKKN starts at 1 and increments cleanly for every item; treat it purely as a distinguishing key, not a count of splits.
How to prove it in the data
Symptom: a cost center owner disputes a charge that appears to come from a purchase order. Select EKKN where EBELN equals the PO number and EBELP equals the item; if more than one row returns, the item is split - check whether VPROZ sums to 100 or MENGE sums to the EKPO quantity, and read SAKTO and KOSTL on each row to see the actual split of value across cost objects rather than assuming the whole item hit one center.
ECC vs S/4HANA
EKKN is retained in S/4HANA as the primary account assignment table for purchasing document items; there is no wholesale replacement. Field lengths for objects such as the WBS element were extended to match the wider identifiers used across S/4HANA, but the table's row-per-account-assignment-line structure and its relationship to EKPO and EKBN are unchanged. Reporting layers increasingly read purchasing data through CDS views rather than EKKN directly, but the underlying table still carries the data.
Common pitfalls
- Assuming one row per item. Distributed account assignment produces multiple ZEKKN rows for the same EBELN/EBELP; a query that does not aggregate across them will undercount or overcount value against a cost object.
- Confusing VPROZ and MENGE. Percentage-based and quantity-based distribution use different fields; reading VPROZ on a quantity-distributed item, or vice versa, gives a meaningless number, not zero.
- Trusting EKKN for the current-period picture. It reflects the account assignment as configured on the document, not what actually posted historically - a PO changed mid-lifecycle can show a different cost center than the one that received earlier goods receipts, which are recorded in EKBN and the FI/CO documents, not retroactively rewritten here.
- Deriving the account assignment category from this table. The category (K, F, P, A, and so on) lives on the item in EKPO, not in EKKN; EKKN only holds the target objects that category implies. Reading EKKN in isolation without checking EKPO's category can lead to expecting a field (WBS, order, asset) that was never populated because the category never called for it.
- Using EKKN to reconcile total item value directly. NETWR on each line is the assigned share, but tax, delivery costs and later price changes are handled through condition and history tables, not always mirrored line-for-line in EKKN.
- Forgetting the requisition-side counterpart. Investigating account assignment upstream of the PO (why did the requisition propose this cost center) means looking at EBKN, not EKKN.
Whose problem this is
MM configures which account assignment categories are allowed and how distribution is entered on the PO item. FI or Controlling owns the validity and correctness of the cost objects themselves - whether a cost center is open, a WBS element is released, an order permits postings. A dispute over what an EKKN row says is usually an MM configuration question; a dispute over whether the cost object should have been used at all is a controlling or project accounting question.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/ekknERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.