SAPエラーMM326を実機で調査|旧POが後続処理に影響したケース

品目マスタ(Material Master)で利益センタ(Profit Center)を設定・変更しようとしたとき、未処理の購買発注(Purchase Order、PO)が残っていると後続処理へ影響することがあります。今回の実機検証では、品目 2 をプラント(Plant) Z091/保管場所(Storage Location) 0001 へ拡張する途中で、その事象に遭遇しました。

今回やること

MM01 で品目 2 に利益センタ Z091TEST02 を設定したところ、「未処理の購買発注明細または分納契約があります」と表示されました。SAP公式情報と照合すると、これはSAPメッセージ(クラス MM/番号 326)に該当します。

この記事では、直前に作成していた旧PO 4500002272 を確認し、明細を削除対象として保存したあとに MM01 を再実行した結果、エラーが再発せず品目を保存できた経緯を追います。さらに MARC で利益センタの反映を確認し、新しいPO 4500002273 を登録するところまで確認します。

項目 検証内容
製品 SAP S/4HANA 2025 On-Premise
画面 SAP GUI for HTML
検証時期 2026年8月
対象領域 MM(品目マスタ/購買)
主な操作 MM01、ME22N、SE16N、ME21N
検証レベル 実機画面・テーブル確認・SAP公式情報との照合

注意:以下の Z091、品目 2、利益センタ Z091TEST02、PO番号などは今回の検証環境のテスト値です。SAP標準の推奨値や唯一の正解を示すものではありません。

1. 現象:MM01でSAPメッセージ(クラスMM/番号326)が発生

品目 2 をプラント Z091、保管場所 0001 へ拡張し、「プラント Data/保管 2」で利益センタ Z091TEST02 を設定しました。ところが画面下部に、次のエラーが表示されました。

MM01で品目2の利益センタ設定時に未処理の購買発注明細または分納契約があるエラーが表示された画面
図1:MM01で「未処理の購買発注明細または分納契約があります」が発生

実機で確認した事実:実機画面では「未処理の購買発注明細または分納契約があります」と表示されました。

SAP標準仕様:SAP KBA 2552651では、品目マスタの利益センタ項目を変更する際にSAPメッセージ(クラス MM/番号 326)が呼び出され、「There are still open purchase order items or scheduling agreements」と表示される事象が扱われています。対象環境にはSAP S/4HANA On-Premiseも含まれます。今回の実機画面で確認した現象と整合します。
SAP KBA 2552651:利益センタ変更時にMM335/MM326が発生するケース

2. 調査:直前に作成した旧POを確認する

この品目では、直前の購買検証で標準購買発注 4500002272 を登録していました。今回のエラー本文が「未処理の購買発注明細」を示していたため、まずこのPOを確認対象にしました。

筆者の判断:エラーを回避するために別の利益センタへ変更するのではなく、まず品目とプラントに紐づく未処理POの状態を整理する方針にしました。今回の検証では旧PO 4500002272 が具体的な確認対象です。

3. 対処:旧PO明細を削除対象にして保存する

ME22N で旧PO 4500002272 の明細10を削除対象にし、保存しました。保存後、画面下部に「標準購買発注 4500002272 が変更されました」と表示されたことを確認しています。

購買発注4500002272の明細10を削除対象にして保存し、変更完了を確認した画面
図2:旧PO 4500002272の明細10を削除対象にして保存

注意:これは今回のテスト環境で実施した対処です。本番環境のPOを機械的に削除対象へ変更する手順を推奨するものではありません。実案件では未入庫数量、後続伝票、承認状況、業務上の継続要否などを確認したうえで対処方法を判断する必要があります。

4. 再実行:MM01ではMM326が再発しなかった

旧POを変更保存したあと、同じ品目 2、プラント Z091、保管場所 0001、利益センタ Z091TEST02 で MM01 を再実行しました。

再実行ではSAPメッセージ(クラス MM/番号 326)は表示されず、最終データ画面の保存確認まで進みました。その後、実画面で「品目 2 が登録されました」と表示されたことも確認しています。

旧購買発注への対処後にMM01を再実行し、利益センタZ091TEST02を設定した状態で保存確認まで進んだ画面
図3:MM01を再実行すると同じ利益センタ設定で保存確認まで進んだ

5. MARCで利益センタの反映を確認する

保存メッセージだけで終えず、SE16N から MARC を確認しました。品目 2/プラント Z091 の行で、利益センタ項目 PRCTR に Z091TEST02 が設定されています。

SE16NのMARC照会で品目2とプラントZ091の利益センタがZ091TEST02になっていることを確認した画面
図4:MARCで品目2/プラントZ091の利益センタZ091TEST02を確認

SAP標準仕様:SAP Helpの「Assignment of Materials」では、品目の利益センタ割当はプラントレベルで行われ、品目マスタを変更して割り当てることが説明されています。今回 MARC の品目/プラント単位で PRCTR を確認したのは、この構造に対応した確認です。
SAP Help Portal:Assignment of Materials

6. 新しいPOを登録して後続へ進める状態を確認する

品目マスタの拡張後、ME21N で標準購買発注を作成し直しました。保存すると、新しいPO 4500002273 が登録されました。

ME21Nで旧購買発注への対処後に新しい標準購買発注4500002273が登録されたことを確認した画面
図5:新しい標準購買発注4500002273を登録

旧POが影響したと言える範囲

区分 今回確認できた内容
実機で確認した事実 旧PO 4500002272が存在する状態で利益センタ設定時にMM326が発生し、同PO明細を削除対象として保存した後のMM01再実行ではMM326が再発せず、品目を保存できた。
SAPの一般仕様 KBA 2552651は、利益センタ更新時にMM326が発生し、未処理PO明細または分納契約がある旨のメッセージが表示される事象を扱っている。
筆者の判断 今回の検証環境では、旧PO 4500002272が利益センタ設定を阻害していた要因と判断した。ただし、この1件だけを根拠にSAP全般の唯一の根本原因とは一般化しない。

今回の実機検証で分かったこと

  • 利益センタ設定時にSAPメッセージ(クラス MM/番号 326)が出た場合、エラー本文どおり未処理POや分納契約の存在を確認することが切り分けの出発点になります。
  • 今回の実機では、旧PO 4500002272 の明細を削除対象として保存した後、同じ MM01 の利益センタ設定を保存できました。
  • 対処後は画面上の成功表示だけでなく、MARC-PRCTR まで確認すると、品目/プラント単位の反映を追えます。
  • 既存POへの対処は業務影響を伴うため、本番環境では今回のテスト手順をそのまま適用せず、対象POの状態と後続処理を確認して判断する必要があります。

今回の範囲外

MM326の内部実装や全発生条件の網羅、在庫が残る場合のMM335、分納契約を使った再現、品目元帳(Material Ledger)、MIGOによる移動タイプ101の実転記、MIRO、後続のFI会計伝票まではこの記事では扱いません。これらは後続の実機検証として切り分けます。