SAPマスタの王:品目マスタの一覧と項目一覧を表示するには?

Material-Master-All-Item-List

SAP ERPやS/4HANAにおいて、品目マスタ(Material Master)は全ロジスティクスで共通に使用される、最も基本的で、かつ最も項目数が多いマスタデータである。この品目マスタは、購買、在庫管理、生産、販売、原価管理など、あらゆる業務モジュールの基礎となる情報を内包しており、その重要性は極めて高い。

しかし、これだけ使用頻度の高いマスタデータでありながら、SAP ERPの標準機能では、この品目マスタの一覧や、項目一覧を簡単に照会するためのツールは限られており、実務においては不便さを感じる場面が少なくない

本記事では、この課題に対し、標準トランザクションやBAPI、SAPクエリを使用して、品目マスタを項目レベルで可視化する方法を紹介する。

SAP ERPまたはS/4HANAを使用しているすべてのSAP関係者にとって、品目マスタを可視化し、的確に管理することは不可欠である。本記事を、SAP ERPやS/4HANAにおける品目マスタの一覧・項目一覧の照会方法を検討する材料にしてほしい。

目次

品目マスタの一覧を照会する機能

なぜ照会機能は限られているのか?

SAP ERPやS/4HANAの標準トランザクションは多機能であるが、品目マスタを一覧表示する機能は充実しているとは言えない。特に、品目マスタの項目を一覧する標準機能は、存在しているものの非常にプアーと言わざるをえない。

これには以下のような理由が考えられる。

  • 品目マスタはデータ構造が非常に複雑であり、ビューごとに異なる情報を保持しているため、汎用的に表示するのが難しい。
  • SAPの設計思想として、「必要な情報は必要なトランザクションで確認する」分散型設計になっている。
  • セキュリティやパフォーマンスの観点から、すべての項目を一度に表示する設計が避けられている。

そのため、実務では自社のニーズに応じて、標準トランザクションに加えて、カスタムレポート(アドオン)SAPクエリなどを組み合わせて運用する必要がある。

品目マスタを一覧表示する標準トランザクション

まずは標準トランザクションから見ていこう。

品目マスタを一覧表示するトランザクション

MM60(品目一覧)」は、SAP標準で提供される品目一覧表示用のトランザクションコードである。

第一画面に指定する検索条件は、下図の通りわずかだ。

T-CD: MM60の第一画面

実行すると、表示される項目は「え? たったこれだけ?」と非常に少ない。その項目の少なさから、横スクロールする必要すらない。品目マスタの項目の多さを考えれば、その数は驚く程少ない。

つまり、MM60は品目マスタを一覧表示する機能ではあるが、表示される情報は基本情報に限られる。多くの項目を一度に見るようには設計されていないのだ。

品目マスタの「項目」を一覧表示するトランザクション

MM60は表示される項目が限定的なので、「品目コードの一覧」くらいに捉えておくのが正しいだろう。

一方、品目マスタの全項目を一覧表示する標準トランザクションは、驚くべきことに存在しない

品目マスタは、ロジスティクスにおいて最も頻繁に登録・参照されるマスタであると考えられる。そのため、当該マスタの項目を一覧表示し、内容を確認したいというニーズは高い(実際、顧客からそのような要望を受けることも少なくない)。しかしながら、MM60や、品目マスタそのものを参照するMM03を除き、これに該当する標準機能は存在しないのが実情である。

これは、品目マスタの構造が非常に複雑であり、情報が多数のテーブルにまたがって管理されているため、単一のトランザクションで全項目を網羅的に表示することが非効率であるためと考えられる。

品目マスタは登録時、複数のビューに向かって登録するが、どのビューを使用するかは企業ごとに異なる。言い換えれば、使用されていないビューや項目も混在することになる。そのような状態で全項目を強引に表示すると、値の登録されていない項目が多数含まれることになり、多くの情報がユーザにとって無意味となる。その結果、一覧表示は見づらく、操作性も悪いものとなってしまう

さらに、不要なテーブルやビューにまでアクセスすることは、無用にデータベースへの負荷を増大させるため、システム全体にとっても非効率である。

このような理由から、SAP側では品目マスタの全項目を表示するような標準トランザクションは用意していないと考えられる。


品目マスタの項目を一覧表示する標準機能が存在しないなら、自分たちで作るしかない。
以下では、品目マスタの全項目の一覧表を作成するための方法を幾つか紹介する。

BAPIを使う

品目マスタの項目を取得するBAPI

品目マスタの全項目を一覧表示するには、カスタムプログラムの開発、いわゆるアドオンを開発する方法が考えられる。

しかし、品目マスタの項目は複数のテーブルに分散して格納されているため、全項目を表示するためには、品目マスタ関連のテーブルを調べ上げる必要がある。MM01(品目マスタ登録)のプログラムを解析してテーブルを調べることは可能であるが、そもそもプログラムで全項目を列挙するコードを書くのは多くの工数を必要とし、効率が悪い。

プログラム作成の工数を減らすために、SAPは汎用モジュール/BAPIを用意している。品目マスタの項目を抽出するBAPIは、次の2つがある。

BAPI_MATERIAL_GET_DETAIL:基本情報の取得

BAPI_MATERIAL_GET_DETAIL は品目マスタの一覧を取得できるBAPIである。

しかし、このBAPIは名前ほどには品目マスタの詳細情報を取得できない。取得できる情報は、せいぜい品目の基本的な情報(基本ビューの情報)である。

このBAPIを駆動させるため主要なインポートパラメータは以下。

  • 品目コード
  • プラント
  • 評価レベル
  • 評価タイプ

出力される項目は、品目マスタの基本ビューのごく一部に限られる(インポートパラメータにプラントを指定させておいて、基本ビューの情報しか出力しないのは理解に苦しむが)。

つまり、このBAPIの役割は「品目マスタの存在確認」という程度に捉えておいた方がよい。

BAPI_MATERIAL_GET_ALL:全項目を網羅的に取得

BAPI_MATERIAL_GET_DETAIL よりもはるかに強力なのが「BAPI_MATERIAL_GET_ALL」である。こちらは名前の通り、指定した品目マスタの、全ての項目を網羅的に取得できる。

主要なインポートパラメータは以下の通り。

  • 会社コード
  • 流通チャネル
  • LIFO 評価レベル
  • 品目コード
  • プラント
  • 販売組織
  • 保管場所
  • 保管域タイプ
  • 評価レベル
  • 評価タイプ
  • 倉庫番号

MM01で品目マスタ登録を行ったことがある人ならピンと来ると思うが、基本ビュー以外に、販売、会計、保管場所など、品目マスタの主要なビューに対応していることがわかる。このBAPIによって取得できる項目数は、700個以上にのぼる。

こちらのBAPIは、名前の通り、品目マスタの全項目を取得できると言って差し支えないだろう。

品目マスタのテーブルはどれ?

BAPI_MATERIAL_GET_ALL が品目マスタの全項目を取得できるBAPIであるならば、それがアクセスしているデータ構造=ディクショナリ構造を調べることで、品目マスタがアクセスしている全テーブルを知ることができるはずだ。

T-CD: SM37(汎用モジュールビルダ)より、BAPI_MATERIAL_GET_ALL を参照し、メニュー「オブジェクト一覧照会」より、「ディクショナリ構造」から、使用しているテーブルの一覧を見ることができる。

品目マスタ(BAPI_MATERIAL_GET_ALL)のデータディクショナリ構造
テーブル名テーブルの日本語名テーブルの説明品目マスタ画面の該当ビュー
MARA一般商品データ品目の共通情報。基本データ1、基本データ2
MARC品目のプラントデータプラントごとの品目情報。購買、MRP1~4、作業計画、需要計画、原価見積、品質管理、倉庫管理1・2
MARC_APS_EXTEnhancement of MARC for Advance PlanningSAP S/4HANAのAdvanced Planningで使用。目標在庫や安全在庫など追加の計画属性を含む。直接のビューはなし(計画用途)
MARD品目の保管場所データ保管場所単位の在庫情報や補充パラメータを格納。倉庫管理1、倉庫管理2
MARV品目管理レコード品目マスタが有効な組織単位(会社コードなど)を制御する。直接のビューはなし
MBEW品目評価品目の評価(価格、評価クラス)に関する情報を保持。会計1、会計2
MFHM品目マスタの生産資源/治工具(PRT)項目作業中心(製造設備)と品目の関連を示す。作業計画
MLGN倉庫番号別品目データ倉庫管理レベル(倉庫番号)での品目データを格納。倉庫管理1
MLGT保管タイプ別品目データ倉庫の保管タイプごとの品目情報を管理。倉庫管理2
MPGD品目マスタ/製品グループの変更文書構造生産準備に関するデータを保持。作業計画
MPOP需要予測パラメータ品目の需要予測データ。計画や調達のために使用される。需要計画
MVKE品目の販売データ販売組織と流通チャネルごとの品目データ。販売:販売組織データ、販売:一般/プラントデータ
MYMSLIFO関連品目年間を通じた品目の消費量などを格納。分析用途に用いられる。需要計画
RMMG1品目マスタ更新: 初期パラメータ – 元品目各テーブルからのデータを統合して表示するビュー構造。MM03などで使用。全ビュー(統合表示構造)
/SAPAPO/MATPLSTALocation Product: Specific Planning Status per ApplicationSAP APOで使用。品目とプラントのステータス管理。直接のビューはなし(APO内で利用)
MARC_APS_EXTEnhancement of MARC for Advance PlanningSAP S/4HANAのAdvanced Planningで使用。目標在庫や安全在庫など追加の計画属性を含む。直接のビューはなし(計画用途)
品目マスタを構成する主要テーブル

BAPI_MATERIAL_GET_ALL のディクショナリ構造には存在していないが、「MAKT(品目テキスト)」も品目マスタを構成するテーブルである。

テーブル名テーブルの日本語名テーブルの説明品目マスタ画面の該当ビュー
MAKT品目のテキスト品目の名称を言語ごとに格納。基本データ1

上記のテーブルを活用すれば、カスタムレポートやSAPクエリが作成できるということだ。

中でも、次の2テーブルは品目マスタ画面の基本ビューと、購買やMRPビューに該当するため、多くのデータを保持している。言い換えれば、品目マスタの項目一覧レポートを作成する際に欠かすことのできないテーブルである。

  • MARA(一般商品データ)
  • MARC(品目のプラントデータ)

より詳細な品目マスタの関連テーブルを調べたければ、T-CD: MM01(品目マスタ登録)の本体プログラムである「SAPLMGMM」の中身を紐解くことである。

SAPLMGMMが参照しているテーブル(ディクショナリ構造)

しかし、同プログラムが参照しているテーブルは数が多く(上図はほんの一部!)、解析するには骨が折れ過ぎるので、BAPI_MATERIAL_GET_ALL のディクショナリ構造からテーブルを把握すれば十分だろう。


品目マスタのテーブルなど、指定したテーブルの全項目の詳細情報を取得できるExcelマクロの作成方法を紹介した記事は以下。そのまま利用できるExcelファイルもダウンロード可能である。

SAPシステムのテーブルを生成AIにたずねる方法もある。T-CODEやSAPの機能名から、アクセスしているテーブルを調べる生成AI用プロンプトを紹介した記事は以下。

SAPクエリ

BAPIを利用するにはABAPなどプログラム開発が必要となるが、開発リソースが確保できない場合には「SAPクエリ」が有効な代替手段となる。

SAPクエリはABAPによるコーディングを必要としないため、エンドユーザ自身で作成できる点も大きな利点である。

SAPクエリを作成するには、前提として品目マスタのテーブルを T-CD: SQ02にて、インフォセットとして登録しておく必要がある。インフォセットで指定すべき品目マスタのテーブルは、「品目マスタのテーブルはどれ?」で示した通りだ。

ただし、インフォセットクエリでは表示可能な項目数に上限があり、おおよそ100項目程度までに制限されている。そのため、品目マスタの全項目を表示することはできない。SAPクエリを用いて品目マスタの項目一覧を作成する際は、表示項目を取捨選択する必要がある。

まとめ:品目マスタの一覧は作る

SAP ERPやS/4HANAにおける品目マスタは、ロジスティクスの基幹を成す最重要マスタと言っても過言ではない。その品目マスタの項目を網羅的に表示・確認する方法は、標準機能においてはほとんど存在しない。

このため、品目マスタの項目一覧レポートが必要であれば、自分たちで用意する必要ががあり、その方法論を確立しておくことは、スムーズなシステム運用を図るために重要である。

品目マスタの一覧、および項目一覧を取得する機能・方法をまとめると以下の通り。

  • 標準トランザクションなら「MM60」。ただし、品目マスタの基本情報のみの一覧。
  • BAPI_MATERIAL_GET_DETAIL: 品目マスタの基本情報を取得するBAPI。
  • BAPI_MATERIAL_GET_ALL: 品目の全項目を取得できるBAPI。
  • SAPクエリ: 品目マスタ関連テーブルを結合し、エンドユーザでも作成可能。

品目マスタの管理レベルと精度を上げることは、SAP ERPシステムにおけるロジスティクスの精度を上げることに直結する。

品目マスタを一覧表示や、使用しているマスタ項目の網羅的な可視化は、品目マスタの整合性チェックやマスタメンテナンスにおいて極めて重要な役割を果たす。本記事が品目マスタの構造を理解する一助になれば幸いである。


製造業にとって、品目マスタと並ぶ重要なマスタが「BOM(部品表)」である。SAP ERPのBOMについて、基礎から解説した記事は以下。

品目マスタを登録するBAPIなら「BAPI_MATERIAL_SAVEDATA」だ。同BAPIの使い方を、どこよりも詳しく解説した記事は以下。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次