In bom explosion instead c13 output cs12 came ,how to restrict
Hi friend
i have developed summarised bom explosion,
my requirement is from to using select option 1 to 10
it came one by one but ,only the issue is instad of cs13 output
cs12 output is coming , how to restrict
here i pasted the code
give me a solution
TABLES : MAST.
DATA: BEGIN OF ISTPO OCCURS 1000.
INCLUDE STRUCTURE STPOX.
DATA: END OF ISTPO.
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.
START-OF-SELECTION.
CLEAR ISTPO. REFRESH ISTPO.
SELECT MATNR WERKS FROM MAST INTO CORRESPONDING FIELDS OF 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 = 'X'
BREMS = 'X'
DATUV = SY-DATUM
MTNRV = ITAB-MATNR
WERKS = P_WERKS
EMENG = '1'
FBSTP = 'X'
FTREL = 'X'
IMPORTING
TOPMAT = W_TOPMAT
TABLES
STB = ISTPO
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.
IF SY-SUBRC = 0.
WRITE:/ 'MaterialNumber' ,21 'Description'.
SKIP 1.
WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
LOOP AT ISTPO.
WRITE :/ ISTPO-IDNRK,
ISTPO-OJTXP,
ISTPO-MENGE,
ISTPO-MEINS.
ENDLOOP.
ENDIF.
*ENDLOOP.
SKIP 5.
ENDLOOP.
FTREL (Limited multi-level - stop explosion at items not relevant to production),
BREMS(Limited explosion),
FBSTP(Limited multi-level - stop explosion at externally procured item),
MDMPS(Limited multi-level - explode phantom assemblies at least),
MKMAT(Limited multi-level; explode KMAT),
MMAPS(Limited multi-level - explode at least M assembly (M order),
i used the above steps but , i didnot get the solution
Regards
ds
HI,
i got the output partily,
LOOP AT ITAB.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
MEHRS = '1'
MMAPS = ' '
BREMS = 'X'
DATUV = SY-DATUM
MTNRV = ITAB-MATNR
WERKS = P_WERKS
EMENG = '1'
FBSTP = ' '
FTREL = ' '
IMPORTING
TOPMAT = W_TOPMAT
TABLES
STB = ISTPO
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.
IF SY-SUBRC = 0.
WRITE:/ 'MaterialNumber' ,21 'Description'.
SKIP 1.
WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
DELETE ISTPO WHERE STUFE NE '1'.
LOOP AT ISTPO .
WRITE :/ ISTPO-IDNRK,
ISTPO-OJTXP,
ISTPO-MENGE,
ISTPO-MEINS.
ENDLOOP.
ENDIF.
*ENDLOOP.
SKIP 5.
ENDLOOP.
Similar Messages
-
How can we stop BOM explosion conditionally ?
Hi,
How can we stop BOM explosion conditionally?
Under certain status condition, I want to stop BOM explosion in CRM Sales Orders. How can we do that?
Regards,
AnkushYou have to use settings to filter mail on the server in your webmail account using a web browser. There are no filters in the mail app. There is no way to bulk delete mail either in the iPad mail app.
There are alternative mail apps that might suit your needs better than the built in mail app. You would have to search the app store to see what is available. Group Email with Attachments and MailShot are two that I know of, but I don't use either of them. -
How to restrict cs12 bom explostion and how to download excel in back groun
i have using bom explosion report like using cs13.
but it get cs12 bom explosion also. how can i restrict it
then i would like to run this report in background and also
download it into excel format
i tried using fm download
but i gave the input 1 to 10,
the report is coming
but excel only last materials datas only came
in excel 213 columns was taken, but i need only
material ,description
objectid,objectdesc,qty,uom
one by one
data: begin of istpo occurs 1000.
include structure stpox.
data: end of istpo.
data: w_topmat like cstmat.
parameters: p_matnr type mast-matnr,
p_werks type mast-werks.
start-of-selection.
clear istpo. refresh istpo.
call function 'CS_BOM_EXPL_MAT_V2'
exporting
capid = 'PP01'
mehrs = 'X'
datuv = sy-datum
mtnrv = p_matnr
werks = p_werks
emeng = '1'
importing
topmat = w_topmat
tables
stb = istpo
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:/ 'Components'.
skip 1.
write: / w_topmat-matnr under text-h00 color col_heading,
w_topmat-maktx under text-h01 color col_heading.
loop at istpo.
write:/ istpo-idnrk, istpo-menge.
endloop.
Regards
dsHi Raghu Ram,
The BOM explosion is controlled by item category.
In the item category configuration screen, under "Bills of Material/ Configuration", you can see "Structure Scope" field.
Select the one which is applicable to your case:-
"blank" - Do not explode material structure
A - Explode single-level BOM
B - Explode multi-level BOM
C - Configuration, no BOM explosion
D - Configuration, poss. with BOM explosion
E - Structure from Customer_Function (product selection)
Hope this helps
Regards,
Nicole -
Bom explosion how to restrict the item level posnr
Hi friends
TABLES : MAST.
DATA: BEGIN OF ISTPO OCCURS 1000.
INCLUDE STRUCTURE STPOX.
DATA: END OF ISTPO.
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 : ITAB_STB LIKE ISTPO1 OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
CLEAR ISTPO. REFRESH ISTPO.
SELECT MATNR WERKS FROM MAST INTO CORRESPONDING FIELDS OF 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 = 'X'
BREMS = 'X'
DATUV = SY-DATUM
MTNRV = ITAB-MATNR
WERKS = P_WERKS
EMENG = '1'
FBSTP = ' '
FTREL = ' '
IMPORTING
TOPMAT = W_TOPMAT
TABLES
STB = ISTPO
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.
IF SY-SUBRC = 0.
WRITE:/ 'MaterialNumber' ,21 'Description'.
SKIP 1.
WRITE: / W_TOPMAT-MATNR UNDER TEXT-H00 COLOR COL_HEADING,
W_TOPMAT-MAKTX UNDER TEXT-H01 COLOR COL_HEADING.
LOOP AT ISTPO .
WRITE :/ ISTPO-POSNR,
ISTPO-IDNRK,
ISTPO-OJTXP,
ISTPO-MENGE,
ISTPO-MEINS.
ENDLOOP.
ENDIF.
*ENDLOOP.
SKIP 5.
ENDLOOP.
here i gave the material no , it gave the bom of that materials.
i restricted posnr itemnumber.
postnr component number complonentdesct u
010 sfg
010
020
020 sfg
030 sfg
010
020
i want to get only sfg component how to use this logic in above coding.
very urgent. give me a solutions
Regards
dsHI,
my requirement is to explode the summaried bom ,using tcode cs13,
we ll get multilevel cs12 , in my report i got cs1 explosion,
but i need to get like cs13 ouput using select-option,
but i got the output i would like to restrict levels
ABC IS MATERIAL
D
E
F - E and f required to make a d,
G
H
I H and i requried to make a g,
i want to get only H , I, E,F =====> A
D,G IS SFG.
Regards
ds -
In bom explosion afterthat i ll get routing ,workcenter.plnnr ,plnty = n
Hi Experts
my requirement is to explode the bom like cs12 tcode in pp
after that we ll find which component is having routing ,then we pick the
workcenter if the material procurement type is E OR X.
HERE I AM USING MARC,MAPL,PLPO,CRHD.
1.USING CS_BOM_EXPL_MAT_V2 TO EXPLODE THE BOM
MARC IF BESKZ = E OR
===> BESKZ = X ==> MAPL
MATNR MATNR
WERKS PLNTY
BESKZ PLNNR
PLPO
PLNTY
PLNNR
VORNR
ARBID--CRHD
LTXA1 OBJID
VGE01 ARPBL
VGW01
VGW02
WERKS
HERE WE USED TO GET BESKZ = X OR E
AFTER THAT COMAPARE MARC-MATNR = MATNR & ISTPO-IDNRK
MAPL AND PLPO HERE WE USED TO RELATE BETWEEN PLNNR
PLNTY = 'N'
109013030 IS THE HEADER MATERIAL HAVE THE FOLLOWING BOM
.1 610001440
..2 L021000260
.1 912500076
HERE .1 - LEVEL 1,..2 LEVEL 2.
USING CA03 TO GIVE THE MATERIAL WE GOT THE OPERATIONS AND WORKCENTER
IN TABLE MAPL , GIVE THE MATNR AND PLANT ,PLNNR
AFTER THAT I RELATE THE PLNNR TO PLPO
FETCH ALL THE RELEVANT FIELDS FIVE OPERATIONS CAME
BUT IN CA03 THE SAMEMATEIALS GIVE ONLY 3 OPERATIONS ONLY CAME
how can i sove this issue.
very urgent
thanks in advance
Regards
dsHI
MARC ,MAPL only having the plnnr,plnty
not having vornr,stues
plpo is having all the fields
how can i pass plnnr with vornr,stues,vornr to plpo
Regards
ds -
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 -
BOM Explosion Number in Sales Order
Hi Experts,
For a make-to-order case, I would like to assign a predefined BOM explosion number with fixed key date to a sales order item. Instead of manually assigning the BOM explosion number to the sales order item, is there any way to let the system automatically assign the BOM explosion number?
As I read from SAP Library under the BOM Explosion Number (Fixed Key Date), it states "The system can automatically specify the BOM explosion number when entering planned independent requirements or customer independent requirements or when entering the sales order." So is there any configuration to be done in advance to enable the BOM explosion number to be automatically assigned to sales order item?
Thanks,
SWI tried also setting up the material and its BOM determination by specifying only 1 BOM out of multiple BOMs. Still,
1. When I add the said material into sales order line and save the sales order, the BOM explosion number value never appear automatically in the sales order line.
2. When I run the planning on the sales order through MD50, the planned results do not have the BOM explosion number attached.
I think your advice is more applicable to selection of a BOM from multiple BOMs instead of determining the fixed key date based on appropriate BOM explosion number, correct me if I am wrong.
Regards -
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. -
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 SUBCONTRACTING SCENERIO
Hi,
To all Experts,
This is regarding the bom explosion in subcontracting P.O(scenerio).Scenerio prob. is explained as follows -
1) I have an assembly which includes the semifinish & raw materials.
2) By cs11 it explpodes whole BOm
3) When i made P.O. for job work order(subcon.), in mateial data view it displys only the semifinish components(i.e. component or explode bom) ,but not the raw,which we want to send to vendor.
so due to above,how we can determine, what the material we are sending to vendor?
In short i want to explode the bom in po,in which it displys the semifinish as well as its raw.
So please suggest a propper solution for above query.
Hoping suggestion quickly
Thanks in advance
ManishHello Manish,
Could you please tell me how you have resolved this problem. I have the similar requirement.
"want to explode the bom in subcontracting po,in which it displys the semifinish as well as its raw."
we are exploring the PHANTOM ASSEMBLY but still no luck.
When i set at BOM item level - Phantom Assembly off indictor and Spec. Procurement 50
system is still requesting for transfer of Phantom Assembly instead of components to the vendor.
Thanks in advance -
No BOM explosion in assembly order
Dear Experts,
I am running a assembly order, type PP04 which is directly created from a sales order. During the creation, the BOM is exploded.
My question is that how can I disable the BOM explosion as I want to enter all the components according to our customer rule instead of a predefined BOM.
If there is no BOM of that material, there will be a error message when saving the production order.
Thanks.
ClaudeHi,
following settings to be made in Customization for the Assembly Order If you don'twant to explode the BOM
1) Create the selection ID with priority & BOM usage in OPJI
2) Create the BOM Application & Assign the selection ID created in above step & Also mantain the following cheks in OPJM
uncheck the Sales Order explosion indicator--OPJM
3)Assign the above Application to the Order type & Plant in OPL8
Thanks,
Rajanikanth -
No BOM Explosion in Planning Order
Hello Folks,
i have a problem with the BOM explosion at creating a planning order.
Our BOMs are created without plant number and are enterprise wide available.
If we create new BOM's with direct plant association via CS01, the BOM explosion in creating a planning order is possible.
I've already searched in Customizing and Transactions and didn't find anything to make a BOM explosion possible with an enterprise BOM.
Do you have any idea how it is possible to do that? We don't want to create new BOMs because it is too much workload to create all new BOMs. We use a SAP ECC 6.0 with IS-Retail.
Hope you can help me.I think that it is a must to have the BOM defined for plant to be exploded in a planned order.
Nevertheless, you don't need to create it a gain for each plant, you can instead just do a plant assignment (CS07). -
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 -
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 -
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
Maybe you are looking for
-
Dear All, My company is using Service master. In Wo we use use same service code in two line. We want to see excuted qty through t code ME2S.in this report both line item qty add . Please suggest.
-
Oracle XML Gateway- Mapping XML to Oracle Apps API - Wrong Number or types
XML GATEWAY INBOUND – CALLING AN API (PL/SQL record type IN variable) TO INSERT THE DATA INTO SAMPLE TABLE Hi, I am using XML Gateway to push data into Oracle Apps using a procedure call with “Record Type” as the parameter. I am getting a “wrong numb
-
Hello, I have a requirement to Post EDI 850 Document to create Sales Orders in SAP. Currently, we are working on finalizing the mapping Document with the all the required fields that will be sent by the Customer. Now, the query that the EDI Contact h
-
Need to add correct County to list when registering
Not a big deal, but I live on the Isle of Anglesey, NOT in Gwynedd. The county of Gwynedd is the nearest, but starts 22 miles away on Welsh mainland. The Isle of Anglesey is a county on its own. How do I get in touch with Adobe to get them to add my
-
Media center pc m8020n keeps freezing with windows 7 home premium
I recently updated my OS from vista business to windows 7 home premium and since then I have problems with constant freezing. I have tried to reinstall new OS over start over fresh with my hard drives reformatted and still the same issues. The comput