SAPFree referencePDF, Excel, Word exportSAP ECC 6.0All SAP ECC 6.0 tools

SAP Movement Type Tables: T156, T156T, T157D and Related Configuration

A reference of the SAP ECC 6.0 tables, transactions and authorization objects that define movement types, their texts, reason codes and the link to account determination. Use it when you need the right table for a report or the right place to change a movement type setting.

Download:
ObjectTypeDescriptionKey fieldsWhere maintainedTypical query
T156
Table
Movement type control: debit/credit and behaviour flags
BWART; SHKZG, KZWES, KZVBU, KZDRU, KZGRU, XINVB
OMJJ
Is reason for movement controlled for 551?
T156T
Table
Movement type texts by language and indicator combination
SPRAS, BWART, SOBKZ, KZBEW, KZZUG, KZVBR; BTEXT
OMJJ > Short texts
Description of 261 or of 101 with KZBEW B
T156HT
Table
Movement type main text (one per language)
SPRAS, BWART; HTEXT
OMJJ
Plain list of movement types and names
T156Q
Table
Material-independent control per indicator combination
BWART, SOBKZ, KZBEW, KZZUG, KZVBR
OMJJ > Allowed transactions and indicators
Which special stocks are allowed for 411?
T156B
Table
Screen and field selection per movement type and special stock
BWART, SOBKZ; FAUSW (field selection string)
OMJJ > Field selection (enjoy)
Is the reason field mandatory for 201?
T156SY
Table
System table: quantity and value update strings per indicator combination
BUSTR (posting string reference from T156), WERTU, MENGU, SOBKZ, KZBEW, KZZUG, KZVBR; BUSTM (quantity string), BUSTW (value string)
System table, do not change
Which value string does 201 use?
T156X
Table
Transaction/event key modification per movement type
BWART, WERTU, MENGU, SOBKZ, KZBEW, KZVBR, BUSTW; KOMOK (account modifier)
OMWN (account grouping)
Which account modifier does 201 use?
T157D
Table
Allowed reasons for movement per movement type
BWART, GRUND
OMBS or OMJJ > Reason for movement
Reason codes allowed for 122
T157E
Table
Texts of reasons for movement
SPRAS, BWART, GRUND; GRTXT
OMBS or OMJJ > Reason for movement
Text of reason 0001 on 551
MSEG-BWART / MSEG-GRUND
Table fields
Movement type and reason recorded on each material document item
MBLNR, MJAHR, ZEILE
Posted via MIGO and other goods movements
Scrap by reason code per month
T030
Table
Standard account table for automatic postings (transaction keys BSX, GBB, WRX, PRD and others)
KTOPL, KTOSL, BWMOD, KOMOK, BKLAS
OBYC
Offsetting account for 201 (GBB with VBR)
OMJJ
Transaction
Maintain movement types (copy, texts, allowed transactions, field selection, reversal, reasons)
Movement type range
SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types
Copy 551 to Z51
OMWN
Transaction
Define account grouping (account modifier) for movement types
BWART, value string, KOMOK
SPRO > MM > Valuation and Account Assignment > Account Determination
Which account modifier for a new Z movement type
OMBS
Transaction
Record reason for goods movements
BWART, GRUND
SPRO > MM > Inventory Management > Movement Types > Record Reason for Goods Movements
Add reason code 0005 to 201
M_MSEG_BWA
Authorization object
Goods movements: movement type
ACTVT, BWART
PFCG
Which roles allow 561?
M_MSEG_WWA
Authorization object
Goods movements: plant
ACTVT, WERKS
PFCG
Plant restriction for goods movements
M_MSEG_LGO
Authorization object
Goods movements: storage location
ACTVT, WERKS, LGORT, BWART
PFCG
Restrict postings to a storage location
M_MSEG_BWE
Authorization object
Goods receipt for purchase order: movement type
ACTVT, BWART
PFCG
Who can post 101 against POs
M_MSEG_BWF
Authorization object
Goods receipt for production order: movement type
ACTVT, BWART
PFCG
Who can post 101 against production orders

SAP standard movement types should never be changed. Copy them in OMJJ into the customer name range (9xx, or X, Y, Z followed by two characters) and adjust the copy. Check field lists and keys in SE11 on your release before writing code against them.

Check your custom movement types

Send us extracts of T156, T156X and T157D for your Z movement types and we will flag missing reversals, account groupings and reason setups.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How to use it

Search by object or by question. For a list of movement types with names, T156HT is the simplest table. For the exact text a user sees in MIGO for a combination such as 101 against a purchase order, T156T is the right one because its key includes SOBKZ, KZBEW, KZZUG and KZVBR. Reason codes are in T157D (allowed per movement type) and T157E (texts), and the value used is stored in MSEG-GRUND. Authorization objects are listed so that security and MM teams can align roles with the movement types each user should post.

Where this lives in ECC

OMJJ maintains movement types and opens views for short texts, allowed transactions, help texts, field selection, update control, account grouping, reversal and follow-on movement types and reasons for movement. The IMG path is SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types. Account grouping (the account modifier such as VBR for consumption) is set in OMWN and feeds OBYC, where T030 maps transaction keys like GBB to G/L accounts. Reason codes have their own IMG activity, Record Reason for Goods Movements (OMBS).

Worked example: a custom scrap movement type

A plant needs scrap postings that go to a separate G/L account and always require a reason. In OMJJ copy 551 to Z51 (and copy its reversal 552 to Z52). Set the reason field to mandatory in the field selection view and add allowed reasons in OMBS, which writes T157D and T157E. In OMWN assign a new account modifier to Z51 for transaction key GBB, then add that modifier in OBYC so T030 points to the new account. Finally add Z51 to M_MSEG_BWA in the roles that may scrap, and test a posting and its reversal.

Gotchas

Changing a standard movement type affects every plant in the client and is overwritten or flagged in upgrades, so always copy. T156SY is a system table: you change behaviour through OMJJ and OMWN, not by touching update strings. Whether a reason is checked is controlled by T156-KZGRU (control reason for movement), while optional or mandatory entry comes from field selection. Authorization checks on M_MSEG_BWA apply to the movement type, but M_MSEG_BWE and M_MSEG_BWF apply instead for receipts against purchase and production orders, which surprises teams who only maintain BWA.

Frequently Asked Questions

Which table stores movement types in SAP?

T156 holds the movement type control data keyed by BWART. Texts are in T156HT (main text per language) and T156T (texts per indicator combination such as special stock and movement indicator). Settings are maintained in OMJJ.

Which table stores movement type reason codes?

T157D stores the allowed reasons (GRUND) per movement type, and T157E stores their texts by language. The reason entered in a posting is saved in MSEG-GRUND. Maintain both in the IMG activity Record Reason for Goods Movements (OMBS).

What is the authorization object for movement type?

M_MSEG_BWA checks the movement type for goods movements, with M_MSEG_WWA for plant and M_MSEG_LGO for storage location. Goods receipts against purchase orders and production orders use M_MSEG_BWE and M_MSEG_BWF for the movement type check.

Can I change an SAP standard movement type?

Technically yes in OMJJ, but it is not recommended: the change applies client-wide and is hard to separate at upgrade. Copy the standard type into the customer range (9xx or a name starting with X, Y or Z) and adjust the copy, including its reversal type.

If you want MM and security teams to ask which movement types each role can post, answered from your own ECC tables on your servers, we can set that up.

ArchRay builder
Design the on-prem AI stack for SAP ECC 6.0: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

AI on your ERP

Integrations