Creating a Custom Movement Type in SAP — From OMJJ Through OBYC Account Determination to the FB03 Posting

This post walks through creating custom movement types, actually posting a goods issue with them, and verifying that the intended G/L account shows up in the accounting document. The order: copy a standard movement type in OMJJ to create ZZ1 (other goods issue) and ZZ2 (its reversal), wire up the account in OBYC, post with MIGO, and read the journal entry in FB03. Environment: client 100, company code CC10.

※ Screens, menus, and settings may differ depending on your SAP release and system configuration.

OMJJ — always copy, never create from scratch

Movement types are created by copying an existing one; I used 202 (reversal of issue to cost center) as the source. The 11 folders in the Dialog Structure are the full bundle of settings that make up one movement type — of these, only two touch accounting directly: Account Grouping (the account modification key) and Update control (quantity/value updates).

In the detail screen of ZZ2, the Internal Control block is greyed out because those values are tied to SAP standard logic. What this screen decides: the posting direction (debit/credit indicator S) and the account assignment style (consumption posting R, reservation category K). The actual G/L account is not decided here.

Short texts need three rows

One movement type needs not one but three text rows — one per special stock indicator (blank / K / P) — because the key of T156T is language · movement type · special stock. The name you type here is exactly what shows in MIGO and MB51.

Pairing the reversal type — easy to miss

The "reversal movement type" indicator only marks ZZ2 as a reversal type; which type it reverses is defined in the separate reversal-assignment table. If you leave that table empty, material documents posted with your new movement type simply cannot be cancelled.

Reasons for movement — two settings must pair up

I registered two reasons (1 = defect, 2 = scrap). Reasons sub-divide why stock left under the same movement type — but they do not influence account determination (reason is not an axis of it). To send defect and scrap to different accounts you'd need separate movement types or different account modification keys.

Also, registering reasons alone doesn't make the field appear in MIGO: you must open GRUND in the field selection as optional entry. Only both together work — and if the reason must always be recorded, set it to Required Entry.

OBYC — where the account is actually decided

Under transaction key GBB (offsetting entry for inventory posting), I added account modification key ZZ1 and assigned account 6010 for both valuation classes 7900 (semi-finished) and 7920 (finished). The movement type doesn't know the account — this table decides it. Want SFG and FG on different accounts? Give each valuation class its own account.

The counterpart setting is back in OMJJ's Account Grouping: assign modification key ZZ1 to transaction key GBB for the movement type. The two settings must pair up — OBYC alone means no movement type uses the key; the grouping alone means no account exists and posting fails.

MIGO posting and the FB03 proof

Posting a 1 EA goods issue of a semi-finished product with ZZ1: the header shows the short text ("JNC Other GI"), the account assignment tab has a cost center field (because of consumption posting R), and — notably — the G/L account field is empty. It posts anyway, because OBYC fills the account at posting time.

The result, document 400000021: scrap expense 6010 debit 16 with cost center CC1010, semi-finished inventory 1060 (BSX) credit 16−. The comparison right above it makes the point: same material, same amount, same posting date, but document 400000020 posted with the standard movement type went to 5050 (Cost-SFG) via modification key VBR. That one-line difference is the whole payoff of the custom movement type.

Takeaways

  • A movement type itself knows no account. It's a two-stage structure: OMJJ Account Grouping attaches a modification key to the movement type → OBYC resolves key + valuation class to the account.
  • The two easiest things to forget: the reversal-type pairing (breaks cancellation) and the Account Grouping assignment (blocks posting entirely).
  • The inventory credit account is independent of the movement type — BSX is determined by the valuation class.

Korean original (with screenshots): SAP 사용자 이동유형 만들기 — OMJJ 생성부터 OBYC 계정결정, FB03 분개까지

Where these documents come from
Everything on this blog comes from one small dumpling factory built end-to-end in an S/4HANA sandbox — one plant, one product, one month, every document number real. The whole build is written up in two books.
· Free 16-page sample — the opening chapters, no email required
· How Sarah Joined a K-Dumpling Company and Became an SAP Genius — the business novel, 53 pages, $25
· The Dumpling Factory: Building a Complete SAP S/4HANA Company from Scratch — the build manual, 85 pages, $50

Comments

Popular posts from this blog

Modern ABAP Syntax Notes — Patterns and Pitfalls from Real Development

SAP S/4HANA Table Reference — Tables I Actually Query, by Topic

A 36% margin became 6% at month-end, and every posting was correct