Discontinued parts in BoM explosion reports
I am having difficulty with the BoM explosion reports (CS11-13, and CSP1-3), in that they seem to take no notice of discontinuation. In particular we have some assemblies which are discontinued, and replaced by alternative parts with a different sub-assembly BoM. It does not seem possible to explode through the new BoM - the reports appear to continue to use the obsolete assembly.
Am I doing something wrong? It would seem clear that the reports should explode the BoM through the new assemblies, particularly if there is no stock of the obsolete part.
Is there an alternative way to get a BoM explosion report which does take note of the discontinuation data?
Hi,
In my opinion discontinuation is considered only during MRP run (planning) and has nothing to do with BOM reports (CS03, CS11, CS12, CSMB, etc).
SAP online help:
If this indicator is set, the material is defined as 'to be discontinued'. The material is then discontinued in MRP. MRP transfers dependent requirements that are no longer covered by stock of this material to the follow-up material.
So, I think you won't see the follow-up material in BOM reports. Even if you maintain the discountinuation in BOM I think you cannot see the actual sitruation in BOM reports (you will see both follow-up and discontinued material).
I hope I'm mistaken and this is a solved issue in SAP.
Regards,
Csaba
Similar Messages
-
Hi All,
I have problem with BOM explosion report CS12.
We have material with 3 level BOM. While we are running CS12, upto 2nd level appears in the report. 3 rd level components dose'nt show. what may be the reason. I have checked validity period & BOM status is active for all levels.
REgards,
Srijit.HI
Check the explosion types in OS17 also check whether phantom asseblies indicator in OS17.
Check In BOM for whether you have defined some material as Phantom or not?
Check and revert
Regards
Anupam Sharma -
Alternative unit of measure in BOM explosion report
Dear gurus
I want to get the alternative unit of measure along with the base unit of measure during the BOM explosion report in CS11.I tried with the layout but I cant find the same.
How is this possible?
regards
kumar sHi Kumar,
You can develop a Z report. In the standard CS11, the functionality of displaying the alternate UOM is not feasible.
thanks and regards
Muruegsan -
BOM explosion report and lot size
Hi all
We have created a Z report for BOM explosion . Here it gives the user the option to explode the BOM at the desired level.
We have an enhancement ticket where the user wants an additional field of Minimum lot size and Maximum lot size in the report.
Before assigning a task to the ABAP team , I request if some one explains the feasibility and its impact on this report. Thanks in advance .
Kind Regards
AyazThanks Bramhankar for the reply .How does the functional module affect this report ?Thanks
Kind regards
Ayaz -
What will be the effect of discontinuation material in BOM on Reports?
If I discontinue material A and introduce follow up with material B,
then, how will material B behave in case of settlement .i.e. suppose
at the end of the day the system create a report about days consumption ,then does B will reflect directly in reports with consumption quantity or there are some changes need to do ?Hi Naimesh,
Thanks for your reply.
But here if I check the function group in which the RFC is defined im able to find the following Includes:
* System-defined Include-files. *
INCLUDE LZPRODORDRFCTOP. " Global Data
INCLUDE LZPRODORDRFCUXX. " Function Modules
* User-defined Include-files (if necessary). *
* INCLUDE LZPRODORDRFCF... " Subprograms
* INCLUDE LZPRODORDRFCO... " PBO-Modules
* INCLUDE LZPRODORDRFCI... " PAI-Modules
INCLUDE LZPRODORDRFCF01.
But in not able locate the include LZPRODORDRFCV07 which i have mentioned above.
I would also like to know what would happen if the %_RFC is removed.Would the addition of %_RFC affect the performance of the program in any manner.
Im not able to execute the program myself as it is linked with another server.
Regards,
Vineela. -
BOM explosion for Multiple materials
Dear All
In Cs11 where we can get bom explosion report for single material,but i need multiple material more than one material as desired.
Any Std T code is there.Dear Sukendar,
1.For this requirement you have to go for a Z report and you can give the Functional Spec's to prepare
this report to your ABAP consultant.Prepare the input format,logic of the program and the output format.
In the logic part you can make use of this Functional Modules's CSAP_MAT_BOM_READ or
CSEP_MAT_BOM_READ or CS_BOM_EXPLOSION or CS_BOM_EXPL_MAT_V2 .
2.Using CEWB helps you to identify all the material that's having the BOM,but here the report does not
shows you the level by level by BOM for a FERT.
Check and revert back.
Regards
Mangalraj.S -
Report for Cost of Multiple products with Multilevel BOM explosion
Hi,
Our client has a requirement of a report showing standard cost estimate of multiple FG products, with multi-level BOM explosion.
In short, the requirement is to get a CK13N report for multiple products.
Has anyone come across such requirement? The requirements seems to be very normal.
But, I have not seen any standard report for the same. If there is any, please suggest.
or suggest a better solution for the same.
Thanks in advance. Pts guaranteed.Hi,
I totally agree with you that this is a totally vague requirement.
However, let me share the reason for such client requirement.
We have a customer, for which we produce certain parts for select models. Now, the arrangement with customer for pricing is based on the raw material and other production cost for all such parts. Based on the fluctuations in cost, the pricing would be finalised.. on a monthly or quarterly basis.
For this purpose, the customer requires to know the raw materials used in each of the part.
Individually it could have been managed. But the price change in terms of % is decided at global level and not for each part.
Please suggest -
Hi all, I want to perform Bill of material explosion in webi report. Is it possible in 4.0 ? Thanks Arvind Shukla
Rogerio,
It is the Bill Of Material (BOM) - list of parts or components required to build a product. So the BOM explosion is to display all the that list of parts for each finished product. The data will be stored in a parent-child relationship in a tree structure.
Hope some body will share further details on how they achieved to get this data in BO reports.
-CK -
BOM Explosion for Multiple Process Orders
Hi,
I hope someone can assist me with the following: Is there a report I can run or transaction I can do to have BOM explosion for multiple Process Orders? I would like to input process orders for a week and see the BOM details per PO.
ThanksDear Sukendar,
1.For this requirement you have to go for a Z report and you can give the Functional Spec's to prepare
this report to your ABAP consultant.Prepare the input format,logic of the program and the output format.
In the logic part you can make use of this Functional Modules's CSAP_MAT_BOM_READ or
CSEP_MAT_BOM_READ or CS_BOM_EXPLOSION or CS_BOM_EXPL_MAT_V2 .
2.Using CEWB helps you to identify all the material that's having the BOM,but here the report does not
shows you the level by level by BOM for a FERT.
Check and revert back.
Regards
Mangalraj.S -
URGENT: REGARDING BOM EXPLORE REPORT
HI,
I making dis report and i want to display the BOM Explosion in which i have to display the output whihc conatins the details of it. I am sending my code in whihc it displays correct for 1 BOM but when comes to miultiple BOM it has following problem:-
1.) The materaial no does not change on the top of report .
2.) The DIVSION No. of the some of the materails are displayed and some of dem are not displaying.
plzz help me out with dis problem as help will be definately rewarded.
REPORT ZTET1.
TABLES: MBEW, "Material Valuation
MSLB, "Special stocks with vendor
MARA, "Material Master
MAKT, "Material Descriptions
MARD, "Material Master: Storage Location/Batch Segment
MAST, "BOM Header
STKO, "BOM Detail
STPO, "Bom Components
STAS. "BOM Alternative
Text Elements
Plant
SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
Material
S_MATNR FOR MAST-MATNR,
Material Type
S_MTART FOR MARA-MTART.
Base Quantity
PARAMETERS: S_BASE TYPE I DEFAULT '1'.
Display up to Level
PARAMETERS: S_LVL TYPE I DEFAULT '99'.
PARAMETERS: stlal type mast-stlal default '01'.
SELECTION-SCREEN SKIP.
Include Vendor Stock
PARAMETERS: X_MSLB AS CHECKBOX.
DATA: W_MATNR LIKE MAPL-MATNR.
DATA: PARENT_MATNR LIKE MAST-MATNR,
CHILD_MATNR LIKE STPO-IDNRK,
CHILD_WERKS LIKE MAST-WERKS,
CHILD_STLAL LIKE MAST-STLAL,
W_MAKTX LIKE MAKT-MAKTX,
W_STD TYPE P DECIMALS 5,
W_MAV TYPE P DECIMALS 5,
W_MENGE TYPE P DECIMALS 3,
W_LEVEL TYPE I,
W_DOT(1),
W_LVL(12),
W_LVL1(12),
W_LVL2(2),
W_COL TYPE I,
W_LFLAG,
W_TTL LIKE MARD-LABST.
DATA: SPART LIKE MARA-SPART.
DATA: BEGIN OF INT1 OCCURS 50,
LGORT(6),
LABST LIKE MARD-LABST,
END OF INT1.
IF S_BASE EQ 0.
S_BASE = 1.
ENDIF.
append multi level routing
SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
MATNR IN S_MATNR and stlal = stlal.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
write: 'aaaaa', sy-dbcnt.
SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
MTART IN S_MTART.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
IF MARA-LVORM <> 'X'.
PARENT_MATNR = MAST-MATNR.
CHILD_MATNR = MAST-MATNR.
CHILD_WERKS = MAST-WERKS.
CHILD_STLAL = MAST-STLAL.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
SPRAS = 'E'.
W_MAKTX = MAKT-MAKTX.
REFRESH INT1.
SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
WERKS = MAST-WERKS AND
LABST NE 0.
MOVE MARD-LGORT TO INT1-LGORT.
MOVE MARD-LABST TO INT1-LABST.
APPEND INT1.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
WERKS EQ MAST-WERKS AND
LBLAB NE 0.
MOVE MSLB-LIFNR TO INT1-LGORT.
MOVE MSLB-LBLAB TO INT1-LABST.
APPEND INT1.
ENDSELECT.
ENDIF.
W_LEVEL = 1.
NEW-PAGE.
PERFORM GETCHILD.
ENDIF.
ENDSELECT.
get child parts
FORM GETCHILD.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
AND STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = MAST-STLAL.
IF SY-SUBRC EQ 0.
CLEAR: W_DOT, W_LVL, W_LVL1.
PERFORM WRT_DTL.
CHILD_MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
ENDIF.
ENDSELECT.
ENDFORM.
get grand children parts
FORM SUBCHILD.
SELECT SINGLE * FROM MAST WHERE MATNR = CHILD_MATNR
AND WERKS = CHILD_WERKS.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = STKO-STLAL.
IF SY-SUBRC EQ 0.
W_DOT = '.'.
PERFORM WRT_DTL.
CHILD_MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
SHIFT W_LVL.
ENDIF.
ENDSELECT.
ENDFORM.
TOP-OF-PAGE.
WRITE:/ SY-DATUM,SY-UZEIT,
85 'ABC PTE LTD',
182 'Page', SY-PAGNO.
WRITE: / SY-REPID,
75 'BOM STRUCTURE (WITH LOCATION BALANCES)',
182 SY-UNAME.
SKIP.
CLEAR W_LFLAG.
WRITE:/ 'Material No.:', PARENT_MATNR,
60 'Plant :', MAST-WERKS.
W_COL = 90.
CLEAR W_TTL.
**LOOP AT INT1.
IF W_COL > 195.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
W_LFLAG = 'X'.
W_COL = 90.
ELSE.
W_COL = 90.
SKIP.
ENDIF.
ENDIF.
WRITE AT W_COL 'Loc :'.
W_COL = W_COL + 6.
WRITE AT W_COL INT1-LGORT.
W_COL = W_COL + 7.
WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
W_COL = W_COL + 16.
W_TTL = W_TTL + INT1-LABST.
**ENDLOOP.
**IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
90 'Total :', W_TTL LEFT-JUSTIFIED.
**ELSE.
WRITE AT W_COL 'Total :'.
W_COL = W_COL + 8.
WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
**ENDIF.
SKIP.
ULINE.
WRITE: /001 'Level',
011 'Item',
017 'Component',
037 'Description',
079 ' Per',
089 'UOM',
094 ' Std Price',
106 'Moving Avg',
119 'Location',
128 ' Balance',
139 'Location',
148 ' Balance',
159 'Location',
168 ' Balance',
179 'Total Quantity'.
ULINE.
FORM WRT_DTL.
CLEAR: MAKT-MAKTX, W_MAV, W_STD.
SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
SPRAS = 'E'.
SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
BWKEY = MAST-WERKS.
IF SY-SUBRC = 0.
W_MAV = MBEW-VERPR / MBEW-PEINH.
W_STD = MBEW-STPRS / MBEW-PEINH.
ENDIF.
W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
W_LVL2 = W_LEVEL.
CONCATENATE W_DOT W_LVL INTO W_LVL.
CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = STPO-IDNRK.
WRITE: /001 ' ',
011 STPO-POSNR,
017 STPO-IDNRK,
037 MAKT-MAKTX,
079 SPART.
079(8) W_MENGE,
089 STPO-MEINS,
094(10) W_STD,
106(10) W_MAV.
W_COL = 119.
CLEAR W_TTL.
SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LABST NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL MARD-LGORT.
W_COL = W_COL + 5.
WRITE AT W_COL(13) MARD-LABST.
W_COL = W_COL + 15.
W_TTL = W_TTL + MARD-LABST.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LBLAB NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL(6) MSLB-LIFNR.
W_COL = W_COL + 6.
WRITE AT W_COL(12) MSLB-LBLAB.
W_COL = W_COL + 14.
W_TTL = W_TTL + MSLB-LBLAB.
ENDSELECT.
ENDIF.
WRITE AT 179(15) W_TTL.
ENDFORM.Hi Ric
hope this will help you.
pls reward if help.
REPORT ZMULTIBOM NO STANDARD PAGE HEADING LINE-SIZE 195
LINE-COUNT 60(2) MESSAGE-ID Z1.
TABLES: MBEW, "Material Valuation
MSLB, "Special stocks with vendor
MARA, "Material Master
MAKT, "Material Descriptions
MARD, "Material Master: Storage Location/Batch Segment
MAST, "BOM Header
STKO, "BOM Detail
STPO, "Bom Components
STAS. "BOM Alternative
Text Elements
Plant
SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
Material
S_MATNR FOR MAST-MATNR,
Material Type
S_MTART FOR MARA-MTART.
Base Quantity
PARAMETERS: S_BASE TYPE I DEFAULT '1'.
Display up to Level
PARAMETERS: S_LVL TYPE I DEFAULT '99'.
SELECTION-SCREEN SKIP.
Include Vendor Stock
PARAMETERS: X_MSLB AS CHECKBOX.
DATA: W_MATNR LIKE MAPL-MATNR.
DATA: PARENT-MATNR LIKE MAST-MATNR,
CHILD-MATNR LIKE STPO-IDNRK,
CHILD-WERKS LIKE MAST-WERKS,
CHILD-STLAL LIKE MAST-STLAL,
W_MAKTX LIKE MAKT-MAKTX,
W_STD TYPE P DECIMALS 5,
W_MAV TYPE P DECIMALS 5,
W_MENGE TYPE P DECIMALS 3,
W_LEVEL TYPE I,
W_DOT(1),
W_LVL(12),
W_LVL1(12),
W_LVL2(2),
W_COL TYPE I,
W_LFLAG,
W_TTL LIKE MARD-LABST.
DATA: BEGIN OF INT1 OCCURS 50,
LGORT(6),
LABST LIKE MARD-LABST,
END OF INT1.
IF S_BASE EQ 0.
S_BASE = 1.
ENDIF.
append multi level routing
SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
MATNR IN S_MATNR.
SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
MTART IN S_MTART.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
IF MARA-LVORM <> 'X'.
PARENT-MATNR = MAST-MATNR.
CHILD-MATNR = MAST-MATNR.
CHILD-WERKS = MAST-WERKS.
CHILD-STLAL = MAST-STLAL.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
SPRAS = 'E'.
W_MAKTX = MAKT-MAKTX.
REFRESH INT1.
SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
WERKS = MAST-WERKS AND
LABST NE 0.
MOVE MARD-LGORT TO INT1-LGORT.
MOVE MARD-LABST TO INT1-LABST.
APPEND INT1.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
WERKS EQ MAST-WERKS AND
LBLAB NE 0.
MOVE MSLB-LIFNR TO INT1-LGORT.
MOVE MSLB-LBLAB TO INT1-LABST.
APPEND INT1.
ENDSELECT.
ENDIF.
W_LEVEL = 1.
NEW-PAGE.
PERFORM GETCHILD.
ENDIF.
ENDSELECT.
get child parts
FORM GETCHILD.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
AND STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = MAST-STLAL.
IF SY-SUBRC EQ 0.
CLEAR: W_DOT, W_LVL, W_LVL1.
PERFORM WRT_DTL.
CHILD-MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
ENDIF.
ENDSELECT.
ENDFORM.
get grand children parts
FORM SUBCHILD.
SELECT SINGLE * FROM MAST WHERE MATNR = CHILD-MATNR
AND WERKS = CHILD-WERKS.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = STKO-STLAL.
IF SY-SUBRC EQ 0.
W_DOT = '.'.
PERFORM WRT_DTL.
CHILD-MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
SHIFT W_LVL.
ENDIF.
ENDSELECT.
ENDFORM.
TOP-OF-PAGE.
WRITE:/ SY-DATUM,SY-UZEIT,
85 'ABC PTE LTD',
182 'Page', SY-PAGNO.
WRITE: / SY-REPID,
75 'BOM STRUCTURE (WITH LOCATION BALANCES)',
182 SY-UNAME.
SKIP.
CLEAR W_LFLAG.
WRITE:/ 'Material No.:', PARENT-MATNR,
60 'Plant :', MAST-WERKS.
W_COL = 90.
CLEAR W_TTL.
LOOP AT INT1.
IF W_COL > 195.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
W_LFLAG = 'X'.
W_COL = 90.
ELSE.
W_COL = 90.
SKIP.
ENDIF.
ENDIF.
WRITE AT W_COL 'Loc :'.
W_COL = W_COL + 6.
WRITE AT W_COL INT1-LGORT.
W_COL = W_COL + 7.
WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
W_COL = W_COL + 16.
W_TTL = W_TTL + INT1-LABST.
ENDLOOP.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
90 'Total :', W_TTL LEFT-JUSTIFIED.
ELSE.
WRITE AT W_COL 'Total :'.
W_COL = W_COL + 8.
WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
ENDIF.
SKIP.
ULINE.
WRITE: /001 'Level',
011 'Item',
017 'Component',
037 'Description',
079 ' Per',
089 'UOM',
094 ' Std Price',
106 'Moving Avg',
119 'Location',
128 ' Balance',
139 'Location',
148 ' Balance',
159 'Location',
168 ' Balance',
179 'Total Quantity'.
ULINE.
FORM WRT_DTL.
CLEAR: MAKT-MAKTX, W_MAV, W_STD.
SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
SPRAS = 'E'.
SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
BWKEY = MAST-WERKS.
IF SY-SUBRC = 0.
W_MAV = MBEW-VERPR / MBEW-PEINH.
W_STD = MBEW-STPRS / MBEW-PEINH.
ENDIF.
W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
W_LVL2 = W_LEVEL.
CONCATENATE W_DOT W_LVL INTO W_LVL.
CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
WRITE: /001 W_LVL1,
011 STPO-POSNR,
017 STPO-IDNRK,
037 MAKT-MAKTX,
079(8) W_MENGE,
089 STPO-MEINS,
094(10) W_STD,
106(10) W_MAV.
W_COL = 119.
CLEAR W_TTL.
SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LABST NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL MARD-LGORT.
W_COL = W_COL + 5.
WRITE AT W_COL(13) MARD-LABST.
W_COL = W_COL + 15.
W_TTL = W_TTL + MARD-LABST.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LBLAB NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL(6) MSLB-LIFNR.
W_COL = W_COL + 6.
WRITE AT W_COL(12) MSLB-LBLAB.
W_COL = W_COL + 14.
W_TTL = W_TTL + MSLB-LBLAB.
ENDSELECT.
ENDIF.
WRITE AT 179(15) W_TTL.
ENDFORM. -
BOM Explosion control based on Procurement type
Gurus ,
We have a scenario where we have a Multilevel BOM . During one point of time there is a chnce that one SFG ehich is "E" type gets converted manual into an "F" type due to some practical reasons (I know F part shud not have a BOM). Users do not delete or inactivate the BOM of this SFG(which has now become F part) . As a consequence it impacts a report for CUSTOMS wherein a multilevel BOM is exploded for HEADER and reports all the F parts. The result expected is list of all F parts
EXAMPLE we have FG1 , with Components RM1 and SFG1 .(This SFG1 was [previosly having componets RM1,RM2 and RM3) .
Scenario 1- if SFG1 was with procurement E , then result iof report after exploding FG1 would be RM1,RM2 and RM3.
Scenario 2: If SFG1 got converted to F part , then result of report after exploding FG1 should be RM1,SFG1
Is there a way to control BOM multilevel explosion for only E parts so that BOMs for F parts donot get exploded)
Ie, BOM application etc...
THNX
HKRGURU VIVEK
THANKYOU for the solution, It worked for ME without any issues.
If you dont mind one small question..when I execute this function module in SE37 I get list of Importa parameters (fields),but do not get its descriptions. HOW TO GET THE DESCRIPTIONS in that sreen.
THANKYOU LOTSSSS
Regards,HKR -
Hello SAP Gurus,
What is the use of BOM explosion number? after creation how & where to assigne it?
with regards,
dev123.Hi,
If you want to ensure that for a certain production unit, the BOM structure is always exploded with the same date, you can assign a BOM explosion number to the planned order (or for make-to-order production it can be directly assigned to the sales order).
If you do not use the assignment of a BOM explosion number, the planned start date of the planned order is always used as the explosion date for the BOM. The system explodes the particular BOM that is valid on this date.
For multi-level BOM structures, larger time intervals may exist between the explosion dates of the individual assemblies. If BOMs (or alternative BOMs) have been changed in the meantime (for example, exchanging individual components due to new technical drawings, changed production techniques, due to parts to be discontinued etc.) a situation may exist whereby an assembly that is used repeatedly is produced with different BOM structures.
Create BOM Explosion Number:-
1. Starting from the MRP menu, choose Master data --> BOM explosion number -->Edit (MDSP)
The system displays the initial screen for maintaining the BOM explosion number.
2. Choose .
The screen for maintaining the BOM explosion numbers now appears.
3. Choose New entries.
A screen now appears where you can enter new BOM explosion numbers.
4. Enter data as required.
BOM explosion number
The BOM explosion number is the object for which the following data is maintained. It can be entered alphanumerically.
Fixed key date
The fixed key date determines which bill of material is exploded.
Plant
You can also specify a BOM explosion number for a specific plant. Enter the appropriate plant in this case.
Material
You can specify a BOM explosion number for a specific material. Enter the appropriate material in this case.
Status
You can set the BOM explosion number to active or inactive using the status field. Only active BOM explosion numbers are used in the planning run.
Save your entries. -
How to find out if a Material is part of BOM ?
HI Guru's,
I have material XXXXXXX and I am trying to find out if this material is part of BOM ? How can do that? and how can I find out in which hierarchy it's set?
Please can someone help me.
Best Regards,
YasmeenHello,
You can use transaction CS15, and your material as input=> System displays all BOMs to which your material belong
If you have a bom, then use CS12 to explose material and look for your material -
MRP RUN- KIT BOM explosion not working
We setup one layer BOM’s for our maintenance KITs as parent material and components as child material. For example KIT is TS10000-K1 and components are TS10001, TS10002 etc setup as next layer with in the BOM. Both KITS and components are defined as material types ERSA (Spare parts). These one layers BOMs are setup as production BOMs and expected to create purchase requisitions for KITS and components by exploding BOMs during MRP runs. We use purchase requisitions and convert them into POs to procure both KITS and components. We DO NOT USE Panned orders and Production orders.
The safety stocks / reorder point are considered as demand for KITS and components as we do not have any external demand for KITS and components.
MRP run is creating purchase requisitions automatically for both KITS and components as per safety stocks and reorder point defined in MRP Views of Material Master. This is working as expected.
The issue is: KIT BOM’s are not exploding to generate purchase requisitions for the dependent components of KIT BOM. Please suggest the way to resolve this issue.
Split valuation: Also we plan to use split valued KITS with both new and refurbished. So we need BOM explosion for split valued KITS
also (after the 1st issue is resolved).
I verified the following items to make sure the required configuration and data setup is defined correctly.
1) Planning file activated Plant - OMDU
2) Executed MRP run with Total Planning - MDBT and MD02 (single item, multiple levels)
3) BOM explosion for MRP activated- OS23
4) MRP type in MRP1 view- PD and VB (I tried both separately but BOM is not exploding).
5) Procurement type “F” (MRP 2 view) and lot size “EX”
6) Planning strategy in MRP 3 view (tested w/o planning strategy and with strategies 10 and 40. But BOM is not exploded)
7) BOM status and usage (status is active and usage is for production-CS02 and OS20)
8) BOM Validity date (Valid)
9) BOM structure in CS12 (BOM is exploding in CS11)
10) Availability check
11) Selection of BON ID to have BOM usage indicator assign (OS31).
12) No alternate BOMs or production versions or work scheduling view are used.
Please review the above 2 issues and suggest any workable solution. Thanks in advance!
NOTE: I extensively used MRP with multi-level BOM explosion in my earlier projects without any issue. However the above issue is a bit strange why one layer BOM is not exploded in this case.
Regards
SriniHi
Thanks for your response. I reviewed all SAP notes and none of them are applicable to my scenario.
1808396 - BOM changes not considered by MRP: I have not changed BOMs.
1781324 - MD11: Valid BOM alternative is not found. We do not have alternative BOMs.
1791009 - No BOM explosion after changing production version: We am not using production versions.
Our Material KITS are PM spare assemblies set up as BOMs and consists of individual spare parts as components. We are creating purchase requisitions and not planned orders. We are not using PP functionality/Production orders.
MRP is generating purchase requisitions for KITS and components as per ROP and safety stocks. In other words it is working as expected. The issue is BOMs which are parent assemblies are not exploding to the next lower level components.
Please note that I am not getting any error messages when MRP is executed.
Regards
Srini. -
Routing details with bom explosion
hi friends
i have developend the report for pp,in routing details
how to get the details of bom explosion with workcenter and routing operations
If procurement type is E or X, system has to check the routing through CA03.
If procurement type if F, leave this field as blank and then fetch the relevant vendor
CS_BOM_EXPL_MAT_V2 - using this fm to get the bom explosion
after that how to relate between workcenter and routing details.
input is material number
plant
1.operator
2.material - i got through fm
3.material description i got through fm
4.workcenter
5.vendor
6.operation description
7.uom -i got through fm
8.qty - i got through fm
9.uom
10.setuptime
11.processingtime
12.deliverytime
code for review.
TABLES : MAST
DATA: BEGIN OF ISTPO OCCURS 1000.
INCLUDE STRUCTURE STPOX.
DATA: END OF ISTPO.
DATA: BEGIN OF MATCAT OCCURS 1000.
INCLUDE STRUCTURE CSCMAT.
DATA: END OF MATCAT.
DATA: W_TOPMAT LIKE CSTMAT.
SELECT-OPTIONS : P_MATNR FOR MAST-MATNR.
PARAMETERS : P_WERKS TYPE MAST-WERKS.
DATA : BEGIN OF ITAB OCCURS 0,
MATNR LIKE MAST-MATNR,
WERKS LIKE MAST-WERKS,
END OF ITAB.
DATA: IT_STB LIKE ISTPO OCCURS 0 WITH HEADER LINE.
data : istpotemp like stpox occurs 0 with header line.
data : istpofinal like stpox occurs 0 with header line.
START-OF-SELECTION.
CLEAR ISTPO. REFRESH ISTPO.
SELECT MATNR WERKS FROM MAST INTO TABLE ITAB
WHERE MATNR IN P_MATNR AND WERKS = P_WERKS.
LOOP AT ITAB.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
MEHRS = 'X'
MMAPS = ' '
MDMPS = ' '
BREMS = 'X'
DISMM = ' '
LIFNR = ' '
WEBAZ = ' '
DATUV = SY-DATUM
MTNRV = ITAB-MATNR
WERKS = P_WERKS
EMENG = '1'
STKKZ = ' '
FBSTP = ' '
FTREL = ' '
IMPORTING
TOPMAT = W_TOPMAT
TABLES
STB = ISTPO
MATCAT = MATCAT
EXCEPTIONS
ALT_NOT_FOUND = 1
CALL_INVALID = 2
MATERIAL_NOT_FOUND = 3
MISSING_AUTHORIZATION = 4
NO_BOM_FOUND = 5
NO_PLANT_DATA = 6
NO_SUITABLE_BOM_FOUND = 7
OTHERS = 8.
WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
sort istpo by index descending.
loop at istpo.
WRITE :/ ISTPO-POSNR,
ISTPO-IDNRK,
ISTPO-OJTXP,
ISTPO-MENGE,
ISTPO-MEINS,
endloop.
refresh istpo.
endloop.HI,
i got the workcenter also,but i need to classify
if the material procurment type is E OR X CHECK FOR routing details
or else if its F THEN pick the vendor and uom -PLPO-VGE01,PLPO-PLIFZ.
how shall i implement this
Regards
ds
Maybe you are looking for
-
Scheduling with JOB_CLOSE - Can I have multiple Predecessor Jobs?
I have a situation where I need to submit a job stream with several individual jobs. Some of the early jobs can run in parallel, and I don't know which will finish first. I don't want the final job to start until all previous jobs have finished. Th
-
Issue to add t-codes & functions in ERM role request GRC 10.0 - SP 5
Hi We are on SAP GRC 10.0 - SP5. We are facing a strange issue while creating a Role request. After Defining the role, we are unable to add actions and there is no option of add/delete. Similarly while adding Functions, we are getting an error of Fun
-
User exit PCPO0001-EXIT_RPCIPE00_002 not working
We have activated User exit PCPO0001- EXIT_RPCIPE00_002, requirement was to set the line item text SGTXT of the subsequent Accounting document, but there seem to be no activity happening for it (assigned breakpoints in the exit codes but transaction
-
This happens no matter which of my browsers I am using.
-
I bought an album from iTunes, not realising that I had insufficient funds in my bank account. Is there a deadline that the outstanding balance needs to be paid by? Will I be charged anymore for the late payment?