KB21N — Enter Direct Activity Allocation
KB21N posts a manual direct activity allocation in Controlling: a quantity of an activity type (machine hours, labor hours, etc.) moved from a sender cost center to a receiver object (cost center, order, WBS element), valued at the activity price. It creates a CO document only, no FI document, and is the manual counterpart to the automatic allocations that come from production or service confirmations.
This page covers KB21N, the transaction for manually posting a direct activity allocation between a sender cost center and a receiver object in Controlling. It focuses on how the posting is valued, why it silently posts zero values when price data is missing, and how to prove in the data whether an allocation actually reached the receiver with the value expected.
Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,275 words
Purpose
KB21N records a direct activity allocation: a sender cost center delivers a quantity of an activity type (machine hours, setup hours, consulting hours) to a receiver, which can be another cost center, an internal order, a WBS element, or a similar CO object. The posting has two components on every line: the quantity entered by the user, and the value, which the system derives by multiplying that quantity by the activity price for the sender cost center and activity type combination. The one structural fact that explains most confusion: this is a pure Controlling posting. No FI document is generated, no vendor or customer is involved, and the amount that lands on the receiver depends entirely on a price that lives outside the transaction, in cost center/activity type planning. If that price is zero, wrong, or not yet calculated, the quantity still posts but the value does not reflect reality.
When it is used
KB21N is reached for when an activity was actually delivered but was not captured through an automated source such as a production order confirmation, a service confirmation, or a time sheet entry that feeds activity allocation automatically. Typical cases: a maintenance cost center provided hours to a production cost center outside of any order, an internal IT cost center delivered support hours to a project, or a correction is needed because an automatic allocation used the wrong activity type or receiver. It is not used for moving already-posted costs between objects (that is KB11N), and it is not used where the volume of allocations justifies a periodic, rule-based method such as assessment or distribution cycles run at period close. Those cycles replace manual KB21N entry once the allocation logic is stable and repeatable.
How to use it in practice
- Confirm the posting period is open for actual CO postings for the controlling area and fiscal year in question.
- Enter the document date and posting period; KB21N defaults to the current period but backdating into a closed period will fail.
- Enter the sender: cost center and activity type.
- Enter the receiver: cost center, order, WBS element, or other valid CO object, plus its own activity type if relevant.
- Enter the quantity in the unit of measure defined for that activity type; do not assume hours if the activity type is defined in minutes or units.
- Simulate the document before saving to check the calculated value; if the value line shows zero, stop and check the activity price before posting.
- Save and note the CO document number for later verification in the cost center or order line item reports.
Key data objects
- COBK - CO document header for the allocation, holding document number, posting date, period, and user.
- COEP - CO actual line items, one row for the sender debit and one for the receiver credit, carrying quantity, value, activity type, and object assignment.
- COSS - CO totals table for secondary cost postings, aggregating the activity allocation value by period, cost element, and object for reporting.
- CSLA - master data table validating which activity type/cost center combinations are allowed as sender for the allocation.
How to prove it in the data
Start from the CO document number and pull COBK to confirm it exists with the expected date and period. Use COEP filtered on that document number to see both the sender line (negative or debit) and receiver line (credit), checking the activity type, quantity, and value fields; a nonzero quantity with a zero value confirms a missing or zero activity price at posting time. Cross-check the price by looking at the planned price for that cost center and activity type for the same period, and compare it against what was actually used on the COEP line.
ECC vs S/4HANA
On S/4HANA the underlying transaction and its logic are unchanged; the difference is that actual activity allocation line items also update the universal journal table alongside the classic CO tables, which are retained as compatibility views. A Fiori app exists for posting direct activity allocation as part of the Controlling work center, giving the same fields in a browser-based layout, but the classic transaction remains fully usable and is still the faster path for high-volume manual correction work.
Common pitfalls and how to diagnose them
- Zero-value posting: quantity moves but value is zero because no plan price was ever maintained for the sender cost center/activity type combination for that period, or the actual price calculation run has not yet been executed if the activity type is set to actual pricing. Check the price first, before touching the posting itself.
- Wrong unit of measure: the activity type's defined unit does not match what the user assumed (minutes entered as hours, or vice versa), producing a value that is off by a large, obvious multiple. Compare the quantity on the receiver against the physical activity actually delivered.
- Double posting against automatic allocation: a manual KB21N entry duplicates an allocation that already posted automatically from a confirmation, inflating the receiver's cost with no corresponding increase in output. Check whether the same activity and period already has an automatically generated CO document from the same source before assuming the manual entry is the only one.
- Sender combination not planned: the cost center/activity type pair was never set up in planning, so the system either rejects the posting or falls back to a price of zero depending on configuration. Verify the combination exists in cost center planning before reporting the transaction as broken.
- Period lock mismatch: the posting is rejected for a period that looks open in FI but is closed for CO actual postings, or the wrong CO version is active. Check the controlling area's period control settings rather than assuming the transaction itself is faulty.
- Receiver object status: a WBS element or order in a status that does not permit actual postings rejects the entry with a status error that has nothing to do with KB21N configuration; the fix belongs to whoever owns the receiver object's status profile, not to the CO posting logic.
Whose problem this is
This is a Controlling functional problem, owned by the CO or FI/CO consultant responsible for cost center accounting, not Basis and not ABAP unless a custom validation or substitution is involved. A good handover includes the CO document number, the sender and receiver objects, the activity type, and whether the price used was plan or actual, so the receiving consultant does not have to re-derive the valuation from scratch.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tcodes/kb21nERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.