「SAP MMモジュールの教科書」No.5 MM関連マスタデータのテーブル構造
1.はじめに
『SAP MMモジュールの教科書』⑤と⑥では、2回に分けてMMモジュールに関連するマスタやトランザクションデータが格納されるテーブル構造について解説します。前回までは、MMモジュールに関連するマスタについてご説明しました。今回は、これらのマスタデータが格納されるテーブル、次回は、トランザクションデータが格納されるテーブルを解説します。少々システム寄りの内容になりますが、SAPコンサルタントとしても、テーブル構造を理解していることで検討や提案の幅が広がるので、ぜひ参考にしていただければと思います。
2.MMに関連するマスタ
今回は、以下のマスタに関連するテーブルを解説します。各マスタの詳細解説は、『SAP MMモジュールの教科書』の③と④をご参照ください。
3.品目マスタ
SAPの主要マスタのひとつである品目マスタは、モジュール横断で使用するため、ビュー単位で管理されています。主に業務ごとに異なるビューを持っており、それぞれキー項目が異なります。そのため、品目マスタのデータ格納先も複数に分かれています。品目マスタに関連するテーブルは、数が多く、当ページですべてをご紹介することはできませんが、MMモジュールとの関連が密接なテーブルをご紹介します。
MARA:一般データ
MARAは、品目の基本情報を保持するテーブルです。基本数量単位など、品目単位で保持する情報は、このMARAに保持しています。MMモジュールに限らず、該当品目を使用する全てのモジュール、組織が参照するデータであるため、主キーは、品目コードのみです。組織情報は保持していません。
MAKT:テキスト
MAKTでは、言語ごとに品目のテキストを保持しています。主キーは品目コードと言語です。MARA同様、該当品目を使用する全てのモジュール、組織が参照するデータであり、主キーに組織は、含まれていません。取引先によって帳票に出力する言語を変更するなどの要件がある場合、1つの品目でも複数の言語で名称を出力することがあります。そのような際は、英語、日本語など使用する言語ごとに品目テキストを登録し、MAKTに保持しています。
MARM:数量単位
MARMは、代替え数量単位の換算数量を保持するテーブルで、主キーは、品目コードと代替数量単位です。MARMも上述のテーブルと同様、該当品目を使用する全てのモジュール、組織で適用されるデータです。SAPで業務を行う際に、基本数量単位以外の数量単位を使用することがあります。例えば、基本数量単位には ‘KG’ を設定していますが、受注や仕入れは ‘BOX’ 単位で行うとします。その場合、1BOXは何KGであるのか換算情報が必要となります。このテーブルでは、50KG = 1BOXなどの基本数量単位から代替数量単位への換算情報を保持しています。
MARC:プラントデータ
MARCはプラントに関するデータを保持するテーブルで、MRPビューや購買管理ビューで登録したデータを保持しています。主キーは、品目コードとプラントです。
4.ビジネスパートナマスタ
ビジネスパートナマスタも品目マスタ同様、SAPの主要マスタでモジュール横断で使用されるマスタです。ビジネスパートナマスタもテーブル構造が複雑で関連するテーブルが多くあるため、MMモジュールに関連するテーブルを一部ご紹介します。
BUT000:BP一般データ
BPコードを主キーに、ビジネスパートナマスタを登録する際に必ず入力するビジネスパートナカテゴリや名称などの情報を保持します。基本となるテーブルで、得意先や仕入先などのBPロールに関わらずビジネスパートナを登録すると必ずBUT000にデータが格納されます。
BUT020:BP住所
SAPでは、住所は後述のADRCテーブルに保持しています。BUT020では、ADRCから住所を取得する際に必要となるアドレス番号をBPコードに紐づけて保持しています。
ADRC:アドレス
BUT020にアドレス番号を保持していますが、実際に住所を保持しているのはADRCになります。アドレス番号ごとに住所を管理しています。
BUT100:BPロール
ビジネスパートナのビジネスパートナロールを保持しているテーブルです。ビジネスパートナロールを拡張していくとBUT100にデータが格納されていき、ビジネスパートナごとにどのロールが割り当てられているかを確認することができます。
LFA1:仕入先マスタ(一般データ)
LFA1は、ビジネスパートナマスタ登録時に仕入先ロールを割り当てると入力することのできるデータを保持するテーブルです。S/4 HANAでは得意先と仕入先がビジネスパートナマスタとして統一されていますが、以前は仕入先と得意先は別々のマスタで管理されていました。このLFA1や後述しているLFB1、KNA1、KNB1は、S/4 HANA以前から存在するテーブルのため、主キーの表示が「仕入先コード」「得意先コード」となっていますが、実際には「ビジネスパートナコード」と同一のコードになります。
LFB1:仕入先マスタ(会社コード)
ビジネスパートナマスタ登録時に仕入先ロールを割り当て、会社コードを指定すると入力することのできるデータを保持するテーブルです。会社ごとに管理するデータのため、主キーは仕入先(BP)コードに加え、会社コードが含まれます。
KNA1:得意先マスタ(一般データ)
得意先情報であるため、購買業務では使用することは少ないですが、ビジネスパートナマスタの全体像を理解するために、得意先のテーブル構造についても少し触れておきます。得意先ロールを割り当てると入力することのできるデータは、得意先情報としてKNA1に保持されます。
KNB1:得意先マスタ(会社コード)
ビジネスパートナマスタ登録時に得意先ロールを割り当て、会社コードを指定すると入力することのできるデータを保持するテーブルです。会社ごとに管理するデータのため、主キーは得意先 (BP)コードに加え、会社コードが含まれます。
5.購買情報マスタ
購買情報マスタは、仕入先×品目ごとに価格や納期など調達業務に関わる情報を管理しているマスタです。テーブルは、一般データと購買組織データで構成されており、価格情報は条件テーブルに保持しています。
EINA:購買情報(一般データ)
EINAは、ヘッダに相当するテーブルで、主キーは購買情報番号のみです。購買情報マスタ登録画面で、「一般データ」として仕入先×品目単位で登録する内容を保持しています。
EINE:購買情報(購買組織データ)
EINEは、EINAよりも粒度が細かく、購買組織やプラントレベル保持する購買情報データを保持するテーブルです。そのため、主キーは購買情報番号に加え、購買組織、購買情報カテゴリ、プラントになります。
A017/A018:品目購買情報
購買情報マスタでは、条件タイプごとに有効期間と金額を登録します。実際に登録した有効期間や金額情報は後述する別テーブル(KONH/KONP)で保持していますが、A017とA018では、条件レコードを取得するために必要となる条件レコード番号を保持しています。A018は購買組織単位、A017はさらに細かいプラント単位での管理になります。そのため、A017にはプラントも主キーに含まれています。
KONH:条件ヘッダ
条件レコードのテーブル構造は、ヘッダと明細に分かれています。ヘッダとなるKONHでは、条件レコード番号と条件タイプごとに条件レコードの有効期間情報を保持しています。主キーは、上述のA017とA018で保持している条件レコード番号のみです。
KONP:条件明細
条件レコードの明細となるKONPでは、金額情報を保持しています。主キーは、条件レコード番号と連続番号です。連続番号とは、テーブル管理上連番で自動採番される番号になります。
6.供給元一覧
供給元一覧は、品目を発注することができる仕入先を品目×プラントごとに登録するマスタです。テーブル構造はシンプルで、関連するテーブルは以下の1つのみになります。
EORD:供給元一覧
EORDは、品目×プラントごとにその品目の発注先(=仕入先)を管理するマスタであるため、品目コードとプラント、そして供給元一覧番号を主キーとして管理しています。供給元一覧のマスタ登録画面と同様、有効期間と供給可能な仕入先を管理しています。
7.供給量割当
供給量割当は、複数の仕入先から同一品目を調達する場合に、各仕入先からどれほどの配分で調達を行うのか品目×プラントごとに設定するマスタです。供給量割当のテーブル構造は、ヘッダと明細で分かれています。
EQUK:供給量割当ヘッダ
ヘッダにあたるEQUKでは、品目×プラントに加え、有効終了日を主キーに持っています。供給量マスタをマニュアルで登録する際もまず有効期間を指定してから、次の画面でその期間内の供給量割当を入力します。EQUKは、この有効期間を指定する画面に該当するイメージです。
EQUP:供給量割当明細
実際の仕入先ごとの供給量は、明細であるEQUPに保持しています。ヘッダであるEQUKとの紐づけは、「供給量割当番号」と「供給量割当番号」で行っています。EQUKで保持している有効期間の供給量情報を仕入先ごとに保持するテーブルです。
8.最後に
ここまで、MMモジュールに関連するマスタデータが格納されるテーブルを解説してきました。SAPコンサルタントとしてSAP導入プロジェクトに参画していると、マスタの検討はしてもテーブル構造まで考慮することはなかなか少ないかと思います。しかし、アドオン開発などの設計時には必要な知識です。また、テーブル構造まで理解していることで、SAPコンサルタントとしての幅も広がると思うので、ぜひ参考にしていただけますと幸いです。次回は、トランザクションデータのテーブルについて解説します。