BOM -construction
Sir,
We were asked to created BOM for equipments. I planned though LSMW.
But, TL asked me to create only constructiontypes to reduce data load.
What is construction type and where we can assign
what is bom assembly and equepment assembly
how to cretae the above.
Sai meghana
Hi ,
Consutruction type :- To my knowledge it is Material BOM .. you can assign create a material BOM and assign that to different eqpt rather than creating eqpt BOMs ..
Ex :-If u have 10MOTORs then u can create one Material BOM in CS01 and assign in all the eqpts ..where if ur going for Eqpt BOM then u need to create 10BOMs respective for each eqpt ..in this way u can reduce load ..
In ie02 under structure tab - u can mention material BOM ..created in CS01 -in construction type field ..
For defining material BOM -first create Material and then create BOM for that Material in CS01
generally Assembly means it has further some parts inside ,example -Gear Box .. assembly
regards
giri
Similar Messages
-
Hey guys, new here so go easy! lol
We have had SAP business one for over a year now, and use it for SOP and POP well.
we have structured our BOM's and Items in a way which makes it very complicated, but this is the way we were told by our installer.
A breif description on how we work:
you pick a product, you choose options and add ons which substitute other standard options. Nothing out of the ordinary.
E.g you want to buy a bike, which comes with plastic pedals as standard, but you want to upgrade to metal pedals, this sort of thing.
how would you structure the Bill's of Materials suitably.
many thanks.
Martin.
Edited by: MediPlinth on Sep 20, 2010 4:26 PMIt would be easier modify the BOM at entry time, just delete the line (Plastic Pedals) off the BOM and then add the line for the metal pedals when entering the order.
If you were to swap the pedals from an existing assembly:
Item Desc. Qty
bk000000 Bike Generic c/w Plastic Pedals 1
bk000001 Plastic Pedals -1
bk000002 Metal Pedals 1
so if for example, using the bike method again,
i have a BOM for the bike with 2 plastic pedals as a positive
and then a second BOM for the metal pedals with positive 2 metal pedals and negative 2 plastic pedals.
will this then even my stock for the plastic and negative my metal pedal stock?
would this be a viable route for the business to go? -
Constructions Industry - Use of SO BOM
Hi,
We are using ECC 6 and my client is a constuction company.
The company is using SAP material no - material type DIEN and this is entered during SO creation.
We dont keep any inventory as the nature of the business is construction/service.
For example - we have SO - Construction of 2Storey Building - Material No = C2S
There is a template that constitute the activity being done for C2S ( ie: Excavation, Pilling, BackPilling etc) which has its corresponding cost equivalent.
The sum up cost of the activity is the SO price which include some mark up.
At the moment, this activity is manually calculate and outside of SAP.
My client now want to incorporate the template/activity with cost to SAP - the intention is that- when a Sales Order coming in. The template will automatically captured for that order with the corresponding price et..
Not sure but it seems the concept is to activate the BOM.
Pls consider me as totally newbie on BOM, i understand its concept but i dont know how it will be done through SAP setting..
Appreciate if i got the right approach and value all the help of how to achieve it in SAP.
Thanks in advance.
SheHi She,
The requirement detailed by you is a typical requirement, which most of the customer wants irrespective of industry. This requirement cannot be and should not be addressed in SAP logically. The reason being that the cost of procurement will vary. In the example of Construction industry, labour price will vary from place to place withing same city, other charges like electricity consumed will also differ based on service provider, if the site is not easily approachable by regular or large teucks / containers, the cost of transportation will vary, and so on..... This is a part of wish list a client will always have, but it is important to draw a line, beyond which even a development should not be proposed. The value will as it be required to be entered manually on most occasion, as there will be no standard price of procument.
Even if a thought is given for Development, the impact of development on the system, volume of added master data, time to be considered to trigger the event during transaction, feasiablity and system performance also require to be considered.
Regards,
Rajesh Banka -
Runtime Error # DBIF_RSQL_INVALID_RSQL for large size BOMs
Hi All,
I am facing problem running a custom report for Routing summary. When Executing the report gives the above runtime error.
ShrtText: Error in RSQL module of database interface.
Error analysis :
An exception occurred. This exception is dealt with in more detail below
. The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was neither caught nor passed along using a RAISING clause, in the procedure
"CP_SC_MTK_LOAD_COMPLEX_BY_TSK" "(FUNCTION)"
Since the caller of the procedure could not have expected this to occur, the running program was terminated.
The reason for the exception is: The SQL statement generated from the SAP Open SQL Statement violates restriction imposed by the database system used in R/3.
Possible errors:
o The maximum size of an SQL statement has been exceeded.
o The statement contains too many input variables.
o The space needed for the input data exceeds the available memory.
How to correct the error
The SAP Open SQL statement must be divided into several smaller units.
If the problem occurred due to the use of an excessively large in an IN itab construct, you can use the addition FOR ALL ENTRIES
instead. When you use this addition, the statement is split into smaller according to the restrictions of the database system used.
You may able to find an interim solution to the problem in the SAP note system. If you have access to the note system yourself,
use the following search criteria:
"DBIF_RSQL_INVALID_RSQL" CX_SY_OPEN_SQL_DBC
"SAPLCPSC" or "LCPSCU03"
"CP_SC_MTK_LOAD_COMPLEX_BY_TSK"
This report uses SAP standard Function module "CP_SC_MTK_LOAD_COMPLEX_BY_TSK" in the select statement.
When Analysed, We found that since the BOM size for routing is large(More than 2000 components), this dump is coming. for rest of the routings, the report works fine.
I could not found any SAP note relevant for this.
This is definitely related to large BOM size, if anybody of you came across such problem and how to correct it now.Hi,
We did solve this problem. This problem usually comes when there is very large records in internal table (More than 2000 Approx).
We need to split that select statement and make multiple statements so that the memory overflow doesn't happen. refer SAP note: 13607.
We modified the coding as follows by splitting the SELECT statementu2026
SELECT DISTINCT MANDT PLNTY PLNNR PLNAL MATNR WERKS VBELN POSNR
INTO CORRESPONDING FIELDS OF TABLE E_MTK_IDENT
FROM MAPL FOR ALL ENTRIES IN I_TSK_IDENT
WHERE PLNTY = I_TSK_IDENT-PLNTY AND
PLNNR = I_TSK_IDENT-PLNNR AND
PLNAL = I_TSK_IDENT-PLNAL AND
MATNR IN I_CPSC_MTK_SEL-MATNR AND
WERKS IN I_CPSC_MTK_SEL-WERKS AND
VBELN IN I_CPSC_MTK_SEL-VBELN AND
POSNR IN I_CPSC_MTK_SEL-POSNR AND
(FREE_WHERE-WHERE_TAB).
SELECT MANDT PLNTY PLNNR PLNAL MATNR WERKS VBELN POSNR
INTO CORRESPONDING FIELDS OF TABLE E_MTK_IDENT
FROM MAPL FOR ALL ENTRIES IN I_TSK_IDENT
WHERE PLNTY = I_TSK_IDENT-PLNTY AND
PLNNR = I_TSK_IDENT-PLNNR AND
PLNAL = I_TSK_IDENT-PLNAL AND
(FREE_WHERE-WHERE_TAB).
Delete E_MTK_IDENT where matnr NOT in I_CPSC_MTK_SEL-MATNR.
Delete E_MTK_IDENT where werks NOT in I_CPSC_MTK_SEL-WERKS.
Delete E_MTK_IDENT where VBELN NOT in I_CPSC_MTK_SEL-VBELN.
Delete E_MTK_IDENT where POSNR NOT in I_CPSC_MTK_SEL-POSNR.
Hope this helps you.
Regards, Madhu -
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 -
Item cost in Bills of material(BOM)
How to see item cost(FIFO, Average) for all raw material when constructing BOM. I feel strange why SAP is calling out from price list since price list consist of purchase cost or selling price rather than actual inventory cost based on inventory valuation method?
Regards
ThomasHi Thomas,
What about using the "Last Calculated Pricelist". Would'nt that carry forward the Valuation Price? You would need to run a "Update Parent Prices Globally" to update the latest Valuation of the Item. Please check on this as I am not 100% sure of it.
So try this as it may work.
- Create a pricelist called "Valuation Pricelist" and base this pricelist on the "Last Calculated Pricelist" and at a factor of 1.
- Set your Components Item's Pricelist as the "Valuation Pricelist" on your Item's BOM.
- Set your Parent's Item Pricelist also to the "Valuation Priclist" on you Item's BOM and click the orange arrow/triangle button to update the "Parent Product Price" value.
- Update the BOM
- Run a full Production cycle and see what your results are and this should have a "Total Variance" (between your "Actual Components Cost" and your "Actual Product Cost") to zero $0.00
If I am correct, this should carry the total components' values over to that manufactured parent's value.
But every time you purchase a component ("Recieve"), you will need to do an "Update Parent Item Prices Globally".
Try this and let me know what your results are.
Thanks
Message was edited by: Noor Jooma -
Need BOM related solution for Textile Industry (Weaving proces)
HIi,
Made to Order Strategy:
Every times customer sends the specification of product. Specification format as given below:
Ex. 80x100/154x80*3-118u201D 4/1 Twill
Details of specifications:
80: Count of EPI (Ends Per Inch)
100: Count of PPI (Picks Per Inch)
154: EPI
80: PPI
3: Insertation
118u201D u2013 Width in Inch
4/1 Twill : Design of Fabric
Operations Details:
1 Warping
2. Sizing
3. Weaving
4. Quality Inspection
5. Packing
As Is Business Process:
There are mainly four production lines viz. Warping, Sizing, Weaving and Quality Inspection. For all the production lines the individual machine work centers will be as listed below with brief description:
1. Sectional Warping:
A kind of Warping specially used to prepare fabrics for shirting. In sectional warping dyed yarns are used to prepare warping beam. The end constraint of sectional warping is 720 ends at a time. The actual capacity of Sectional warping is 800 MTR/min. This activity is job work for DEESAN group.
2. Direct warping:
Direct warping process is used to prepare warping beam. The end constraint of warping is 1088 ends per beam. Machine width of the beam in 2200 mm, speed of warping varying from 300 MTR to 1200 MTR per minute depending upon the construction required. It has backup procedure for next round. Uploading speed for single yarn is 8 yarn / min / person.
3. Sizing:
Sizing process is used to prepare specific number of EPI/ beam as per the requirement of construction. A calculated no of warp beam used to prepare a single sizing beam. Speed of sizing 45 to 55 MTR / minute depending on the requirement of fabric.
4. Preparation of Drawing:
This process is used to preparation of new drawing for the loom machine. Drawing includes frame & reed. It will take 12 hr for 2 persons to prepare a single drawing i.e. 8000 ends per shift. This activity given as job work to some group of people.
5. Weaving:
Two types of weaving machines used are CAM and DOBBY. Fabric to fabric PPI is varying, the capacity of loom machine depends upon the PPI so the capacity of loom machines varying with the type of fabric. CAM is used specially for plain fabrics.
6. Quality Inspection:
The beams of fabrics coming from looming machine are inspected on Inspection machine. 100% fabrics are inspected on QA machine for further grading, which is then bifurcated in Export, Local and chindi type.
7. Rolling:
Rolling machine is used for rolling of inspected fabric on card board rolls according to the quality of fabric. A roll contain of maximum 350 MTR of fabric. Which are then packed with LDPE followed by HDPE with appropriate coding on rolls.
Material Requirement:
For ex. 80x100/154x90*3-118u201D 4/1 Twill
Order Qty.: 20000 M
Currently they are using single level BOM.
Formulas for calculate raw material requirements as given below:
Warp wt / mtr = (EPIWidthCrimp) /(1693*Count of EPI)
= (154 * 118 * 1.025)/(1693 * 80)
= 0.137524
= 0.138 Kg/Mtr
Weft wt / mtr = (PPIInsertationWidth * Crimp) /(1693*Count of PPI)
= (9031181.025)/(1693100)
= 0.192891
= 0.193 Kg/Mtr
Total Qty req:
Warp = 0.138 * 20000 + add 5% loss
= 2898 KG
Weft = 0.193 * 20000 + add 4% loss
= 4014 KG
Packaging material requirement :
1. Paper tube = Total order qty / approximately for 300 m 1 paper tube required + 5% loss
= 20000 / 300 *1.05
= 70
2. HDPE sheet = No. of paper tube * 0.4 KG
= 70 * 0.4
= 28 KG
3. LDPE sheet = No. of paper tubes * 0.15 KG
= 70 * 0.15
= 10.5 KG
Chemical consumption in terms of yarn on KG basis. Its combination of 4-6 chemicals depends on construction to construction also material availability.
Note: We will consume chemicals against cost center.
Production planning at execution time:
Sizing and warping calculation:
1. Sizing :
EPI per inch = 154
On loom will be = 154 * 1.025
= 157.85
Total no of ends for 118u201D width = 157.85 * 118
= 18626
Add one more ends per 1000 ends = 18626 / 1000
= 19 ends
Total no of ends = 18626 + 19
= 18645 for sizing
Warping :
Warping m/c capacity of output is 1088 Ends per set/beam.
Speed of machine 300-1200 MPM.
So for sizing we need 18645 ends. Now we want to calculate no warp set required for sizing & no. of ends per warp set.
Ends required per set = 18645 / 18 = 1036
i.e. 18 * 1036 = 1 Sizing set
We need total yarn on KG basis
Issue related to BOM:
1. How We can feet below 2 issues in BOM
a. we want to calculate RM(Yarn) material requirement in Unit of u201CENDu201D
NOTE: Procurement of Raw material Unit- KG as well as it depends no. of ends required for warp set / beam. i.e. its multiple of yarn cone required for 1 warp set.
As per Bom of Raw Martial Unit- Ends (EA)
b. Also we want to calculate no of warp set required for sizing and no of ends required for warping process.Hi Pankaj,
Hope you might have completed the project for Textile industry. I need to know implementation in Textile and some specific process. If you can share some documentation for Textile industry would be very helpful for me. My id k.anamika06 at gmail
Thanks a lot
Anamika -
Sample bom creation and explosion in sales order
hi,
can any one help to create a simple bom with atleast one sub item for the bom and create a sales order in which the bom explodes ( i mean when u enter the main bom item it should list its sub items as its line item below it)...
(also mention what item categories are to be taken care ... )
rewards for sure
thanks
mmnHi MMn,
Bill of materials (BOM)
1. In the SAP System, you can use BOMs to represent different objects (such as materials, equipment, functional location BOMs, and documents) and to maintain object-specific data.
2. Document BOM: A complex document may be made up of several documents, such as a program, technical drawings, papers, and photographs. These related information and documentation objects are grouped together as a unit using a document structure a BOM for a document.
3. Equipment BOMs are used to describe the structure of equipment and to assign spare parts to equipment for maintenance purposes. Bills of material for functional locations group together the elements of a technical structure, such as the functional unit of an entire plant.
4. You work with order BOMs when you specially tailor the make-to-order production of your products to the requirements of your customers. In order to meet the customer requirements, sales order specific modifications to various assemblies are often required. Furthermore, assemblies are often specially constructed for a particular sales order.
5. Before you can create a BOM for the component parts of an object, the object must have a valid master record in your system.
6. A bill of material that you create for a material is known as a material BOM in the SAP System. A BOM explosion answers the question: What is the product made of? This question arises in various situations, such as when you want to:
Determine material requirements for a product
Look at the overall structure of a product in a design department
See an overview of the parts and materials required
Calculate the effects of changes to costs
7. BOM is a collection of materials that make up a product. For example computer, home theatre system. Material BOM is complex and is dependent on sales and distribution, material management or production planning.
8. The most important rule is that the material type has to be a FINISHED PRODUCT (FERT) in order to categorise it as a BOM.
9. BOM processing is divided into two different ways either at the MAIN item level if the item is assembled or at the sub-item level (i.e. at the component level) if the material is not assembled.
10. BOM is configured at the item category level (VOV7) and transaction code to create a BOM is CS01.
11. In case of single level BOM, main item categories TAQ and TAP should represent single level BOM in VOV7 and in case of multi level BOM, the main item categories should represent multi level BOM.
Main item level processing
1. The material master records should have the item category group ERLA in the sales org.2 screen of the finished product. In this case, the associated sub items function only as text items, and thus are not relevant for delivery. This process ensures that pricing, inventory control and delivery processing is carried out the header level that is for the finished product only. This is mainly relevant to the assembled products.
2. item category group ERLA; main item category TAQ (schedule line CP) and sub item category TAE (schedule line CT)
Sub-item level processing
1. If the business prefers to have the sub-items be responsible for pricing, inventory control and delivery processing, the item category group should be LUMF on screen sales org.2 of the respective material master record. This ensures that subcomponents are relevant for processing. This is relevant to the products that are not assembled.
2. item category group LUMF; main item category TAP (schedule line is CT), sub item category TAN (schedule line is CP)
Multi-level BOM
In order to activate the multi-level BOM, structure scope in VOV7 has to be changed from single level explosion to multi level explosion.
Try this and revert back fr clearifications
Reward Points if helpful.
Regards
Srini -
Hello Experts,
I have a business case where my customer builds very large constructions. The have large BOMs (many levels) representing these constructions.
Obviously, they do not want to just assign the top material of this mulitlevel BOM to an activity and run MRP. they need to be able to assign different sub-components to different network activities to be able to track both costs and progression.
My problem is that I am not able to control how much of the BOM that explodes. The top assembly should be assigned to one activity, but there, I only want the BOM to explode down to the next level and so on.
I am sure that this is a quite normal requirement, but I am simply not able to solve it. Have spent hours on help.sap.com, talking to other consultants and looking in this forum without finding the answer.
All my components need to be held in stock, so phantom items will not help me.
Anyone who has any suggestions on how to do this?
rgds
GARHi,
As per me u can define BOM status in OS03.
1. In one BOM staus parameter u define MRP not allowed by unticking MRP exlposion.
2. In another BOM status u can Tick MRP explosion parameter.
Whereever u want MRP shuld not exploded u can assigne BOM status for Header material as 1 as in case of subassy. And if u want MRP shuld exploded for Header matrl u can assign BOM status as 2 in CS01 Header matrial Qty/long text tab
Rgds -
Use of construction type field in Equipment master
Dear All,
What is the use of construction type field in equipment master and how can i use in plant maintenance processes or transactions
If possible give some examples.Also any one have some document or link related to construction type, kindly provide.
Thanks & Regards,
SandeepConstruction Type is used for identify the equipments having similar construction of materials.
For examples: Identical Mechanical seal used in different pumps.
A BOM can be linked to a technical object in two ways:
By direct assignment: directly assigned BOM
If you create a bill of material directly for a technical object, it is assigned directly. If all the technical objects are identical in terms of structure, the BOM items are valid for all the allocated technical objects.
By indirect assignment: indirectly assigned BOM
For technical objects that have a material BOM - if you enter a material number in the Construction type field of a master record, the material BOM is indirectly assigned to the object. This is a good idea when a company has several identical technical objects grouped under one material number.
Regards
Dhiren -
How to manage bom effective in and out dates
The parent-child relationships in my BOMs have effective in and out dates. The in date is when the child part starts to participate in the BOM cascade. Then out date is when it stops participating.
My questions is, how to express this in IOP speak. Specifically, when I want to say is,
dependent demand = dependent demand + <total demand from parent> * if (today is in [BOM.in_date .. BOM.out_date], BOM.usage, 0)
I'm sure it can be done, just haven't been able to figure out how. I poked around the function reference in jdocs, but haven't come up with a way to do this. Seems like the key here is to construct locations out of the dates I pull out of the rowsource. Once I have that, I should be able to use the in() and range() functions.
Thanks for your advice.Matt
Yes, this is fundamental and supported well. Unfortunately, it used to be custom code before the release coming out soon. In this release, we have introduced generic functions to achieve that. The in_date and out_date are function of the relationship I assume.
Here is what you could do with the new release -- remember this should be coded in the rolldown/rollup formula --
dependent demand = dependent demand + <total demand from parent> * if (isCurrentDateInRange(
lookupDate("BOM_STRUCTURE_RS", property("BomDim", "name"), sourceSparseMember("BomDim"), "start_date"),
lookupDate("BOM_STRUCTURE_RS", property("BomDim", "name"), sourceSparseMember("BomDim"), "end_date")),
lookup("BOM_STRUCTURE_RS", property("BomDim", "name"), sourceSparseMember("BomDim"), "SCALE_FACTOR"), 0)
lookupDate and isCurrentDateInRange are introduced now.
Lookup in general is a cool function that lets you do arbitrary query to rowsource. It is like table lookup and it is efficient within a block calculation. -
Hi,
WE are implementing a PLM - SRM integration wherein products once finalised would need to be communicated over to the Vendors for finalising product design. we would be having SAP R/3 as the system which would be the bedrock so as to say. after product design stage where the BOM would be constructed, how can we access the BOM DATA through SRM ? i checked the SRM master data, ALL of which would be sourced through R/3 using CRM Middleware, what i want to knwo is, how will we import BOM data into SRM ?
regards
authiSRM does not have native capability to store structured items (like bill of materials or bill of services) like in R/3. Even if you somehow replicate the BOM into SRM (using CRM middleware) the procurement documents cannot handle such structure items.
Kind Regards, Suresh.
Message was edited by: Suresh Ramanathan -
Hi All,
My client is an Ifrastructure Developer, the issue here is as follows:
We treat construction of a building (with 10 appartments) as a project, this project has got 11 WBS at level 1. The first Level 1 WBS (lets call it Construction) will have sub WBS which will cover the cost for all the project, and the other 10 WBS elements represent the 10 appartments.
Every month end the cost on the Construction WBS will be settled proportionately to all 10 WBS for appartments.
Any Appartment when booked for sales, the sales order is created with acct assignment of that respective WBS. Everything works properly after this - RA / Settlement etc.
Issue is when out of these 10 appartments, 2 are not sold but are completed - customer wants to place them in Inventory - ie quantity and value.
Is it possible or is there any work around ?? its MTS + MTO scenario without BOM.
Thanks in Advance
Sandeep GHAGExample:
Construction L1
Land Acquisition L2
General Development L2
Sub-Structure L2
Super-Structure L2
Water Connections L2
Electricity Connections L2
Interiors L2
Apartment 01 L1
Apartment 02 L1
Apartment 03 L1
Apartment 04 L1
Now the WBS - Construction will incur actual costs in terms of labor, material etc (from the Level 2 WBS like Land Acquisition / General Development etc) - this cost will be settled periodically to every Apartement WBS proportionately.
Only the WBS for Apartments will be Billing Elements and Sales order for every Apartment will be created with Acct Assignment for individual WBS Apartment. RA will be run for every Apartment WBS that will be sold out.
Now the issue is can we show the Apartment (Finished Good) as inventory incase it is not sold ??
Regards
Sandeep GHAG
Edited by: Sandeep Ghag on May 26, 2009 2:05 PM -
BOM for textile (weaving process)
Hi,
Can any one tell me how to maintain BOM for textile (weaving process). I need BOM logic with stage wise.
For ex. I had order of following construction 60x60/154x58^3-120"
Now I need multilevel BOM logic for this construction.
list of operations as given below:
1. Warping
2. Sizing
3. Weaving
4. Packing
Thanks & Regards,
DhamaneDear Dhamane,
Whatever you have provided is the specification of your product which alone is not required to design the structure of a BOM.
Kindly provide the details of the materials used in production with the sequence in which the final product is formed.
Thanks & Regards,
Vijaya Bhaskar A -
Hi,
I need help to understand as to how assembly is used in PM ?
I have crated one assembly,then created a quipment BOM and the same I have assigned it to the order from the assembly and list icon in component tab. Now I need to understand how it works further ? The flow ?
Also what is the difference if we create Equipment BOM or Material BOM ?
Regards,
MeghaaHi
Please check the link very useful to understand.
http://www.sap-img.com/plant/plant-maintenance-assembly.htm
Equipment BOM we create when there are less in number or very unique structure but if we have equipment like similar structure we go for material BOM and use the functionality of Construction type in Equipment Master data.
Shail
Maybe you are looking for
-
Can someone tell me how long it generally takes for apple to recognise the problem on the iOS4 software with car audios? and issue upgrade to solve it, or is it just a waiting game?
-
SQLPlus login hangs because of "Thread 1 cannot allocate new log"
Hi to everybody! Could you please give an advice how to overcome the following situation. In my 10GR2 database I have destination for archive logs placed in ASM disk group. When suddenly this disk group becomes overfilled I can not login into the dat
-
How do I get old wallpapers back from ios 6?
Hi, I recently updated my iPad to iOS 7, and I had my homesreen with an ios 6 wallpaper picture. I was looking around with the wallpapers when I accidently put another wallpaper. I wanted to change it back, but I saw that wallpaper is not there an
-
I'm using FileReference.download() to download a single file from a server to a local machine. The download() function opens a dialog box where the user select where he wants to save the file and what name give to it. Is it possible to download X fil
-
Can only import non-iTune songs
I have a new XP computer and want to import via CDs from older computer. Do not get import option for CD with iTunes songs, but do get it for non-iTunes CDs. Apple documentation says transfer of iTunes to a certain number of authorized computers is l