SAP MM 価格条件

SAP MM 価格条件
価格条件は、SAPの条件技術フレームワークにおける購買管理(MM)向けに、仕入先と合意した価格条件(総額価格、割引、追加料金、運送費)を保存するマスタデータオブジェクトです。購買情報レコードのフラットな正味価格とは異なり、価格条件は複数レベルのロジック(日付範囲の有効性、数量スケール、仕入先階層、多段階計算スキーマ)をサポートします。適切に設定されたMM環境では、すべての購買発注明細の価格は、このフレームワークを通じて決定されます。この記事では、MM条件技術の全体的なアーキテクチャ(パート1)と、コンサルタントが定義・保守するMM固有の設定およびフィールド詳細(パート2)について説明します。
第1部: 価格条件 — 中核概念(全モジュール)
1.1 価格条件とは

価格条件は、SAPの条件技術(Condition Technique)内で管理される構造化された価格レコードであり、これは複数のSAPアプリケーション(MM、SD、TM)で使用されるルールベースの価格決定のための汎用フレームワークです。MM購買において、価格条件は、特定のキー組み合わせ(例:仕入先+品目、または仕入先+品目グループ+購買組織)に対して、定義された有効期間にわたり合意された価格または調整係数を格納し、オプションで数量ベースのスケールを持つことができます。購買発注作成時、システムは価格決定手順で定義されたアクセス順序を通じて該当する価格条件を検索し、ステップ順に該当レコードを解決し、有効な購買発注価格を計算します。
| 側面 | 詳細 | |
|---|---|---|
| 役割 | 構造化された価格および割引レコードを保存し、条件技術(Condition Technique)を通じて購買発注の自動価格計算を駆動します。 | |
| 使用するモジュール | MM(購買 — 購買条件の主要な所有者であり、唯一の保守担当)、FI(請求書照合の基準額として、条件から導出された正味価格を使用) | |
| トランザクション | MEK1(作成)/ MEK2(変更)/ MEK3(照会)/ MBN1(条件一覧 — 全レコードの概要)/ MEK31(条件タイプ別変更) | |
| 主要テーブル | KONP(条件明細データ — 金額、通貨、有効期間)/ KONV(購買伝票内の条件データ — 実行時評価コピー)/ A018(仕入先 + 品目の条件レコード)/ A017(仕入先 + 品目グループの条件レコード) | |
| S/4HANAに関する注意点 | 購買における条件技術フレームワークはECCから変更されていません。MEK1/MEK2/MEK3が引き続き主要トランザクションです。Fioriアプリ「購買条件管理」(F2401)がS/4HANA 2020以降で利用可能であり、条件レコードの保守に使用できます。 |
1.2 条件技術の4つの構成要素

MM購買における条件技術は、4つの連動する設定オブジェクトから構成されています。価格決定マスタデータの設計を決定する前に、これらの関係を理解することが不可欠です。
| ビルディングブロック | 技術ID | ユースケース | 主要な動作 | |
|---|---|---|---|---|
| 条件テーブル | Aテーブル(例:A018) | 条件レコードを一意に識別するキー項目を定義(例:仕入先 + 品目 + 購買組織 + プラント) | キーの組み合わせごとに1つのテーブル。標準テーブル(A017~A030)でほとんどのユースケースをカバー。カスタムテーブルにはABAP開発が必要(トランザクションM/03)。 | |
| アクセス順序 | 例:0002 | 条件テーブル間の検索順序を定義 — 最も具体的なものから最も具体的でないものへ(例:最初に仕入先+品目、フォールバックとして仕入先+品目グループ) | 最初に一致したものが採用される。同一ステップに複数の有効な条件レコードが存在する場合、順序によって適用される条件レコードが決定される。 | |
| 条件タイプ | 例:PB00、RA00 | 価格決定要素の性質を定義:総額価格、パーセント割引、絶対値割増、運賃など | 各条件タイプは1つのアクセス順序にリンクされる。計算ルール(パーセント vs. 固定金額 vs. 数量ベース)は、条件タイプごとにカスタマイジングで設定される。 | |
| 価格決定手順(計算スキーマ) | 例:RM0000 | 完全な価格計算を定義:含める条件タイプ、その順序、小計、各ステップが参照する基準値 | 購買組織 + 仕入先スキーマグループの組み合わせに割り当てられる。総額価格から正味価格、実効価値に至るまでの完全なロジックを決定する。 |
設計原則: 条件技術はトップダウンで設定(価格決定手順 → 条件タイプ → アクセス順序 → 条件テーブル)されますが、実行時にはボトムアップで評価(レコード検索 → ステップ計算 → 正味価格)されます。この2つの方向性を混同することが、価格決定の設定ミスで最も一般的な原因です。
1.3 組織階層とデータ階層

データ階層と具体例
価格条件は3つの階層にわたってカスケードされます。
Layer 1 — Customizing (one-time setup, owned by MM Customizing team)
│
├── Pricing Procedure RM0000
│ Steps: PB00 → RA00 → FRB1 → NAVS
│ Assigned to (Purchasing Org 1000 × Vendor Schema Group "01")
│
├── Condition Type PB00 — Gross Price
│ Condition Type RA00 — % Discount
│ Condition Type FRB1 — Freight (absolute)
│
└── Access Sequence 0002
Step 1: search by (Vendor × Material × Plant)
Step 2: search by (Vendor × Material)
Step 3: search by (Material)
Layer 2 — Master Data (owned by MM master data team, MEK1 / MEK2)
│
├── Condition Record: Vendor A × Material 100 → €10.00/PC (PB00)
│ Validity 2026-01-01 to 2026-12-31
│ Scale: ≥100 PC → €9.40/PC
│
└── Condition Record: Vendor A → 5% discount (RA00)
Layer 3 — Runtime (created automatically every PO save)
│
└── PO 4500001234 Item 10 — Vendor A, Material 100, 50 PC
Pricing procedure runs → final line value
Document Condition stores: €10.00 − 5% = €9.50/PC1.4 他のマスタデータオブジェクトとの統合

価格条件フレームワークは単独で動作するわけではありません。その設定はカスタマイジングオブジェクトに依存し、そのレコードは購買マスタデータと密接に連携します。
| オブジェクト | 関係性 | 実務上の注意点 | |
|---|---|---|---|
| 購買情報レコード (PIR) | PIRはフラットな正味価格(EINE-NETPR)を保持します。価格条件レコードは、その価格の背後にある構造化された条件内訳を提供します。 | 条件レコード(PB00)がMEK1で管理されている場合、価格決定手順の設定に応じて、PIRのフラットな価格を上書きまたは補完します。両方ともME13で表示可能です。条件テクニックの価格は、有効な場合に優先されます。 | |
| 仕入先マスタ | 仕入先マスタの仕入先スキーマグループにより、その仕入先に対する購買発注に適用される価格決定手順が決定されます。 | スキーマグループは、仕入先マスタの購買組織データで設定されます。スキーマグループが欠落または誤っていると、誤った価格決定手順が割り当てられます。これは最も一般的な本番移行時の不具合の一つです。 | |
| 品目マスタ | 品目グループおよび品目レベルのキー項目は、条件テーブル(A017 = 仕入先 + 品目グループ、A018 = 仕入先 + 品目)で使用されます。 | 品目マスタの品目グループ(MATKL)は、品目固有の価格レコードがない場合の、アクセス順序の一般的なフォールバックです。 | |
| 枠組み合意(契約 / 日程合意) | 契約は、独自の条件レコード(契約番号にリンク)を保持します。 | 契約条件は、ソース決定においてスタンドアロンの価格条件レコードよりも優先されます。契約の条件レコードは、ME32 / ME33で個別に管理されます。 | |
| 購買発注 | 購買発注明細行作成時に、価格決定手順が呼び出され、アクセス順序が評価され、KONPからの該当する条件レコードがKONVにコピーされます。 | 購買発注作成後の条件レコードの変更は、既存の購買発注を自動的に更新しません。再処理または手動更新が必要です。 |
第2部: MM固有のフィールド詳細
2.0 MM(在庫管理/購買管理)の所有範囲

| データ区分 | MM関与 | 備考 | |
|---|---|---|---|
| 価格決定手順(計算スキーマ) | ○ MMカスタマイジングと共有 | スキーマ定義はカスタマイジング — MMコンサルタントが要件を指定し、ABAPerまたは設定チームがSPROで実装 | |
| 条件タイプ設定 | ○ MMカスタマイジングと共有 | 条件タイプの属性(計算ルール、スケール基準)はカスタマイジング。MMマスタデータチームはT685を直接変更しない。 | |
| アクセス順序設定 | ○ MMカスタマイジングと共有 | アクセス順序と条件テーブルの定義はカスタマイジング。MMが検索キー論理を指定し、設定チームが実装。 | |
| 条件レコード(KONP / Aテーブル) | ◎ オーナー | MMマスタデータチームがMEK1/MEK2を使用して価格および割引レコードを作成・管理。これが主要な運用責任領域。 | |
| 条件スケール | ◎ オーナー | 数量ベースの価格決定スケールは条件レコードの一部 — MMがMEK1/MEK2で管理。 | |
| 有効期間管理 | ◎ オーナー | MMチームが各条件レコードの日付範囲の有効性を管理。期限切れレコードはアーカイブまたは後続レコードで置き換える必要がある。 | |
| 伝票条件(KONV) | ○ 購買と共有 | 伝票条件は購買発注保存時に自動生成。個別購買発注の手動上書きは、マスタデータチームではなく購買担当者が実行。 |
凡例: ◎ = オーナー/最重要, ○ = 直接関与
2.1 価格決定手順(計算スキーマ)

価格決定手順(計算スキーマとも呼ばれる)は、購買発注明細行の完全な価格計算ロジックを定義します。これは最上位の制御オブジェクトであり、すべての条件タイプとその計算順序がここで定義されます。MMコンサルタントは、カスタマイズの要件を定義するために標準スキーマを理解する必要があります。
| フィールド | 説明 | 実務上の使用例 | |
|---|---|---|---|
| スキーマキー | 価格決定手順の識別子(例:RM0000) | 標準SAPでは、MM購買スキーマのデフォルトとしてRM0000が提供されています。ほとんどの実装ではRM0000を出発点として使用し、ローカル要件(例:日本の消費税を個別の条件タイプとして扱う場合など)で構造変更が必要な場合にのみ、カスタムスキーマ(Zプレフィックス)にコピーします。 | |
| ステップ番号 | 各計算ステップの順序番号 | ステップは上から下に評価されます。「From」および「To」フィールドは他のステップ番号を参照し、どの小計がパーセンテージ計算のベースとなるかを定義します。ステップ間の間隔(10、20、30…)により、後から番号を振り直すことなく挿入が可能です。 | |
| 条件タイプ | このステップで使用される価格決定要素(例:PB00、RA00、FRB1) | 各ステップは正確に1つの条件タイプを参照します。複数のステップが異なるコンテキスト(例:ベース参照が異なる2つの割引ステップ)で同じタイプを参照することができます。 | |
| From / To | ベース値の参照(ステップ番号範囲) | パーセンテージ割引ステップ(RA00)の場合、「From = 10、To = 10」は、ベースがステップ10(総額価格)であることを意味します。From/Toの割り当てが誤っていると、パーセンテージ割引が誤ったベースに適用される原因となり、スキーマ変更後の一般的な回帰不具合です。 | |
| 小計 | 中間結果フラグ | ステップを小計参照ポイント(例:「運賃前の正味価格」)としてマークします。他のステップはこの小計をベースとして参照します。多段階の割引構造に不可欠です。 | |
| 要件 | このステップが評価されるための条件 | 要件ルーチン番号は、特定のステップに該当する伝票条件をフィルタリングします。標準ルーチン2 = 「有効な条件のみ」。カスタム要件は、複雑な除外ロジックのために開発されたABAPルーチンです。 | |
| 手動 | 手動入力フラグ | チェックされている場合、購買担当者は条件レコードがなくても、購買発注書にこの条件タイプの値を直接入力できます。一回限りの運送費やプロジェクト固有の追加料金によく使用されます。 | |
| 印刷 | 印刷制御 | この条件タイプとその値が仕入先への購買発注書出力に印刷されるかどうかを制御します。運用上の条件(内部コスト配賦)は印刷しないでください。 | |
| 統計 | 統計専用フラグ | チェックされている場合、条件値は参照用に表示されますが、正味価格計算には加算されません。正味価格に含めずに税額を表示する必要がある税表示ステップ(源泉徴収税シナリオで一般的)に使用します。 |
2.2 条件タイプの設定

条件タイプは、各価格決定要素の動作(計算方法、適用されるスケール基準、条件レコードを保持できるかどうか)を定義します。MMコンサルタントは、価格決定の異常を診断するために、条件タイプの設定を読み解釈できなければなりません。
| フィールド | 説明 | 実務上の使用例 | |
|---|---|---|---|
| 条件タイプコード | 2~4桁の識別子(例:PB00、RA00) | 命名規則:P接頭辞=価格、R接頭辞=割引/リベート、F接頭辞=運賃/追加料金、Z接頭辞=カスタムタイプ。カスタムロジックに標準コードを再利用することは、アップグレード時にSAPが上書きする可能性があるため、強く推奨されません。 | |
| 条件クラス | 条件のカテゴリ(A=割引/追加料金、B=価格、C=費用) | クラスB条件(価格)は基本価格を設定し、クラスA条件(割引/追加料金)はそれを変更します。クラスC(費用)条件は、会計上の目的で伝票に計上される非価格コストを表します。 | |
| 計算ルール | 条件値の計算方法を決定します | A=パーセンテージ(金額を基準の%として適用)、B=固定金額(正確な金額を適用)、C=数量(数量単位あたりの金額)。PB00はルールBを使用し、RA00はルールAを使用します。新しい条件タイプに誤ったルールを使用することは、国固有のロールアウト時によくある設定ミスです。 | |
| プラス/マイナス | 条件効果の符号 | 正(A)=価格に加算、負(B)=価格から減算(割引)。運賃追加料金は正、割引は負であるべきです。符号が誤っていると、システムが割引を差し引く代わりに加算してしまい、購買発注額を膨らませる重大な欠陥となります。 | |
| スケール基準 | 数量スケールの評価方法を決定します | A=数量スケール(発注数量に基づき価格が変動)、B=金額スケール(発注金額に基づき価格が変動)。ほとんどの購買条件は数量ベースのスケールを使用します。金額スケールは購買ではあまり一般的ではありませんが、運賃条件で見られます。 | |
| アクセス順序 | この条件タイプに割り当てられた検索ロジック | 有効なレコードを見つけるために、どの条件テーブルをどの順序で検索するかを決定します。アクセス順序がない条件タイプは「手動のみ」となり、購買担当者は購買発注に値を手入力する必要があり、自動検索は行われません。 | |
| 上限/下限 | 許容される最大値と最小値 | 購買担当者が異常に高い、または低い条件値を受け入れることを防ぎます。購買発注の価格提案時にトリガーされ、提案された条件値が許容範囲外の場合、システムは警告またはエラーを生成します。 |
2.3 アクセス順序と条件テーブル

アクセス順序は、購買発注作成時にシステムが正しい条件レコードを検索するための検索戦略を定義します。適切に設計されたアクセス順序は、不必要に詳細なレベルでの条件レコードを必要とせずに、価格を効率的に解決します。
| フィールド | 説明 | 実務上の使用例 | |
|---|---|---|---|
| アクセス順序キー | 識別子(例:標準MM順序の0002) | SAP標準では、条件タイプPB00にアクセス順序0002が提供されています。これは、(1) 仕入先 + 購買組織 + 品目、次に (2) 仕入先 + 購買組織 + 品目グループの順で検索します。ほとんどの導入プロジェクトではこの標準を採用し、追加のキーフィールド(例:プラントレベルの価格決定)が必要な場合にのみ、カスタム順序(Zプレフィックス)を作成します。 | |
| ステップ番号(アクセス) | 順序内での条件テーブル検索の順序 | 番号が小さいほど先に検索され(最も具体的)、番号が大きいほどフォールバック(より汎用的)となります。標準アクセス順序0002では、ステップ5(仕入先+品目)がステップ10(仕入先+品目グループ)よりも先に検索されます。 | |
| 条件テーブル | このアクセスステップのキーフィールドを定義するAテーブル | 標準購買条件テーブル:A017(仕入先 + 品目グループ)、A018(仕入先 + 品目)、A019(仕入先 + 購買組織)、A020(仕入先 + プラント)。カスタムテーブル(Axxx、900番台以降)は、トランスポートとM/03によるABAPテーブル再生成が必要です。 | |
| 排他 | 排他的一致フラグ | チェックされている場合、このステップでレコードが見つかると、そのレコードが有効期間外であっても、システムはそれ以降のステップの検索を停止します。チェックされていない場合、有効なレコードが見つからなければ、システムは優先度の低いステップの検索を続行します。 | |
| キーフィールドリスト | 条件レコードを識別するフィールドの組み合わせ | A018の例:LIFNR(仕入先)+ MATNR(品目)+ EKORG(購買組織)。システムが条件レコードを取得するには、すべてのキーフィールドが一致する必要があります。いずれかのキーフィールドの値が欠落していると、アクセスは結果を返さず、手動価格入力にデフォルト設定されるサイレント障害となります。 |
2.4 条件レコード (KONP — マスタデータ)

Condition Records(条件レコード)は、MMチームが管理する運用マスタデータです。各レコードは、特定のキー組み合わせに対して合意された価格または調整係数を、定義された有効期間にわたって保存します。これらは、MEK1(作成)、MEK2(変更)、およびMBN1(一括照会)を使用して作成・管理されます。
| フィールド | 説明 | 実務上の使用 | |
|---|---|---|---|
| 条件タイプ | 価格決定要素を識別します(例:PB00、RA00) | 作成時に設定 — 保存後は変更不可。誤った条件タイプで作成した場合は削除して再作成が必要。重複を防ぐため、有効な条件タイプのマスタリストを維持すること。 | |
| キーフィールド(例:仕入先、品目、購買組織) | 条件テーブル内のレコードを識別します | キーの組み合わせは、アクセスシーケンスステップに割り当てられた条件テーブルによって決定されます。A018レコードの場合:仕入先 + 品目 + 購買組織。部分的なキー(例:購買組織を省略)を入力すると、より広範囲のレコードが作成され、意図しない購買組織に一致する可能性があります。 | |
| 金額 | 条件値(価格またはパーセンテージ) | PB00の場合:価格単位あたりの総額。RA00の場合:割引率。FRB1の場合:運送料金。金額フィールドには合意された値が入ります — 有効化前に必ず仕入先および財務チームと単位と通貨の整合性を確認すること。 | |
| 通貨 | 金額の通貨 | 仕入先の請求通貨に合わせます。日本向けプロジェクトでは、国内仕入先にはJPYが一般的、国際的な仕入先にはUSDまたはEUR。購買発注通貨と通貨が一致しない場合、為替レートテーブル(OB08)を使用して自動的に外貨換算がトリガーされます。 | |
| 価格単位 | 金額の基準数量 | 例:「100 EAあたり」の場合、金額1,500 JPYは100単位発注ごとに適用されます。価格単位が誤っていると、体系的な価格計算エラーが発生します — 例:仕入先が1,000単位あたりで見積もっているのに価格単位=1と設定すると、購買発注価格が1,000倍になります。 | |
| UoM(単位) | 価格単位の測定単位 | 購買発注単位と一致しているか、品目マスタで換算が定義されている必要があります。条件レコードのUoMと購買発注明細のUoMが一致しない場合、誤った価格提案が発生し、購買担当者が請求書照合まで気付かない可能性があります。 | |
| 有効開始日 | 条件レコードの有効性の開始日 | 仕入先との合意日より前の日付は設定不可。年次価格改定の場合、有効開始日を新しい会計年度の初日に設定します。レコードはこの日付で有効になります — 空白期間を避けるため、有効化日の前にMEK1メンテナンスセッションを計画すること。 | |
| 有効終了日 | 条件レコードの有効性の終了日 | 仕入先契約または年次見直しサイクルに合わせて、明示的な終了日を常に設定します。終了日未設定(空白)のレコードは無期限に存続し、合意価格が変更された後も適用される可能性があります。ガバナンスポリシーでは、すべての価格条件レコードに対して有効終了日の空白を禁止すべきです。 | |
| 削除フラグ | 論理削除のためにレコードをマークします | 削除されたレコードはアクセスシーケンス検索から除外されますが、監査のためにデータベースに残ります。トレーサビリティの観点から物理削除よりも推奨されます。削除フラグを設定するにはMEK2を使用します。物理的なクリーンアップは定期的なアーカイブタスクです。 |
2.5 条件スケール

条件スケールを使用すると、1つの条件レコードに、注文数量または金額に基づく複数の価格段階を保持できます。これらは、MEK1/MEK2の条件レコードの一部として管理され、購買発注明細レベルで評価されます。
| フィールド | 説明 | 実務上の使用例 | |
|---|---|---|---|
| スケール基準 | スケールが数量基準か金額基準かを決定します | 標準のMM購買では数量スケール(A)を使用します。発注数量に基づいて該当する価格段階が選択されます。金額スケール(B)は、請求書合計金額によって料金が変動する運送条件で使用されます。 | |
| スケール数量 / 金額 | 次の価格段階が有効になるしきい値 | 例:1 EA = 1,500円/100、100 EA = 1,350円/100、500 EA = 1,200円/100。システムは、発注数量を超えない範囲で最も高い該当しきい値を選択します。しきい値間のギャップは、最も近い下位の段階で補完されます。 | |
| スケール金額 | このスケール段階の条件値(価格または%) | PB00価格スケールの場合、これはこの数量段階における価格単位あたりの総額です。RA00割引スケールの場合、これは割引率です。すべてのスケール金額とその価格単位が、一貫性を保つために同じ通貨と単位を使用していることを確認してください。 | |
| スケールタイプ | 累進スケールと非累進スケール | 標準SAPは「~までの価格」スケーリング(各段階が全数量に適用される)と「~からの価格」スケーリング(各段階がしきい値を超える増分数量にのみ適用される)をサポートしています。「~までの価格」スケーリングがデフォルトであり、購買で最も一般的です。「~からの価格」スケーリングは稀であり、カスタムカスタマイジングが必要です。 |
前提条件: 条件タイプの設定でスケールが許可されている必要があります(T685のスケール基準フィールドが設定されていること)。条件タイプのスケール基準が空白の場合、MEK1のスケール入力画面は表示されません。これは、当初単価として設定された既存の条件タイプにスケールを追加する際に、よくある混乱の原因です。
次に読むべきもの
L1) Big Picture
| ID | Category | Title |
|---|---|---|
| mm-001 | Overview | SAP MMとは何ですか? |
L2-A) Master Data
| ID | Category | Title |
|---|---|---|
| mm-a01 | Overview | SAP MM マスタデータ:概要、階層、および関係性 |
| mm-a02-01 | Master Data | SAP MM 品目マスタ |
| mm-a04-01 | Master Data | SAP MM クラス |
| mm-a04-02 | Master Data | SAP MM 特性 |
| mm-a06-01 | Master Data | SAP MM 購買情報レコード |
| mm-a05-01 | Master Data | SAP MM ロットマスタ |
| mm-a06-02 | Master Data | SAP MM 供給元一覧 |
| mm-a06-03 | Master Data | SAP MM 供給量割当 |
| mm-a06-04 | Master Data | SAP MM 価格条件 📍 |
L2-B) Transaction
| ID | Category | Title |
|---|---|---|
| mm-b01 | Overview | SAP MM トランザクション:プロセスフロー、階層、モジュール統合 |