特定の品目を構成品に持っている品目を調べたいです。対処法を教えてください。
品目の構成品を一覧出力したいです。対処法を教えてください。
事前知識
BOM構成について
品目とBOMは以下のテーブルで管理されています。
テーブルID | 内容説明 | 備考 |
---|---|---|
STKO | BOM ヘッダ | |
STPO | BOM 明細 | BOMの構成品の一覧を保持 |
MAST | 品目の BOM へのリンク | 品目とBOMの紐付きを保持 |
BOMはBOMIDをキーとして管理されています。これはBOMは同じ品目に対して、複数のBOMをもつことができるためです(BOM用途や代替BOMなどで、複数のBOMを管理可能)。
対応方法
テーブルデータから照会する方法と、SAP標準のレポートを使う方法があります。用途に都合の良い方を使ってください。
- BOMIDも一覧に表示する場合:テーブル結合
- 多段階BOMを展開/逆展開する場合:SAP標準のレポートを利用
BOMIDも一覧に表示する場合:テーブル結合
各テーブルをそれぞれ検索することでも対応できますが、テーブルを結合して検索した方がやりやすいです。
以下のトランザクションを起動後、診断>SQL Editor(ECCだと、SQLコマンドエディタ)でSQL Editorを開きます。
- DB02
- DBACOCKPIT
- ST04
目的に応じたSQLを以下からコピペし、品目コードを書き換えて実行してください。
特定の品目を構成品に持っている品目を調べる
SELECT
MAST.MATNR /*品目*/
,MAST.WERKS /*プラント*/
,MAST.STLAN /*用途*/
,MAST.STLAL /*代替BOM*/
,STPO.STLNR /*BOM*/
,STPO.IDNRK /*構成品目*/
FROM
STPO
INNER JOIN MAST
ON MAST.MANDT = STPO.MANDT
AND MAST.STLNR = STPO.STLNR
WHERE
STPO.MANDT = '100' /*ここにクライアントを入れる*/
AND STPO.IDNRK = 'A123456789' /*ここに構成品目を入れる*/
品目の構成品を調べる
SELECT
MAST.MATNR /*品目*/
,MAST.WERKS /*プラント*/
,MAST.STLAN /*用途*/
,MAST.STLAL /*代替BOM*/
,STPO.STLNR /*BOM*/
,STPO.IDNRK /*構成品目*/
FROM
STPO
INNER JOIN MAST
ON MAST.MANDT = STPO.MANDT
AND MAST.STLNR = STPO.STLNR
AND MAST.MATNR = 'A123456789' /*ここに品目を入れる*/
WHERE
STPO.MANDT = '100' /*ここにクライアントを入れる*/
多段階BOMを展開/逆展開する場合:レポートのトランザクションを利用
SAP標準のトランザクションで、BOMを多段階で展開/逆展開する機能がある。単一品目に対して親品目をパッと照会するだけであれば、この機能でよい。
- BOMを展開する:CS12
- BOMを逆展開する:CS15、CS15M
ただし、親品目が多く存在する場合、レポート出力までに時間がかかるので注意。
Tr-Cd | 機能名称 | 備考 |
---|---|---|
CS11 | レベル毎 BOM | 品目の構成品を末端の品目まで展開して表示する。 |
CS12 | 多段階 BOM | 品目の構成品を末端の品目まで展開して表示する。 |
CS13 | サマリ BOM | 構成品を集計して表示する。 |
CS14 | BOM比較 | 2つのBOMを比較する。 |
CS15 | 品目使用先一覧 | 品目を使用している親品目を検索する。親品目の親品目があれば、それも表示する。 ※プラントも入力すること |
CS15M | 品目使用先一覧 | CS15の品目が複数指定できるようになったもの。こちらの方が使いやすいかも。 ※プラントも入力すること |
コメント