Advertisement
Guest User

BOM - SAP 4 HANA

a guest
May 17th, 2025
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. SELECT
  2. 2 as Type, -- 1 = full structure, 2 = one level only
  3. tm.MTBEZ as MaterialGroupFinishedGoods,
  4. LTRIM(MAST.MATNR,'0') AS FinishedGoodCode,
  5. MAKT.MAKTX AS FinishedGoodName,
  6. LTRIM(STKO.STLNR,'0') AS BOMNumber,
  7. jm.MSEH3 AS FinishedGoodUnit,
  8. STKO.BMENG AS BaseQuantity,
  9. ROUND(CASE
  10. WHEN MARA.NTGEW > 0 THEN
  11. CASE MARA.GEWEI
  12. WHEN 'KG' THEN 1 / MARA.NTGEW
  13. WHEN 'G' THEN 1000 / MARA.NTGEW
  14. ELSE 1
  15. END
  16. ELSE COALESCE(MARM.UMREZ / MARM.UMREN, 1)
  17. END, 4) AS ConversionTo1Kg,
  18.  
  19. tm2.MTBEZ as MaterialGroupRawMaterial,
  20. LTRIM(STPO.IDNRK,'0') AS RawMaterialCode,
  21. MAKT2.MAKTX AS RawMaterialName,
  22. jm2.MSEH3 AS RawMaterialUnit,
  23. STPO.MENGE AS RawMaterialQuantity, -- should be decimal (18,4)
  24. STPO.AUSCH AS ScrapPercentage,
  25.  
  26. ROUND(CAST((1 + (STPO.AUSCH / 100)) * STPO.MENGE AS decimal(18,8)), 4) AS QuantityWithScrap,
  27.  
  28. ROUND(CAST(
  29. (1 + (STPO.AUSCH / 100)) * STPO.MENGE *
  30. (1000 / STKO.BMENG) * -- scaling base quantity to 1000
  31. ROUND(CASE
  32. WHEN MARA.NTGEW > 0 THEN
  33. CASE MARA.GEWEI
  34. WHEN 'KG' THEN 1 / MARA.NTGEW
  35. WHEN 'G' THEN 1000 / MARA.NTGEW
  36. ELSE 1
  37. END
  38. ELSE COALESCE(MARM.UMREZ / MARM.UMREN, 1)
  39. END, 4)
  40. AS decimal(18,8)), 4) AS QuantityWithScrapPer1000Kg
  41.  
  42. FROM SAPHANADB.MAST MAST
  43.  
  44. -- adjustment: not all materials have alternative BOM = 1
  45. INNER JOIN (
  46. SELECT MATNR, MIN(STLAL) AS STLAL
  47. FROM SAPHANADB.MAST
  48. WHERE MANDT = '100'
  49. GROUP BY MATNR
  50. ) MAST_ALT ON MAST.MATNR = MAST_ALT.MATNR AND MAST.STLAL = MAST_ALT.STLAL
  51.  
  52. INNER JOIN SAPHANADB.MARA MARA ON MARA.MATNR = MAST.MATNR
  53. AND MARA.MANDT = MAST.MANDT
  54.  
  55. INNER JOIN SAPHANADB.MAKT MAKT ON MAKT.MATNR = MAST.MATNR
  56. AND MAKT.MANDT = MAST.MANDT
  57. AND MAKT.SPRAS = '6' -- language key, 6 = English
  58.  
  59. INNER JOIN SAPHANADB.STKO STKO ON MAST.STLNR = STKO.STLNR
  60. AND STKO.MANDT = MAST.MANDT
  61. AND STKO.STLTY = 'M' -- material BOM type
  62. AND STKO.STLAL = MAST.STLAL
  63. AND STKO.STLST = '01' -- BOM status Active
  64.  
  65. INNER JOIN SAPHANADB.STPO STPO ON STPO.STLNR = STKO.STLNR
  66. AND STPO.MANDT = MAST.MANDT
  67. AND STPO.STLTY = 'M'
  68.  
  69. INNER JOIN SAPHANADB.STAS STAS ON STPO.STLNR = STAS.STLNR
  70. AND STAS.MANDT = MAST.MANDT
  71. AND STAS.STLKN = STPO.STLKN
  72. AND STAS.STLAL = MAST.STLAL
  73.  
  74. INNER JOIN SAPHANADB.MARA MARA2 ON MARA2.MATNR = STPO.IDNRK
  75. AND MARA2.MANDT = MAST.MANDT
  76.  
  77. INNER JOIN SAPHANADB.MAKT MAKT2 ON MAKT2.MATNR = STPO.IDNRK
  78. AND MAKT2.MANDT = MAST.MANDT
  79. AND MAKT2.SPRAS = '6'
  80.  
  81. INNER JOIN SAPHANADB.T006A jm ON jm.MSEHI = STKO.BMEIN -- unit of measure for FG
  82. AND jm.MANDT = MAST.MANDT
  83. AND jm.SPRAS = '6'
  84.  
  85. INNER JOIN SAPHANADB.T006A jm2 ON jm2.MSEHI = STPO.MEINS -- unit of measure for raw material
  86. AND jm2.MANDT = '100'
  87. AND jm2.SPRAS = '6'
  88.  
  89. INNER JOIN SAPHANADB.T418T T418T ON T418T.POSTP = STPO.POSTP
  90. AND T418T.MANDT = MAST.MANDT
  91. AND T418T.SPRAS = '6'
  92.  
  93. INNER JOIN SAPHANADB.T134T tm ON tm.MTART = MARA.MTART
  94. AND tm.MANDT = MAST.MANDT
  95. AND tm.SPRAS = '6'
  96.  
  97. INNER JOIN SAPHANADB.T134T tm2 ON tm2.MTART = MARA2.MTART
  98. AND tm2.MANDT = MAST.MANDT
  99. AND tm2.SPRAS = '6'
  100.  
  101. LEFT JOIN SAPHANADB.MARM MARM ON MARM.MATNR = MAST.MATNR -- conversion to 1 KG
  102. AND MARM.MANDT = MAST.MANDT
  103. AND MARM.MEINH = 'KG'
  104.  
  105. WHERE
  106. MAST.MANDT = '100'
  107. -- AND MAST.STLAL = '01' -- BOM alternative
  108. AND MAST.STLAN = '1' -- BOM usage (1 - production)
  109. -- AND LTRIM(MAST.MATNR, '0') in (2001078,6000000,6000001,7000000,7000001)
  110.  
  111. -- MKAL.MKSP - BOM locking flag!?
  112.  
  113. ORDER BY
  114. MAST.MATNR,
  115. MAST.STLNR,
  116. STKO.STLAL,
  117. STPO.POSNR
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement