特定の品目を構成品に持っている品目を調べたい/品目を構成品を一覧出力したい

特定の品目を構成品に持っている品目を調べたいです。対処法を教えてください。
品目の構成品を一覧出力したいです。対処法を教えてください。

■BOM構成について

品目とBOMは以下のテーブルで管理されています。

テーブルID内容説明備考
STKOBOM ヘッダ
STPOBOM 明細BOMの構成品の一覧を保持
MAST品目の BOM へのリンク品目とBOMの紐付きを保持

BOMはBOMIDをキーとして管理されています。これはBOMは同じ品目に対して、複数のBOMをもつことができるためです(BOM用途や代替BOMなどで、複数のBOMを管理可能)。

■対処法

各テーブルをそれぞれ検索することでも対応できますが、テーブルを結合して検索した方がやりやすいです。

以下のトランザクションを起動後、診断>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' /*ここにクライアントを入れる*/

参考

コメント

タイトルとURLをコピーしました