SAP MMは、SAP ERPとSAP S/4HANAで資材管理(Materials Management)を受け持つモジュールで、購買依頼・購買発注・入庫・在庫移動・請求書照合までの調達の流れを扱います。この記事では、プラント・保管場所・購買組織を割り当てる組織設定、移動タイプ101の入庫と入庫保留在庫、許容範囲で支払ブロックがかかる請求書照合の仕組みを、2026年10月時点のSAP公式トレーニング(learning.sap.com)の記述を根拠に整理します。入庫と請求書から会計伝票が起票される勘定決定、GR/IR未消込を発注明細ごとに集計するABAP SQLの例、SAP SDとの違い、アドオン開発に進む条件までが後半の解説対象です。
まとめ:SAP MMは組織単位の割当と3つの伝票、勘定決定の設定で決まる
SAP MMの設定で後から変えにくいのは、プラントと購買組織の割当です。プラントは1つの会社コードにしか属せず、購買組織は少なくとも1つのプラントに割り当てないと使えません。どの拠点の在庫を、どの購買部門が、どの会社の帳簿で買うのかを先に決め、それから品目マスタと仕入先マスタに進みます。
業務の中心は、購買発注・入庫・請求書照合の3つの伝票です。入庫は移動タイプ101で在庫を増やし、請求書照合は発注と入庫の数量・価格を突き合わせ、許容範囲を超えると請求書全体に支払ブロックをかけます。この2つの転記のたびに会計伝票が自動で起票され、在庫勘定とGR/IR勘定が動きます。
勘定の振り分け、差異の許容範囲、保留在庫の扱いは標準の設定で足ります。アドオン開発は、外部の購買システムやEDIとの連携、標準に無い帳票と締めのチェックに絞ります。
SAP MMが受け持つ範囲:購買・在庫管理・請求書照合とS/4HANAでの位置
購買依頼から支払までの外部調達7段階とMMが担う区間・FIへ渡す区間
SAP公式トレーニングのDelineating Procurement Processesは、外部調達を所要量の決定、供給元の決定、発注、発注の監視、入庫、請求書照合、支払の段階に分けています。所要量は担当者が購買依頼を手で作るか、品目マスタでMRPが設定されていればシステムが購買依頼を自動で作ります。
| 段階 | 主な伝票 | 受け持つ範囲 |
|---|---|---|
| 所要量の決定 | 購買依頼 | MM(MRPはPP) |
| 供給元の決定・発注 | 見積依頼・購買発注 | MM-PUR |
| 入庫 | 品目伝票 | MM-IM |
| 請求書照合 | 請求書伝票 | MM-IV |
| 支払 | 支払伝票 | FI-AP |
MMが受け持つのは請求書照合までで、支払プログラムの実行は経理の仕事です。ストック転送や外注加工、仕入先委託在庫といった特殊な調達は、購買発注明細の品目カテゴリで切り替えます。製品を問わない業務の流れとしては購買管理の業務フローとシステム化の判断で、見積から支払までを整理しています。
SDやFIとの境界:品目マスタを共有し会計伝票を自動起票する連携の形
MMとSD(販売管理)は、同じ品目マスタと在庫を共有します。MMが仕入れて入庫した在庫を、SDが受注・出荷・請求で払い出す関係です。購買と販売のデータの受け渡しは販売管理と購買管理の違いとデータ連携で製品を問わずに説明しています。
FIとの境界は会計伝票の自動起票です。入庫や請求書照合を転記すると、MMの設定に従って勘定が決まり、FIの伝票が同時に作られます。FI側の会社コード・元帳・伝票の構造はSAP FIの会社コードと元帳の設定、伝票の構造で確認できる内容です。S/4HANA全体の導入形態と移行方式はSAP S/4HANAとECCの違いと移行方式の解説にまとめています。
クライアント・会社コード・プラント・保管場所・購買組織を割り当てる手順
4桁キーのプラントと保管場所、プラントは1つの会社コードに属する制約
Identifying the Organizational Units in Procurementによると、MMで使う組織単位とキーは次のとおりです。
- クライアント:システムの最上位。キーは3桁の数字
- 会社コード:独立した帳簿を持つ外部会計の最小単位。4桁でクライアント内一意
- プラント:生産・調達・保守・資材計画の単位。4桁でクライアント内一意
- 保管場所:プラント内で在庫を分ける単位。4桁でプラント内一意
数量ベースの在庫管理と棚卸で使う組織単位は、プラント内の保管場所です。プラントは1つの会社コードにしか属せないため、同じ倉庫を2つの法人で使う場合でも、プラントは法人ごとに分けて作ります。プラントの切り方は評価(在庫金額の計算単位)にも効くので、倉庫の数ではなく原価と帳簿の単位から決めます。
購買組織の3形態:プラント固有・プラント横断・会社コード横断の選び方
購買組織は、仕入先との条件交渉と発注に責任を持つ単位です。同じレッスンは、購買組織を会社コードに割り当てるのは任意で、割り当てるなら1つだけ、プラントへの割当は必須で省略できないと説明しています。この組み合わせから3つの形が生まれます。
- プラント固有:会社コードに割り当て、プラントを1つだけ持つ
- プラント横断:会社コードに割り当て、その会社コードの複数プラントを持つ
- 会社コード横断:会社コードに割り当てず、複数の会社のプラントを持つ
グループで集中購買をしたいなら会社コード横断を選びます。工場ごとに購買部門が独立していて条件も別に交渉しているなら、プラント固有で十分です。迷う場合はプラント横断から始めます。バイヤー個人や担当チームは購買グループで表し、組織単位とは別に保守します。
購買発注・入庫・請求書照合の3伝票を移動タイプと許容範囲で処理する流れ
購買依頼から発注への変換とME21N・購買情報レコードの参照
購買依頼は、供給元が決まった時点で購買発注に変換します。供給元の候補は、既存の発注、基本契約、購買情報レコード(仕入先と品目ごとの価格条件)から絞り込み、必要なら見積依頼を出して比較します。SAP GUIでは購買依頼の登録がME51N、購買発注の登録がME21N、照会がME23Nです。
発注を参照元の伝票から作ると入力の手間が減るのは、明細と価格条件がコピーされるためです。発注の監視では、入庫と請求書が届いているかを発注履歴で確認し、納期遅れの督促もここから出します。製品を問わない購買管理の機能と選び方は購買管理システムの機能と選び方、ERP連携の判断で解説しています。
移動タイプ101の入庫と103・105・107による入庫保留在庫の使い分け
発注を参照した入庫は移動タイプ101で転記します。Posting a Goods Receipt with Referenceによれば、入庫時に在庫タイプとして利用可能在庫・品質検査在庫・保留在庫のいずれかを選びます。画面はFioriの「Post Goods Movement」アプリかSAP GUIのMIGOです。
| 移動タイプ | 内容 | 在庫金額 |
|---|---|---|
| 101 | 発注参照の入庫 | 計上する |
| 103 | 入庫保留在庫への入庫 | 計上しない |
| 105 | 103の保留在庫を解除 | 解除時に計上 |
| 107 | 評価済み入庫保留在庫への入庫 | 計上する |
| 109 | 107の保留在庫を解除 | 計上済み |
受入検査の結果が出るまで在庫にも帳簿にも載せたくないなら103、所有権が入荷時に移る取引で金額だけ先に計上したいなら107を使います。103から返品するときは124、107の解除後に返品するときは122です。状況は発注履歴(ME23N)と在庫概要(MMBE)で確認できます。
請求書照合の許容範囲キーPP・DQと上限超過で請求書全体が支払ブロック
請求書照合では、仕入先の請求書を発注と入庫に突き合わせます。Entering Invoices with Variancesによると、差異の許容範囲はOMR6で会社コード単位に設定します。上限を超えても転記はできますが、その場合は自動で支払ブロックがかかる仕組みです。
注意すべきは、ブロックが明細単位ではない点です。1明細だけに差異があっても請求書全体が止まります。
| キー | 見る差異 |
|---|---|
| PP | 請求単価と発注価格の差 |
| DQ | 未請求数量と請求数量の差 |
| ST | 発注の納期より前の請求日 |
| BD | 少額差異の自動処理 |
上限を0にして「Check limit」を選べば、その差異は必ずブロックされます。価格差異を一切認めない取引先にはこの設定を使い、運送費の端数のように毎月出る差異はBDで吸収すると、ブロック解除(MRBR)の作業が月末に集中しません。
入庫と請求書で起票される会計伝票:評価クラスとBSX・WRXの勘定決定
標準原価Sと移動平均Vで異なる入庫時の仕訳と価格差異勘定への計上
入庫の仕訳は、品目マスタの価格管理区分で変わります。Analyzing Material Valuationは、標準原価(S)では在庫を標準価格で評価して発注価格との差を価格差異勘定に計上し、移動平均(V)では入庫のたびに在庫金額÷在庫数量で単価を計算し直すと説明しています。
同じレッスンの数値例(期首在庫100個・評価額200、発注100個を単価2.40で入庫、請求単価2.20)で仕訳を計算すると次のようになります。
| 時点 | 標準原価S(単価2.00) | 移動平均V |
|---|---|---|
| 入庫 | 在庫200・差異40/GR/IR 240 | 在庫240/GR/IR 240 |
| 入庫後単価 | 2.00のまま | 440÷200=2.20 |
| 請求書 | GR/IR 240/仕入先220・差異20 | GR/IR 240/仕入先220・在庫20 |
| 請求後単価 | 2.00のまま | 420÷200=2.10 |
移動平均では、在庫が残っている限り請求差額が在庫金額に戻されます。標準原価では差額がすべて価格差異勘定に出るため、原価差異の分析をCOで行う製造業は標準原価、仕入値をそのまま在庫金額に反映したい卸売業は移動平均、という選び方が基本です。
自動勘定決定は評価クラスと取引キーで決まり、品目マスタの値が効く
入庫や請求書照合で使う勘定は、利用者が入力しません。Describing Automatic Account Determinationによれば、プラントから会社コード・勘定コード表・評価領域が決まり、品目の評価クラスと移動タイプを組み合わせて勘定が選ばれます。在庫の転記は取引キーBSX、GR/IRの振替はWRXです。
レッスンの例では、発注参照の入庫で在庫勘定13100000、GR/IR勘定21120000、価格差異勘定52041000が自動で選ばれ、請求書では仕入先の統制勘定21100000が使われます。勘定決定の設定は勘定コード表ごとに持つので、FIで勘定コード表を変えるとMM側の設定も作り直しになります。
勘定が想定と違うときの原因は、たいてい品目マスタの評価クラスです。設定テーブルを疑う前に、該当品目の会計ビューを確認します。品目の評価価格を直すときはMR21を使います。
発注履歴EKBEとMATDOCからGR/IR未消込を抽出するABAP SQLの実装例
ABAP SQLで発注明細ごとの入庫数量と請求数量の差を集計するレポート
月末にGR/IR勘定の残高が残る原因は、入庫済みで請求書が来ていない明細か、請求書だけ先に来た明細です。発注履歴テーブルEKBEには、発注明細ごとに入庫と請求書の履歴が記録されます。取引区分VGABEが1なら入庫、2なら請求書で、貸借区分SHKZGがHの行は取消や返品の逆方向です。次の例は、会社コードと購買組織を指定し、入庫数量と請求数量が一致しない発注明細を一覧にするABAPレポートです。
REPORT zmm_grir_open_items.
PARAMETERS: p_bukrs TYPE bukrs DEFAULT '1010',
p_ekorg TYPE ekorg DEFAULT '1010'.
TYPES: BEGIN OF ty_bal,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
gr_qty TYPE menge_d,
ir_qty TYPE menge_d,
END OF ty_bal.
DATA lt_bal TYPE SORTED TABLE OF ty_bal WITH UNIQUE KEY ebeln ebelp.
" 発注履歴を明細・取引区分・貸借区分ごとに合計(VGABE 1=入庫 2=請求書)
SELECT b~ebeln, b~ebelp, b~vgabe, b~shkzg, SUM( b~menge ) AS qty
FROM ekbe AS b
INNER JOIN ekko AS h ON h~ebeln = b~ebeln
WHERE h~bukrs = @p_bukrs
AND h~ekorg = @p_ekorg
AND b~vgabe IN ( '1', '2' )
GROUP BY b~ebeln, b~ebelp, b~vgabe, b~shkzg
INTO TABLE @DATA(lt_hist).
LOOP AT lt_hist INTO DATA(ls_h).
" 貸方(H)は取消・返品なのでマイナスで集計
DATA(lv_qty) = COND menge_d( WHEN ls_h-shkzg = 'H' THEN ls_h-qty * -1
ELSE ls_h-qty ).
DATA(ls_bal) = VALUE ty_bal(
ebeln = ls_h-ebeln
ebelp = ls_h-ebelp
gr_qty = COND #( WHEN ls_h-vgabe = '1' THEN lv_qty )
ir_qty = COND #( WHEN ls_h-vgabe = '2' THEN lv_qty ) ).
COLLECT ls_bal INTO lt_bal.
ENDLOOP.
" 入庫数量と請求数量が一致した明細を除く
DELETE lt_bal WHERE gr_qty = ir_qty.
cl_demo_output=>display( lt_bal ).
gr_qtyがir_qtyより大きい明細は「入庫済み・請求待ち」、小さい明細は「請求先行・入庫待ち」です。前者は仕入先への請求書の催促、後者は倉庫への入庫漏れの確認が次の作業になります。項目名と型は、実行前にABAPディクショナリで自システムのEKBEとEKKOの定義を確かめてください。金額で見たい場合はDMBTR(国内通貨額)を同じ形で集計します。ABAPの書き方はABAPの特徴と実装の解説を参照してください。
S/4HANAの品目伝票はMATDOCに一本化、旧テーブルを読むコードの点検
在庫移動の明細を読むコードは、S/4HANAで書き方が変わります。SAPのKBA 3757564は、品目伝票のヘッダMKPFと明細MSEGが廃止され、テーブルMATDOCに置き換えられたことを前提に、アップグレード後もMSEGとMKPFに行が増えるという事象を扱っています。
ECCから移行したアドオンでMKPFやMSEGを読んでいる箇所は、互換の仕組みで動き続ける場合でも、移行時の点検対象に入れます。在庫の数量や金額を外部へ出す新規の処理は、MSEGを前提にせず、MATDOCかSAPが提供するCDSビューを読む設計にします。ECCの保守期限と移行の判断はSAPの2027年問題と移行・延命の判断を参照してください。
SAP MMで標準設定に任せる範囲とアドオン開発・外部委託に進む判断条件
標準で済む4要件と、許容範囲や勘定決定にアドオンを書かない理由
次の要件では、アドオンを書かずに標準の設定で対応します。
- 差異のある請求書を止めたい:許容範囲キーと支払ブロックで足りる
- 検査が済むまで在庫に載せたくない:移動タイプ103と105で足りる
- 品目の種類ごとに勘定を分けたい:評価クラスと勘定決定で足りる
- 拠点別に購買部門を分けたい:購買組織の3形態で足りる
この4つにアドオンを書く設計は採りません。標準の転記ロジックを迂回すると、S/4HANAの更新のたびに回帰テストの範囲が広がり、GR/IRの消込や原価計算との整合も自前で保証することになります。
外部購買システムやAribaとの連携で開発に進む場面と見積もりの5項目
開発に進むのは、外部の購買システムや仕入先とのEDI連携、標準に無い発注書や検収書の様式、締め前のGR/IR残高チェックの自動化など、標準の外にある部分です。仕入先とのやり取りをSAPの調達クラウドで済ませる選択肢はSAP Aribaの機能とS/4HANA連携で比較しています。
独自の画面や連携を作る場合も、S/4HANAの本体を改修せずSAP BTPでの拡張開発とデプロイ手順のようにクリーンコアの外側へ置きます。外部へ委託するときは、対象のプラント数と購買組織の形、価格管理区分(SかVか)、連携する外部システムの本数、移行する発注残と在庫の範囲、本番後の保守範囲の5点を先に固めると見積もりがぶれません。設定と開発をまとめて相談したい場合はSAPコンサルティング・導入支援サービスで要件の整理から受け付けています。
よくある質問
SAP MMについて、設定と運用の検討段階でよく出る質問に答えます。
SAP MMとSAP SDの違いは何ですか?
MMは資材管理で、購買依頼・購買発注・入庫・請求書照合といった仕入側の流れを受け持ちます。SDは販売管理で、受け持つ範囲は見積・受注・出荷・請求といった売る側の業務の流れです。両者は同じ品目マスタと在庫を共有し、MMで入庫した在庫をSDが出荷で払い出します。会計伝票はどちらからもFIへ自動で起票され、MMでは在庫とGR/IR、SDでは売上と売掛金の勘定が動きます。
SAP MMでよく使うトランザクションコードは何ですか?
SAP GUIでは、購買依頼の登録がME51N、購買発注の登録がME21N、照会がME23N、入庫などの在庫移動がMIGO、請求書照合がMIRO、在庫概要がMMBEです。設定側で使うトランザクションコードは、許容範囲の設定がOMR6、品目の評価価格の変更がMR21です。S/4HANAの標準UIはFioriで、在庫移動は「Post Goods Movement」アプリで行えます。どの画面を使えるかは権限とロールの設定で決まります。
GR/IR勘定に残高が残るのはなぜですか?
GR/IR勘定は、入庫時に貸方、請求書照合時に借方に転記され、両方がそろうと消し込まれる勘定です。残高が残るのは、入庫済みで請求書が未着の明細か、請求書が先に来て入庫が済んでいない明細があるためです。数量や価格の差異で請求書がブロックされている場合も残ります。発注履歴EKBEを明細ごとに集計すると、どちらの原因かを切り分けられます。
S/4HANAでSAP MMは何が変わりましたか?
データ面での大きな変化は、品目伝票のヘッダMKPFと明細MSEGがMATDOCという1つのテーブルに置き換えられたことです。会計側でもFIとCOの明細がACDOCAに統合され、入庫や請求書の会計伝票もそこに記録されます。画面はFioriが標準になり、在庫移動や請求書照合にもアプリが用意されている構成です。ECCで書いたアドオンは、旧テーブルを読む箇所から点検します。
SAP MMの設定を外部に委託するとき何を準備しますか?
最初に要るのは、拠点と購買部門の対応表です。どのプラントの在庫を、どの購買組織が、どの会社コードの帳簿で買うのかが決まっていれば、組織設定の見積もりが固まります。あわせて業務側で決めておく事項は、品目ごとの価格管理区分、受入検査の有無、請求書の差異をどこまで許すかです。委託の範囲と費用の内訳はSAP導入支援の支援範囲と費用の内訳にまとめています。
関連記事
- SAP S/4HANAとは?ECCとの違い・導入形態・移行方式と2027年問題への備えを解説:MMが動く基盤であるS/4HANA全体の解説
- SAP FIとは:会社コード・元帳・会計年度バリアントの設定と伝票の構造、COとの境界:MMの入庫と請求書から起票される会計側の設定
- 購買管理システムとは?機能・5原則から選び方とERP連携の判断まで解説:製品を問わない購買管理システムの選び方
- ERPモジュール一覧|個別原価計算を回す基幹システム構成とSAP・国産ERP対応表:MMを含むモジュール構成を製品横断で比較
- SAP Fioriとは:SAPUI5との関係・SAP GUIからの移行判断とCAPでのアプリ実装手順:MMの入力画面となるFioriの実装