Structured products (BOM explosion) in Marketing Campaign
Hi all,
I try to manage BOM explosion of structured products when a structured product is introduced into a marketing campaing.
Is it possible? In help.sap.com says "If the product is a structured product, you cannot explode to the product items. If you want to explode a structured product, you can either implement a Business Add-In (BAdI) or assign the structured product's items individually." but i don't find this BAdI.
Can anyone help me?
Thank you.
Hi Anup,
These BAdIs are for material data exchange between SAP CRM and SAP R3.
I need to explode Structured Products in campaign in SAP CRM.
Thank you.
Similar Messages
-
Report for Cost of Multiple products with Multilevel BOM explosion
Hi,
Our client has a requirement of a report showing standard cost estimate of multiple FG products, with multi-level BOM explosion.
In short, the requirement is to get a CK13N report for multiple products.
Has anyone come across such requirement? The requirements seems to be very normal.
But, I have not seen any standard report for the same. If there is any, please suggest.
or suggest a better solution for the same.
Thanks in advance. Pts guaranteed.Hi,
I totally agree with you that this is a totally vague requirement.
However, let me share the reason for such client requirement.
We have a customer, for which we produce certain parts for select models. Now, the arrangement with customer for pricing is based on the raw material and other production cost for all such parts. Based on the fluctuations in cost, the pricing would be finalised.. on a monthly or quarterly basis.
For this purpose, the customer requires to know the raw materials used in each of the part.
Individually it could have been managed. But the price change in terms of % is decided at global level and not for each part.
Please suggest -
BOM explosion from Production Order
Hi All,
I understand from SAP Help files that we can explode BOM from Production Order using Read PP Master Data. But it also says, that we cannot do this if items have already been issued out. So would like to know is there anyway out to ensure that the production order is reading the latest version of BOM.
The reason i want to know is because, at present the BOM keeps getting updated & so the work order has to reflect the new items. The BOM contains about 300 or more items, so manual changes is very tedious & error prone at the moment. Furthermore some components are outsourced. So i want to receive them back & post new materials for them. Hope my problem is clear & await inputs
VivekHi All,
Thanks for the inputs. I think for the situation am facing, the Order change management method, should be of help, as the BOM changes does not take place on scheduled dates, for me to fix the BOM explosion dates & assign them. As of now the BOM gets changed, depending the customer requirements, which is unpredictable.
Clarification required:
1. The profile which is created using OPL7 & assigned in OPL9 is unique, i.e. for any change numbers of BOM will always follow the profile entered in 'Overall Profile' in Work Scheduling view & i do not need to create new profiles for each new change number of BOM
2. Once i run the COCM with the new change number, in the production order - components view will i be able to see any error message for those items which no longer feature in the new version of BOM? & will the materials added in the new BOM automatically feature in that list or do i have to manually add these to the order & if so, how will i know which materials need to be added?
Hope the clarifications sought are clear, await inputs
Vivek -
Relation between marketing campaign and product ID?
hi,
1. I need the relation b/w marketing campaign (external ID) and Product ID.Hi Sheen
I'm not sure if I understand your question.
If you wish to view Marketing Attributes linked to a Business Partner use Transaction BP locate the relevant BP then click on the Marketing Attributes Tab.
Marketing Attributes are linked to Set Types.
Hope this helps
Regards
Arden -
Exit for production order creation that update BOM explosion date
Hi Guros
does any one know a user exit for production order creation that update BOM explosion date = AUFLD.
or a UE that run before the BOM explosion.
thanks.Dear,
I dont think user exist will work for you,
You need to find BAdi for it, cl_exithandler=>get_class_name_by_interface .
Or try with SE84,
Enter the package name and check the " Enhancements"
Regards,
R.Brahmankar -
Date of BOM Explosion/Routing in the production order
Dear gurus,
i would like have the Date of BOM Explosion/Routing in the production order same the "Basic start date" .
I setting the value 1 = Basic start DATE in the customizing transaction OPPQ and OPPR but the system calculate this date wrong.
Are the the other setting for this necessity ?
Thanks a lot
Daniele
PP TEAMDear Toto,
The standard procedure is that the system first checks whether a BOM explosion number exists for the BOM. If one does exist,
the BOM is exploded using the fixed key date contained in the BOM explosion number. If a BOM explosion number does not exist,
the BOM is exploded with the order start date.
Check the setting in OPPQ for BOM explosion.
Regards
S Mangalraj -
Production Order, BOM explosion
Hello Guru,
I have a production order, which when view the Administration tab of it's creation was on 30.01.2009, but in the General Tab it start/finish date was 01.02.2009. And the confirmation was 02.02.2009. One of the component of the FG material for this order was subject for material substitution with change number effective on 01.02.2009. When i check the BOM list of the order it still display the old component A, but in its confirmation goods movement it already use component B the component A seen in the BOM list of the order was not been goods movement on the confirmation. How this happen? And also can you explain to me during creation, release,confirmation of order when is the time it really explode BOm for the Fg material?
ThanksThanks Vivek it is clear to me the since the confirmation was been establish effective of the bom change.
But it is still not clear to me that the creation date of the order was 30.01.2009 and its start/finsih date in general tab is 01.02.2009, how was this happen?
And please explain to me the process of BOM explosion, that will be registed in the Master Data tab of the order, when this was really exploded? in the creation, released,confirmed? since in the master data it tells that BOM explosion was on 01.02.2009.
Could you help me interpret the status change done in the order,
BASC batch change assignment complete active 02.02.2009
BCRQ order to be handle in batches active 30.01.2009
BNAS batch not assigned inactive 02.02.2009, active 02.02.2009
CNF confirmed active 03.02.2009
CRTD created inactive 02.02.2009, active 30.01.2009
DLV delivered active 03.02.2009
EXPL external conv. of planned order active 30.01.2009
EXTS change by external system active 30.01.2009
GMPS goods movement posted active 02.02.2009
MACM material commited active 02.02.2009
MANC mat. availability not checked inactive 30.01.2009, active 30.01.2009
MSPT material shortage inactive 02.02.2009, active 30.01.2009
NTUP dates are not updated inactive 30.01.2009, active 30.01.2009
PCNF partially confirmed inactive 03.02.2009, active 02.02.2009
PDLV partially delivered inactive 03.02.2009, active 02.02.2009
PRC pre-costed active 30.01.2009
REL released inactive 03.02.2009, active 02.02.2009
SETC settlement rule created active 30.01.2009
TECO technically complete active 03.02.2009 -
BOM Explosion based on Production Order Creation
Hi PP Guru,
My client wants the BOM Explosion date to be based on Production Order creation date. Could you help to advise how to set-up this requirement?
I have showed them these possible System Configuration in BOM explosion, but none of these options are applicable to their current business practice.
<OPPQ> BOM Explosion:
BOM explosion number/order start date
1 Order start date
2 Order finish date
3 BOM explosion number/order start date
4 BOM explosion number/order finish date
Looking forward to you reply.
thanks,
JohnHi Sundaresan,
Thanks for your reply. So do you think there's any other way to fulfill the client's requirement? I was thinking to do the "PP Master Data" instead, in order to choose the date of explosion.
Actually the scenario is this:
Initially the Material XXXXXX has a valid BOM on 03.01.2011 to 12.31.9999, but then, some changes has been made, maybe the user has changed the component or added new component using 04.01.2011 to 12.31.9999 as validity date.
For example, the user created the Production Order (manually in CO01 or from Planned Order conversion) on 03.20.2011 and the Order Star date is 04.01.2011, so the system will copy the updated BOM which is valid on 04.01.2011 to 12.31.9999 (based on Order Start date).
However, the client wants to explode the previous BOM instead (03.01.2011 to 12.31.9999).
Please advise.
Thanks,
John -
CRM Standalone: Single Level BOM for Structured Product
Hi there,
I am working on CRM 5.0 Standalone. I have made a structured product.
Header Product: Prod1 (Item Cat Group: LUMF)
Component Product: Prod2 (Item Cat group: NORM)
I have copied item category TAP (for prod 1) and TAN. (For prod 2)
I am not able to run single level BOm in Sales transaction Type.
Could u Please let me know how to specify the ITEM CAT DETERMINATIOn Pro.
I mean the values one shud have for: (in Item Cat Determination ptoc )
Transaction Type: (I have put my sales tran)
Item Cat Group: Structred Below
Item cat usage (EMPTY)
Main Item Cat (empty)
Item cat ZTAP (copied from TAP)
Alt Item cat ZTAN (copied for TAN without Pricing).
Could u help me with the correct set of entries here so that i may be able to see the BOm in sales transaction.
Note IS BOM possible without the pricing data at the sub item level.
Imp: Pls answer ASAP. ....urgent would award Points
Thanks,Hi Leon,
I have done it, but it does not work.
I am getting the error as "No Item Catagory could be created"
WIsh to know if Pricing has to be necessary here for BOM.
Or any changes u want to suggest in the Prod master.
just to describe the product again its
Prod 1 ( header product) Material, Item cat group : LUMF, Base unti of measure: EA.
Prod 2 . ( Sub item) Material, Item cat group : NORM, Base unti of measure: EA.
FINALLY linked thru relationship Prod 2 is ACCESSORY of PROD 1
Regards -
Opportunity items Single-Level Explosion of structured product
Hi everyone!
Is it possible to configure explosion of a structured products in opportunity?
I've managed to configure it in quotation, but it works there only if quotation is created separately, not as a follow-up transaction.
In opportunity explosion doesn't work at all. And what is interesting, when I'm creating a followup from opportunity, delete copied item in quotation and create the same one again, it explodes but can't determine subitem item category.
What I'm missing here? Please, advise.
Regards,
Alex.
Edited by: Alexander Milshtein on Apr 26, 2011 2:21 PMHi,
I can see that it is possible to configure this.
http://www.youtube.com/watch?v=1XY8T2c1sjU
Does anyone know how to achieve this?
Please advise.
Regards,
Alex. -
How to restrict BOM explosion in Quotation and Sales Order
Dear all,
How can we restrict BOM main item explosion in Sales Order.
this BOM main item is having special order items which have to generate purchase requisition (item category - BANC),
with out exploding bom main item, can we generate a purchase requisition for BOM subitems, can any body explain me that how can we do that.
your suggestions will be highly appreciated.
thank you
Raghu RamHi 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 -
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 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 -
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
dsHI,
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.
Maybe you are looking for
-
Latest round of patches on fabric booted system causes Solaris 10 to hang
I have a fairly stock install of Solaris 10 6/06 on a T2000 which uses a Emulex HBA to boot from Xiotech SAN attached disks. I installed the following patches: 118712 14 < 16 R-- 24 SunOS 5.10: Sun XVR-100 Graphics Accelerator Patch 120050 05 < 06 RS
-
Analytic workspace version error
I am running 10g on WinXP. I am using AWM 10.1.0.4 I connect to the db and am able to view my schemas. When I attempt to create a Workspace in "Model View" I recieve the error "ORA-00904: "O"."SF_VERSION": invalid identifier" Do I need an earlier ver
-
Jnlpdownloadservlet exception downloading jars of a certain size
Using Windows XP Weblogic 10.3.2 Java 1.6.0_17 An exception occurs when downloading jars for the first time with the jnlpdownloadservlet. It occurs for the two largest jars only. from the JnlpDownloadServlet log - JnlpDownloadServlet(3): Request: /ne
-
When expanding folder in list view, finder always go to top. How to stop it?
How to make finder not going to top back again whenever expanding a folder in list view? It just like clicking go to top on a website. i have a lot of subfolder, but when i expand it, finder show back the top list folder(zuupp to the top, grrr!!!), i
-
AS5400 IP fall back routing without Call Manager
Hi guys my system is using AS5400+SLT+PGW, but without call manager.so i guess i have limited functions of Cisco voip, but so far all is well my question is: how can i do IP fall back routing to the same destination, with 2 target IPs.lets say my des