BOM explosion/stock level check
Hello All,
Is there a way I can check for stock levels of all finished good's components? For example, if I need to place a production order for a finished good, how can I see <i>all</i> material numbers that finished good is comprised of, along with all their stock levels?
Thank you for your help in advance.
Sasa
Hi,
Kindly check the Transaction <b>MB52</b>.
In the selection screen, give the <b>plant</b> or <b>storage location</b> & the <b>material type</b> of the Finished goods.
In the selection screen, in "Display Options" select <b>Non-Hierarchial Display</b>.
Then execute or F8.
You get a output list of the materials along with the stock-level.
Then, goto change layout & select the required details for output & save the layout.
Hope this helps!
Best regards,
Thangesh
Similar Messages
-
Bom Explosion first level, if first level having phanthom it has to explode
Dear All,
Kindly tell any function module is available for BOM explosion first level.
if first level having any sub assembly part, bom not to explode below level.
if first level having any phanthom material, it has to explode below level, in this phanthom material having any below phanthom material part of bom, it also explode below level.
it means only phanthom material has explode below level, no sub assembly part.
If any functional module is available for this bom explosion.
i tried functional module - CS_BOM_EXPL_MAT_V2, but if i put "X" in field - MEHRS, sub assembly part also exploding below level.
kindly help on this.
Regards,
sakthiHi,
i tried functional module - CS_BOM_EXPL_MAT_V2, but if i put "X" in field - MEHRS, sub assembly part also exploding below level.
Ans: Do not set this MEHRS indicator. This will explode the BOM to first level.
Then add another loop on first level materials to check if any of them is phantom and explode the phantoms using same FM module in a loop. Follow this until all are done.
Regards,
Santosh Sarda -
Hi All
please can you advise ifa BOM explosion in a Sales Quotation is this standard SAP?
Kind Regards
KCPlease check the configuration in Menupath:
SPRO> Production planning > Material Requirements Planning > Carry Out Overall Maintenance of Plant Parameters
or T.code: OPPQ
If you have not maintained the plant parameters, please copy the same from any SAP std plant.
If you have already maintained, lcik on MAINTAIN button.
Then go to BOM Explosion button and Check the Sord/WBS option
Hope it works,
Regards,
Anbu -
Hi,
For multilevel BOM explode I have to use the "Functional Module" CS_BOM_EXPL_MAT_V2. I checked it in system but I didnt understand which input parameters I need to give (Which are mandatory) as ther are lot of input fields available.
Please suggest whether this Functional Module is fine OR there is any other way? also suggest about the input field data.Dear
Function module CS_BOM_EXPL_MAT_V2 is used for BOM explosion for a given material. It belongs to function group CSS4 u2013 BOM explosions. This function module can explose multi-level BOM with a given validation date.
You need to specify necessary input parameters to call this function module, such as CAPID u2013 App ID, DATUV u2013 Validation date, MEHRS u2013 Multi-level, MTNRV u2013 Material number, STLAL u2013 alternate, STLAN u2013 BOM usage.
Some useful tables you can provide to your ABAPer and discuss the same .
TABLES: MARA, "Master Data
MAKT, "Matl Desc.
MARC, "Plant Data for Matl.
MAST, "Bom to material link
STKO, "Bom Header
STPO. "Bom Item
Refer : Multi-level BOM explosion using CS_BOM_EXPL_MAT_V2
Regards
JH
Edited by: Jiaul Haque on Jan 3, 2011 10:24 PM -
BOM explosion in subcontracting order according to revision level
Hello experts
I have different revision levels available for a subcontracted material, e.g. the BOM of this material has different versions depending on the validity date.
When a BOM explosion is carried out in the subcontracting order (either in the purchase request or in the purchase order) the selected version of the BOM is done accordingly to the delivery date. It does NOT take into account the revision level even when I change it manually.
Do you have any idea if it is possible to force SAP to consider the revision level instead of the delivery date for the BOM explosion ? (custo, user exit, BAdI, ...)
Many thanks
AmauryHi
BOM explosion in Subcon PO will be carried out automatically when you select the item category L.
If you want to control the BOM selection based on the Alternative then you can go with Production version option and get the help from PP consultant to create the production version.
Assign the production version in Subcontracting Inforecord.
Click the BOM explosion button the switch to alternative BOM during the PO creation.
Hope it helps
Thanks/Karthik -
BOM Explosion needed on PO and/or Delivery for Stock Transfer PO Process
Good afternoon,
I have been researching the SDN and web for a solution to my problem to no avail so far.
The business problem I need to solve is the requirement for our STPO process to explode certain BOM's that are transfered from one company/plant to another company/plant in order to record batch/serial # component information by the delivering plant on the delivery and verification of the batch/serial # in the receiving plant during MIGO processing of the delivery. This is needed by our Service Mgmt department in order to track servicable items within the Finished Good (medical devices industry).
It appears on the SDN that a BOM can not be exploded on a non-Subcontracting PO (which would be ideal for us), but barring this problem, we are trying to have the BOM explode in the Delivery created from the STPO via the VL10B transaction.
The STPO generates a Delivery doc with type NLCC and item category NLC. I have maintained the material master for the BOM material to have an Item Category Group of ERLA, and I have modified Item Category Determination in configuration in Logistics Execution for deliveries to include ERLA, usage V, and NLC as default item category. But, the deliveries generated from the STPO still do not explode, like what normally happens if the delilvery of the BOM was created from a standard Order.
The components for the BOM need to be displayed on the Delivery (if not the STPO), so the cleark can record the Batch/Serial #'s for each component. Then when the receiving plant posts the Goods Receipt for the delivery a user exit we have (based on movement type and material document code) builds a Service Mgmt table that is then processed to De-install the BOM and components from the former plant and install the BOM and components at the receiving plant (and then subsequently at the ultimate customer's location when a normal sale is made), generating a new Functional Location.
Has anyone here had to do anything like this before? Would any of you have any ideas on how this BOM explosion might work on the PO or Delivery?
Thanks in advance.
Scott.No responses to this question.
Subject dropped. -
BOM Explosion needed on Delivery for Intercompany Stock Transfer Order
Good afternoon,
I have been researching the SDN and web for a solution to my problem to no avail so far.
The business problem I need to solve is the requirement for our STPO process to explode certain BOM's that are transfered from one company/plant to another company/plant in order to record batch/serial # component information by the delivering plant on the delivery and verification of the batch/serial # in the receiving plant during MIGO processing of the delivery. This is needed by our Service Mgmt department in order to track servicable items within the Finished Good (medical devices industry).
It appears on the SDN that a BOM can not be exploded on a non-Subcontracting PO (which would be ideal for us), but barring this problem, we are trying to have the BOM explode in the Delivery created from the STPO via the VL10B transaction.
The STPO generates a Delivery doc with type NLCC and item category NLC. I have maintained the material master for the BOM material to have an Item Category Group of ERLA, and I have modified Item Category Determination in configuration in Logistics Execution for deliveries to include ERLA, usage V, and NLC as default item category. But, the deliveries generated from the STPO still do not explode, like what normally happens if the delilvery of the BOM was created from a standard Order.
The components for the BOM need to be displayed on the Delivery (if not the STPO), so the cleark can record the Batch/Serial #'s for each component. Then when the receiving plant posts the Goods Receipt for the delivery a user exit we have (based on movement type and material document code) builds a Service Mgmt table that is then processed to De-install the BOM and components from the former plant and install the BOM and components at the receiving plant (and then subsequently at the ultimate customer's location when a normal sale is made), generating a new Functional Location.
Has anyone here had to do anything like this before? Would any of you have any ideas on how this BOM explosion might work on the PO or Delivery?
Thanks in advance.
Scott.No responses to this question.
Subject dropped. -
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. -
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 -
Dear Gurus,
Good Morning !!
My user' requirement is,
he wants a BOM wise stock report.
He will just enter the Header Item, Plant and the storage location,
and system should list all its sub-items with the stock available in that plant & the storage location.
PLease tell me if this is possible.
Thanks & Regardsyou may have to get a custom development done for this:
If I understand coreectly, there are two major steps in this:
1) Get the detailed BOM
To do this, you may use teh data from transatcion CS03(display material BOM), or from CS13 (Display summarized BOM) based on teh requirement. You may have to read table like MAST/STKO/STPO. For summarized BOM, you may use the function module CS_BOM_EXPL_MAT_V2
2) Get the available quantity
If your requiremnt is simple with the avialable qty, you may get the read the unrestrcited qty availble in tables MARC and MARD for quantities of a materila/ sub-items at the plant and storage locations level respoectively. If the requiremnts is to get more poslished available stock, you may use the std availability check concept (where we specify whether other stocks like quality check, in transit, etc need to be considered, or not). In this case function module AVAILABILITY_CHECK may be used and teh paranmter may be material, plant, Checking rule, etc.
Hope it helps. -
Bom explosion in sales order mrp(MD50)
Hi Experts,
In sales order MRP i.e. MD50 Getting the planned orders for header material(Finished goods) generated but for raw materials (BOM items) Purchase requisitions are not getting generated.
Details:
Header material A and raw materials B and C.
In material B in MRP 4 coll/ind indicator is 2 And same indicator for C is blank.
Now when we are running the MRP sales order based it will generate the purchase requisition for C only but not for B.
In OPPQ we have done the setting for sales order BOM explosion.
Can anyone please throw some light what is the setting missing in customization or in front end?
Thanks in advance.
Regards
VilasDear,
If you select individual requirement then system will not consider available stock and generate Proposals for every single requirments. Check in MRP4 view Individual / Collective .
Also you will find PR and Plan order with account assignment of Sales order (in case of MD50).
- If you select collective requirement then system will not generate planing proposals through MD50.In that case you have to go for individual MRP (MD02 / MD03)
Please try and come back.
Regards,
R.Brahmankar -
How about this implementation of BOM Explosion(simulate stack)
REPORT YZWX00301_06 LINE-SIZE 142
LINE-COUNT 65
MESSAGE-ID YM1
NO STANDARD PAGE HEADING .
INCLUDE
INCLUDE: YXXI00050.
*TABLES use table define
TABLES: MARA, " Material General Table
MARC, " Plant Data for Material
MDMA, " MRP Area table
EORD, " Vendor table
A018, " Vendor material mapping table
KONP, " Vendor condition table
MAST, " Material BOM table
STPO, " Material BOM Component table
STAS. " Material BOM Component table detail
*CONSTANTS define
CONSTANTS:
C_DAT_X TYPE C VALUE 'X',
C_MODE LIKE dxfields-fileoper VALUE 'R',
C_MASK LIKE dxfields-filemask VALUE '.',
C_FLG_LOCATION TYPE C VALUE 'A',
C_DFPATH(15) TYPE C VALUE '\bmwx\'.
Work Area Define
---- build stack structure -
DATA: BEGIN OF WK_STACK,
LEVEL(1) TYPE C, "Save Level
QUANT TYPE I, "Save Quantity
END OF WK_STACK.
---- BOM work area -
DATA: BEGIN OF WK_BOM,
LEVEL(1) TYPE C, "BOM LEVEL
MATNR LIKE MARC-MATNR, "MATERIAL 18
POSTP LIKE STPO-POSTP, "ITEM CATEGORY 1
MENGE LIKE STPO-MENGE, "BOM COMPONENT 13
DATUV LIKE STPO-DATUV, "VALID FROM 10
DATUB LIKE STPO-DATUV, "VALID TO 10
END OF WK_BOM.
---- DATA work area -
DATA: BEGIN OF DATAITEM,
LEVEL(1) TYPE C, "BOM LEVEL
MATNR LIKE MARC-MATNR, "MATERIAL
POSTP LIKE STPO-POSTP, "ITEM CATEGORY
MENGE LIKE STPO-MENGE, "BOM COMPONENT
DATUV LIKE STPO-DATUV, "VALID FROM!!!
DATUB LIKE STPO-DATUV, "VALID TO
EKGRP LIKE MARC-EKGRP, "PURCHASE ORG
LIFNR LIKE EORD-LIFNR, "Vendor code 10
MARK(1) TYPE C, "Mark
KBETR LIKE KONP-KBETR, "Rate price 11
KONWA LIKE KONP-KONWA, "Currency 5
KPEIN LIKE KONP-KPEIN, "Unit Qty 5
KMEIN LIKE KONP-KMEIN, "Condition Unit 3
DATAB LIKE A018-DATAB, "Condition from 10
DATBI LIKE A018-DATBI, "Condition to 10
END OF DATAITEM.
---- File Line work area -
DATA: BEGIN OF LINE,
WERKS(4) TYPE C, "Plaint 4
MATNR(18) TYPE C, "Material Number 18
EKGRP(3) TYPE C, "Purchase Group 3
LIFNR(10) TYPE C, "Vendor code 10
VDATU LIKE EORD-VDATU, "Vendor valid from 10
BDATU LIKE EORD-BDATU, "Vendor valid to 10
MARK(1) TYPE C, "Mark
KSCHL(4) TYPE C, "Condition type 4
KBETR(18) TYPE C, "Rate price 11
KPEIN(5) TYPE C, "Rate unit 5
KONWA(5) TYPE C, "Currency 5
KMEIN(3) TYPE C, "Condition Unit 3
DATAB LIKE A018-DATAB, "Condition from 10
DATBI LIKE A018-DATBI, "Condition to 10
END OF LINE.
*Local Data Object Define
DATA: WK_CNT TYPE I, "Count variable
WK_LVL TYPE I, "BOM level
WK_QTY TYPE I. "BOM component qty
DATA: WK_LIFNR LIKE EORD-LIFNR,
WK_MATNR LIKE MARC-MATNR.
*Internal Table define
DATA TAB_STACK LIKE STANDARD TABLE OF WK_STACK. "STACK TABLE
DATA TAB_BOM LIKE STANDARD TABLE OF WK_BOM. "FOR BOM
DATA TAB_DATA LIKE STANDARD TABLE OF DATAITEM. "FOR ALL
Parameter in Block1
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME. "TITLE TEXT-001.
PARAMETERS:
P_WERKS LIKE MARC-WERKS DEFAULT 'WX01', "Plant
P_STLTY LIKE STPO-STLTY DEFAULT 'M', "BOM Category
P_MATNR LIKE MARC-MATNR OBLIGATORY, "Material
P_STDAT LIKE EORD-VDATU OBLIGATORY DEFAULT SY-DATUM. "Standard Date
SELECTION-SCREEN END OF BLOCK B1.
Parameter in Block2
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: P_SCREEN RADIOBUTTON GROUP R1. "Screen output
SELECTION-SCREEN COMMENT 03(21) TEXT-001.
SELECTION-SCREEN POSITION 32.
PARAMETERS: P_FILE RADIOBUTTON GROUP R1. "NTFILE output
SELECTION-SCREEN COMMENT 34(17) TEXT-002.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
Parameter in Block3
SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME.
PARAMETERS:
P_NTFILE(45) TYPE C LOWER CASE OBLIGATORY.
P_PCFILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK B3.
INITIALIZATION
INITIALIZATION .
CLEAR : WK_CNT,
WK_LVL,
WK_QTY,
WK_MATNR,
WK_STACK,
WK_BOM,
DATAITEM.
WK_LVL = 0.
WK_QTY = 1.
REFRESH: TAB_STACK,
TAB_DATA,
TAB_BOM.
*& AT SELECTION-SCREE ON VALUE-REQUEST
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_NTFILE.
PERFORM F_SHOW_FILE_POPUP CHANGING P_NTFILE. "Popup display
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PCFILE.
PERFORM F_FILENAME_GET USING P_PCFILE
CHANGING P_PCFILE.
*& Form F_FILENAME_GET
--> ST_DAT_PATH : Preset path
<-- ST_DAT_FILENAME : Selected file name
FORM F_FILENAME_GET USING st_dat_path
CHANGING st_dat_filename.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = SPACE
def_path = st_dat_path
mask = ',.,.,'
mode = '0'
title = 'TXT-file select'
IMPORTING
filename = st_dat_filename
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE s002(yf1) WITH 'F_FILENAME_GET' sy-subrc.
ENDIF.
ENDFORM. "F_FILENAME_GET
MAIN PROCESS
START-OF-SELECTION.
---- Check material -
PERFORM CHECK_PROD.
---- get vendor data -
PERFORM GET_VENDOR_DATA.
---- output screen/file -
IF P_SCREEN = 'X'.
PERFORM SET_OUTPUT. "Output to screen directly
ELSEIF P_FILE = 'X'.
IF P_PCFILE <> ''.
PERFORM DOWNLOAD_DATA. "Write data into ntfile
ELSE.
MESSAGE E007(00) WITH 'P_PCFILE'.
ENDIF.
ENDIF.
END-OF-SELECTION.
ULINE (142).
WRITE: /002 'Component Material Count:', WK_CNT.
TOP-OF-PAGE
TOP-OF-PAGE.
WRITE: /002 'Product:', 013 P_MATNR,
030 '****** BOM Price List ******',
070 SY-DATUM,
095 'PAGE:',
100 SY-PAGNO.
ULINE (142).
WRITE: /001 '|Level',
007 '|Material',
026 '|Cat',
030 '|Quantity',
044 '|From',
055 '|To',
066 '|PurG',
071 '|Vendor',
082 '|MK',
085 '|Price',
101 '|Crncy',
107 '|UnitQty',
115 '|Unit',
120 '|From',
131 '|To',
142 '|'.
ULINE (142).
*&FORM CHECK_PROD
text
-->p1 text
<--p2 text
FORM CHECK_PROD.
SELECT SINGLE * FROM MARC
WHERE WERKS = P_WERKS " Plant
AND MATNR = P_MATNR " Material
AND DISPR IN ('F100','F200'). " Product
IF SY-SUBRC = 0.
PERFORM CHECK_BOM1 USING MARC-MATNR MARC-WERKS. " CHECK_BOM1
ELSE.
MESSAGE E022.
ENDIF.
ENDFORM. " CHECK_PROD
*&FORM CHECK_BOM1
text
-->p1 text
<--p2 text
FORM CHECK_BOM1 USING VALUE(FP_MATNR) VALUE(FP_WERKS).
SELECT SINGLE * FROM MAST
WHERE MATNR = FP_MATNR AND "Material
WERKS = FP_WERKS. "Plant
IF SY-SUBRC = 0.
PERFORM PUSH_STACK USING WK_LVL WK_QTY. "Save parent attribute
PERFORM CHECK_BOM2 USING MAST-STLNR. "Check BOM2
ENDIF.
ENDFORM. "CHECK_BOM1
*&FORM CHECK_BOM2
text
-->p1 text
<--p2 text
FORM CHECK_BOM2 USING VALUE(FP_STLNR).
SELECT * FROM STPO
WHERE STLTY = P_STLTY AND "BOM category
STLNR = FP_STLNR. "BOM number
PERFORM POPOUT_WK. "Pop out to work area
WK_BOM-LEVEL = WK_LVL. "Current BOM level
WK_BOM-MATNR = STPO-IDNRK. "Material number
WK_BOM-POSTP = STPO-POSTP. "ITEM Category
WK_QTY = STPO-MENGE * WK_QTY. "For Stack
WK_BOM-MENGE = WK_QTY. "BOM Component qty
PERFORM CHECK_BOM3 USING STPO-STLTY STPO-STLNR STPO-STLKN.
PERFORM CHECK_BOM1 USING STPO-IDNRK P_WERKS.
ENDSELECT.
PERFORM POPOUT_STACK.
ENDFORM. "CHECK_BOM2
*&FORM CHECK_BOM3
text
-->p1 text
<--p2 text
FORM CHECK_BOM3 USING VALUE(FP_STLTY) VALUE(FP_STLNR) VALUE(FP_STLKN).
SELECT SINGLE * FROM STAS
WHERE STLTY = FP_STLTY "BOM category
AND STLNR = FP_STLNR "BOM number
AND STLKN = FP_STLKN "BOM item
AND DATUV <= P_STDAT "Valid from
AND LKENZ = ' ' . "Valid
IF SY-SUBRC = 0.
WK_BOM-DATUV = STAS-DATUV. "Valid from
ENDIF.
SELECT SINGLE * FROM STAS
WHERE STLTY = FP_STLTY "BOM category
AND STLNR = FP_STLNR "BOM number
AND STLKN = FP_STLKN "BOM item
AND DATUV > P_STDAT "Valid from
AND LKENZ = 'X' . "Invalid
IF SY-SUBRC = 0.
SELECT SINGLE * FROM STAS
WHERE STLTY = FP_STLTY "BOM category
AND STLNR = FP_STLNR "BOM number
AND STLKN = FP_STLKN "BOM item
AND DATUV > P_STDAT "Valid from
AND LKENZ = 'X' . "Invalid
IF SY-SUBRC = 0.
WK_BOM-DATUB = STAS-DATUV. "Valid to
APPEND WK_BOM TO TAB_BOM.
ENDIF.
ELSE.
WK_BOM-DATUB = '99991231'. "Manul input
APPEND WK_BOM TO TAB_BOM.
ENDIF.
ENDFORM. "CHECK_BOM3
*&FORM PUSH_STACK
text
-->p1 text
<--p2 text
FORM PUSH_STACK USING VALUE(FP_LVL) VALUE(FP_QTY).
WK_STACK-LEVEL = FP_LVL + 1.
WK_STACK-QUANT = FP_QTY.
APPEND WK_STACK TO TAB_STACK. "Push stack
SORT TAB_STACK BY LEVEL. "Sort table by level
ENDFORM. "PUSH_STACK
*&FORM PUSH_STACK
text
-->p1 text
<--p2 text
FORM POPOUT_STACK.
DESCRIBE TABLE TAB_STACK LINES WK_CNT.
IF WK_CNT > 0.
DELETE TAB_STACK INDEX WK_CNT. "Popout stack
SORT TAB_STACK BY LEVEL. "Sort table by level
ENDIF.
ENDFORM. "POPOUT_STACK
*&FORM POPOUT_WK
text
-->p1 text
<--p2 text
FORM POPOUT_WK.
DESCRIBE TABLE TAB_STACK LINES WK_CNT.
IF WK_CNT > 0.
READ TABLE TAB_STACK INTO WK_STACK INDEX WK_CNT. "Popout stack
IF SY-SUBRC = 0.
WK_LVL = WK_STACK-LEVEL. "Current Level
WK_QTY = WK_STACK-QUANT. "Parent Qty
ENDIF.
ENDIF.
ENDFORM. "POPOUT_WK
*&FORM DOWNLOAD_DATA
text
-->p1 text
<--p2 text
FORM DOWNLOAD_DATA.
DATA: L_RETURN TYPE SY-SUBRC.
PERFORM GUI_DOWNLOAD
TABLES
TAB_DATA
USING
P_PCFILE
'X'
CHANGING
L_RETURN.
IF L_RETURN <> 0.
MESSAGE S020.
ELSE.
MESSAGE S021.
ENDIF.
ENDFORM. " DOWNLOAD_DATA
*&FORM GET_VENDOR_DATA
text
-->p1 text
<--p2 text
FORM GET_VENDOR_DATA.
LOOP AT TAB_BOM INTO WK_BOM.
CLEAR DATAITEM.
SELECT * FROM MARC
WHERE WERKS = P_WERKS "Plant
AND MATNR = WK_BOM-MATNR. "Material
DATAITEM-EKGRP = MARC-EKGRP.
SELECT SINGLE * FROM MARA
WHERE MATNR = MARC-MATNR AND "Material number
MTART IN ('1211','1221').
IF SY-SUBRC = 0.
SELECT COUNT(*) FROM EORD
INTO (WK_CNT)
WHERE WERKS = P_WERKS AND "Plaint
MATNR = WK_BOM-MATNR AND "Material
VDATU <= P_STDAT AND "Valid-From
BDATU > P_STDAT. "Valid-To
IF WK_CNT > 1.
DATAITEM-MARK = '*'.
ELSEIF WK_CNT = 0.
MOVE-CORRESPONDING WK_BOM TO DATAITEM.
APPEND DATAITEM TO TAB_DATA.
ENDIF.
SELECT * FROM EORD
WHERE WERKS = P_WERKS AND "Plaint
MATNR = WK_BOM-MATNR AND "Material
VDATU <= P_STDAT AND "Valid-From
BDATU > P_STDAT. "Valid-To
MOVE-CORRESPONDING WK_BOM TO DATAITEM.
DATAITEM-LIFNR = EORD-LIFNR. "Vendor code
SELECT * FROM A018
WHERE LIFNR = EORD-LIFNR AND "Vendor code
MATNR = EORD-MATNR AND "Material
EKORG = EORD-EKORG AND "Purchase org
DATAB <= P_STDAT AND "Valid-from
DATBI > P_STDAT. "Valid-to
DATAITEM-DATAB = A018-DATAB. "Condition From
DATAITEM-DATBI = A018-DATBI. "Condition To
IF SY-SUBRC = 0.
SELECT * FROM KONP
WHERE KNUMH = A018-KNUMH AND "Cnd Number
KSCHL = A018-KSCHL AND "Cnd Type
KAPPL = A018-KAPPL. "Cnd Cat
DATAITEM-KBETR = KONP-KBETR. "Price
DATAITEM-KONWA = KONP-KONWA. "Currency
DATAITEM-KPEIN = KONP-KPEIN. "Price Unit
DATAITEM-KMEIN = KONP-KMEIN. "Unit of Material
APPEND DATAITEM TO TAB_DATA. "Append TAB_DATA
ENDSELECT.
ENDIF.
ENDSELECT.
ENDSELECT.
ELSE.
MOVE-CORRESPONDING WK_BOM TO DATAITEM.
APPEND DATAITEM TO TAB_DATA.
ENDIF.
ENDSELECT.
IF SY-SUBRC <> 0.
MOVE-CORRESPONDING WK_BOM TO DATAITEM.
APPEND DATAITEM TO TAB_DATA.
ENDIF.
ENDLOOP.
ENDFORM. "GET_DATA
*& Form SET_OUTPUT
text
--> p1 text
<-- p2 text
FORM SET_OUTPUT .
CLEAR WK_CNT.
LOOP AT TAB_DATA INTO DATAITEM.
WRITE: /001 '|', 002 DATAITEM-LEVEL, "Material Number
007 '|', 008 DATAITEM-MATNR, "Purchase Grp
026 '|', 027 DATAITEM-POSTP, "Item category
030 '|', 031 DATAITEM-MENGE, "BOM Component qty
044 '|', 045 DATAITEM-DATUV, "BOM valid from
055 '|', 056 DATAITEM-DATUB, "BOM valid to
066 '|', 067 DATAITEM-EKGRP, "Purchase Org
071 '|', 072 DATAITEM-LIFNR, "Vendor
082 '|', 083 DATAITEM-MARK, "Mark flag
085 '|', 086 DATAITEM-KBETR, "Price
101 '|', 102 DATAITEM-KONWA, "Currency
107 '|', 108 DATAITEM-KPEIN, "Unit Qty
115 '|', 116 DATAITEM-KMEIN, "Unit OM
120 '|', 121 DATAITEM-DATAB, "Cnd From
131 '|', 132 DATAITEM-DATBI, "Cnd To
142 '|'.
WK_CNT = WK_CNT + 1.
ENDLOOP.
ENDFORM. " SET_OUTPUTPrabhu Peram,
Thanks very much.
I want to show an idea of BOM explosion by constructing a stack.
BOM explosion uses first-root-searching and pushes the "root" material into stack.If the "root" has no left-child,pops out the "root" material and searchs the right-child....and completes the entire BOM explosion.
Message was edited by:
Mic chen
Message was edited by:
Mic chen -
BOM explosion in BOMBOS transfer
Hello,
can any one tell me how BOM explosion happens in BOMBOS transfer? Thanks!!
Regards,
SaravanaDear Saravana
I believe if you use "standard" configuration the is no BOM explosion done. This is not needed. The reason is "simple". Any BOM item must be as well a specification. Thsi specification will have it self a composition. The BOMBOS transfer "end" normally on REAL_SUB level. Therefore the "leaflet" REAL_SUB must be maintained by youe (composition) either using PURE_SUB or LIST_SUB. But if needed: there is some user exit available (more than one) which you could try to use so that the "BOS" which is generated on EHS side is the "exploded"
The reason why this is all "customer" specific developmet is "quite" easy. You have a "main" BOM per plant; and you have alternative ones. How should the "explosion" be done? The system can not know thos. Do you always would liek to use the "Standard BOM"? Don'T know. But oplease check paralell thread:BOMBOS transfer SPRO settings and technical details
C.B. -
Does anyone know of a way to control Sales BOM explosion at the item category level in the middleware? We have boms created in our ECC system for both standard and configurable materials. For our standard materials I need the sales BOMs to explode on the CRM order (for ISA shopping basket purposes) and to prevent a duplicate explosion in the ECC backend I have parameter NOSTRUCTURE set to X in SMOFPARSFA.
CRM does not support using configurable products as the header or component of sales boms so for these materials I do want the bom explosion to happen in ECC as the order flows from CRM to ECC.
I've tried adding order types and item categories to the parameter names for NOSTRUCTURE but it didn't work. OSS confirmed my findings that it would not work.Hi,
I did work on single level BOM explosion in a couple of projects. As per SAP note 549341 - FAQ: BOMs in the sales order, it is very much possible to explode multi-level BOMs.
Check this note and item category BOM explosion options.
<b>Do not forget to reward if it helps,</b>
Regards,
Paul Kondaveeti -
BOM explosion in CRM Service Contract
Hello
We want have a BOM explosion working in CRM for service contracts
Here are the details :
We have replicated the materials from ECC to CRM. We are not maintaining any BOMu2019s in ECC.
The idea is that we maintain the BOM Structure in CRM only, as we donu2019t want to have the Items as a billable item in a position, only for information purposes (or later on for metering)
We have maintained the product category for the header product in CRM so we are able to maintain depended components
(Relationship type SCDEC S Dependent Components (DC) )
Not we are able to assign dependent component to the header material
Item category groups:
We understand that the standard item category groups that should be used are ERLA for the header product and LUMF for the Item product.
In order to support the same functionality for the given item category group , maintained at the product level in ECC we copied the same setting for the item category group from the standard to
our settings.
Standart
Tx type Item Cat Group item category structure scope
TA ERLA TAQ A single level Explosion of Structured Product
TA LUMF TAP A single level Explosion of Structured Product
So we have copied TAQ to ZTAQ and TAP to ZTAP.
ZS01 is a copy of SC (service contract)
Tx type Item Cat Group item category structure scope
ZS01 ZLEI ZTAQ A single level Explosion of Structured Product
ZS01 LEIS ZTAP A single level Explosion of Structured Product
But when we use a header product in the service contract, we cannot see the BOM is exploding.
We have also created some products in CRM with exactly the same Item Category groups as the standard and when we create a standard order (TA) in CRM, the BOM is NOT exploding.
Questions:
Is it possible to have the BOM setup only in CRM, like we try to do it?
Is it possible to use our own item category groups in CRM more is the functionality only working with ERLA and LUMF?
Is it possible to use the BOM Explosion in Service contracts as well ?
What steps are we missing to get the BOM explosion in CRM ?
Thank you for your help
FrankHi,
I did work on single level BOM explosion in a couple of projects. As per SAP note 549341 - FAQ: BOMs in the sales order, it is very much possible to explode multi-level BOMs.
Check this note and item category BOM explosion options.
<b>Do not forget to reward if it helps,</b>
Regards,
Paul Kondaveeti
Maybe you are looking for
-
I have an all in one C6180 Photosmart connected by wireless network (infrastructure). Network consists of 2-laptops, 1-Desktop and the printer. Everything works from HP solution Center on the Compaq laptop and the Dell desktop both running Windows X
-
Multiple WD Applications for same WD component
Hello All, How can we generate multiple web dynpro applications for the same Web Dynpro Component? I think one way out was to specify different interface view name for each application. But in one of the applications, I can see that 2 different appli
-
Why can i not insert a disc in my imac
why can i not insert a disc in my imac
-
Zoom level as bindiing variable
Hi MapViewer folks, Is there an hidden binding variable that defines the zoom level for a geometry theme being rendered ? Like :mvqboxxl, :mvqboxyl, :mvqboxxh, :mvqboxyh when MapViewer is rewriting the SQL query for a given theme. Thanks Karl
-
Where Do I Get ifxjdbc.jar ?
I'm trying to follow the documentation for Migration Workbench, but I don't think I have the correct jdbc driver. Where is the correct place to get ifxjdbc.jar? All I see in my various INFORMIXDIR's is a file in $INFORMIXDIR/JDBC called setup.jar. Am