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

> Source: https://netray.co/tools/sap-ecc-movement-type-config-tables-t156-t157d-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Reference of the SAP ECC 6.0 tables, transactions and authorization objects that define movement types, their texts, reason codes and account determination links.

## Category

sap

## Erp

SAP ECC 6.0

## Audience

- SAP MM consultant
- ABAP developer
- SAP security administrator

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Object

**Key:** obj

**Type:** text

#### Type

**Key:** type

**Type:** text

#### Description

**Key:** desc

**Type:** text

#### Key fields

**Key:** keys

**Type:** text

#### Where maintained

**Key:** where

**Type:** text

#### Typical query

**Key:** query

**Type:** text

**Rows:**

**Obj:** T156

**Type:** Table

**Desc:** Movement type control: debit/credit and behaviour flags

**Keys:** BWART; SHKZG, KZWES, KZVBU, KZDRU, KZGRU, XINVB

**Where:** OMJJ

**Query:** Is reason for movement controlled for 551?

**Obj:** T156T

**Type:** Table

**Desc:** Movement type texts by language and indicator combination

**Keys:** SPRAS, BWART, SOBKZ, KZBEW, KZZUG, KZVBR; BTEXT

**Where:** OMJJ > Short texts

**Query:** Description of 261 or of 101 with KZBEW B

**Obj:** T156HT

**Type:** Table

**Desc:** Movement type main text (one per language)

**Keys:** SPRAS, BWART; HTEXT

**Where:** OMJJ

**Query:** Plain list of movement types and names

**Obj:** T156Q

**Type:** Table

**Desc:** Material-independent control per indicator combination

**Keys:** BWART, SOBKZ, KZBEW, KZZUG, KZVBR

**Where:** OMJJ > Allowed transactions and indicators

**Query:** Which special stocks are allowed for 411?

**Obj:** T156B

**Type:** Table

**Desc:** Screen and field selection per movement type and special stock

**Keys:** BWART, SOBKZ; FAUSW (field selection string)

**Where:** OMJJ > Field selection (enjoy)

**Query:** Is the reason field mandatory for 201?

**Obj:** T156SY

**Type:** Table

**Desc:** System table: quantity and value update strings per indicator combination

**Keys:** BUSTR (posting string reference from T156), WERTU, MENGU, SOBKZ, KZBEW, KZZUG, KZVBR; BUSTM (quantity string), BUSTW (value string)

**Where:** System table, do not change

**Query:** Which value string does 201 use?

**Obj:** T156X

**Type:** Table

**Desc:** Transaction/event key modification per movement type

**Keys:** BWART, WERTU, MENGU, SOBKZ, KZBEW, KZVBR, BUSTW; KOMOK (account modifier)

**Where:** OMWN (account grouping)

**Query:** Which account modifier does 201 use?

**Obj:** T157D

**Type:** Table

**Desc:** Allowed reasons for movement per movement type

**Keys:** BWART, GRUND

**Where:** OMBS or OMJJ > Reason for movement

**Query:** Reason codes allowed for 122

**Obj:** T157E

**Type:** Table

**Desc:** Texts of reasons for movement

**Keys:** SPRAS, BWART, GRUND; GRTXT

**Where:** OMBS or OMJJ > Reason for movement

**Query:** Text of reason 0001 on 551

**Obj:** MSEG-BWART / MSEG-GRUND

**Type:** Table fields

**Desc:** Movement type and reason recorded on each material document item

**Keys:** MBLNR, MJAHR, ZEILE

**Where:** Posted via MIGO and other goods movements

**Query:** Scrap by reason code per month

**Obj:** T030

**Type:** Table

**Desc:** Standard account table for automatic postings (transaction keys BSX, GBB, WRX, PRD and others)

**Keys:** KTOPL, KTOSL, BWMOD, KOMOK, BKLAS

**Where:** OBYC

**Query:** Offsetting account for 201 (GBB with VBR)

**Obj:** OMJJ

**Type:** Transaction

**Desc:** Maintain movement types (copy, texts, allowed transactions, field selection, reversal, reasons)

**Keys:** Movement type range

**Where:** SPRO > Materials Management > Inventory Management and Physical Inventory > Movement Types

**Query:** Copy 551 to Z51

**Obj:** OMWN

**Type:** Transaction

**Desc:** Define account grouping (account modifier) for movement types

**Keys:** BWART, value string, KOMOK

**Where:** SPRO > MM > Valuation and Account Assignment > Account Determination

**Query:** Which account modifier for a new Z movement type

**Obj:** OMBS

**Type:** Transaction

**Desc:** Record reason for goods movements

**Keys:** BWART, GRUND

**Where:** SPRO > MM > Inventory Management > Movement Types > Record Reason for Goods Movements

**Query:** Add reason code 0005 to 201

**Obj:** M_MSEG_BWA

**Type:** Authorization object

**Desc:** Goods movements: movement type

**Keys:** ACTVT, BWART

**Where:** PFCG

**Query:** Which roles allow 561?

**Obj:** M_MSEG_WWA

**Type:** Authorization object

**Desc:** Goods movements: plant

**Keys:** ACTVT, WERKS

**Where:** PFCG

**Query:** Plant restriction for goods movements

**Obj:** M_MSEG_LGO

**Type:** Authorization object

**Desc:** Goods movements: storage location

**Keys:** ACTVT, WERKS, LGORT, BWART

**Where:** PFCG

**Query:** Restrict postings to a storage location

**Obj:** M_MSEG_BWE

**Type:** Authorization object

**Desc:** Goods receipt for purchase order: movement type

**Keys:** ACTVT, BWART

**Where:** PFCG

**Query:** Who can post 101 against POs

**Obj:** M_MSEG_BWF

**Type:** Authorization object

**Desc:** Goods receipt for production order: movement type

**Keys:** ACTVT, BWART

**Where:** PFCG

**Query:** Who can post 101 against production orders

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use it

**Body:** 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

**Body:** 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

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### Which table stores movement types in SAP?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

sap movement type table, sap movement type text table, sap table for movement type reason codes, sap movement type description table, movement type configuration in sap mm, sap authorization object for movement type, t156t table, t157d table

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
