Overall BOM Details
Hi friends,
Please an anybody answer to my following:
1) T-code to display overall BOM of all Finsihed goods (FG) i.e., if suppose i put a range for FG say 1000 to 1999 then the overall BOM of those FG should display
2) How can i insert a image to my BOM
3) How can i view long text in all BOM through display T-code
4) How can i delete the BOM permanent from the system
5) How can i create my own display of BOM through Z
it will be very help if you answer me this question. Thanks in advance have a nice day.
Dear Phalgun,
1.Is there any business requirement to view all the BOM details of all finishes goods?If so i will suggest you to develop a Z report
using the functional module CS_BOM_EXPL_MAT_V2,but however make some restriction for the maximum no of entries that is
allowed to view or download.
2.You can attach the drawings as document items (as BOM component using the item category D) by first creating documents
using CV01N.
3.You can use long text functionality to enter the long text for each component under item details.
4.For BOM deletion check this link,
http://help.sap.com/saphelperp60_sp/helpdata/en/ea/e9bc124c7211d189520000e829fbbd/content.htm_
Regards
Mangalraj.S
Similar Messages
-
How to created exit for CS02 transaction to maintain bom details of a mater
hi ,
plz explain how to created exit for CS02 transaction to maintain BOM details of a material. what is the BOM component . give me sample example.Hi,
these are the user-exits for CS02
Transaction Code - CS02 Change Material BOM
Exit Name Description
PCSD0001 Applications development R/3 BOMS
PCSD0002 BOMs: Customer fields in item
PCSD0003 BOMs: Customer fields in header
PCSD0004 BOM comparison
PCSD0005 BOMs: component check for material items
PCSD0006 Mass changes user exit
PCSD0007 Check changes in STKO
PCSD0008 WBS BOM: Customer-specific explosion for creating
PCSD0009 Order/WBS BOM, determine URL page
PCSD0010 Order/WBS BOM, determine explosion date
PCSD0011 Knowledge-based order BOM, parallel update
PCSD0012 Customer - Mat. number/mat. number during material exchange
PCSD0013 Customer-specific processing of an explosion for BOM browser
Regards
Nilesh -
Function module to get the BOM details for a material-plant combination
hi
Is there any function module to get the BOM details such as
BOM Usage -STLAN
Alternative BOM -STLAL
Items -POSNR
Required Quantity-EMENG
Resulting Quantity-MENGE
Unit of measure -BMEIN
Base unit of measure-MEINS
for a given material-plant combination
if so please suggest me some FMs.................
Awaiting for ur reply..............try the below fm it may be useful for you
DATA : BEGIN OF I_BOM OCCURS 0.
INCLUDE STRUCTURE STPOX.
DATA : END OF I_BOM.
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
CAPID = 'PP01'
DATUV = SY-DATUM
MEHRS = 'X'
MTNRV = P_MATNR
WERKS = P_WERKS
TABLES
STB = I_BOM
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
CONVERSION_ERROR = 8
OTHERS = 9.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
just befor use it check your application area.for my case it is PP01. you can find it in CS12 when you are exploding the bom the value you are giving in BOM application that is the value for CAPID.
Just go to se37 and checkout the fm it has lot of options here I am using the minimum things.
regards
shiba dutta -
BOM Details in to a Purchase and Sales Documents
Hi
How to get BOM Details in to a Purchase and Sales Documents (With COmponentItems Details).Hi Chakrapani Bandaru,
According to our knowledge, only BOM of 'Sales' type can be displayed with its components together in Sales documents. But this kind of BOM can not be selected in Purchase documents since they can not be 'Purchased Item' (Item Master Data).
Additionally, BOM of 'Template' type can also display its components in Sales/Purchase documents, but in a different way. The parent and its children are parallel in the documents.
Regards,
Candice Ren
SAP Business One Forums Team -
Hai All,
I am developing 1 report of BOM details.
In the below query, I am joining Marc and plpo table.
But no data is coming to i_final internal table.
I am not able to find out the reason. Please help me.
SELECT a~matnr
a~werks
a~basmg
a~bstmi
a~bstma
b~meinh
b~ltxa1
b~vgw01
b~vge01
b~vgw02
b~vge02
b~lifnr
b~istnr
INTO CORRESPONDING FIELDS OF TABLE i_final
FROM marc AS a INNER JOIN plpo AS b
ON aplnnr = bplnnr
FOR ALL ENTRIES IN i_stpo
WHERE a~matnr = i_stpo-idnrk.Hi Kavitha ,
U can try it by spliting the query into two parts like below may be it will help u out.
SELECT matnr
plnnr
werks
basmg
bstmi
bstma
INTO CORRESPONDING FIELDS OF TABLE i_final
FROM marc
FOR ALL ENTRIES IN i_stpo
WHERE matnr = i_stpo-idnrk.
once i_final is populated with these entries u can move further as:-
make another table it_final having fields matnr
werks
basmg
bstmi
bstma
and
meinh
plnnr
ltxa1
vgw01
vge01
vgw02
vge02
lifnr
istnr and
select.
SELECT meinh
plnnr
ltxa1
vgw01
vge01
vgw02
vge02
lifnr
istnr
INTO CORRESPONDING FIELDS OF TABLE it_final
FROM plpo
FOR ALL ENTRIES IN i_final
where plnnr =it_final-plnnr.
now
loop at it_final.
l_index = sy-tabix.
read table i_final with key plnnr = i_final-plnnr.
if sy-subrc = 0.
modify it_final index l_tabix transporting matnr werks basmg bstmi bstma.
endif.
endloop.
or
select plnnr as well in ur query.
hope this solves ur problem
Thanks & Regards,
Ruchi Tiwari
Edited by: Ruchi Tiwari on Mar 2, 2009 8:40 AM -
Getting BOM Details of a material
Hi All
I have a scenario where I want to get the BOM details of a material.
I have displayed the sales order details and want to see if the BOM exists for the line item or not.
when I double click on the line item it should take me to the next screen where the BOM details of the material should appear.
But I am not aware how to use the FMs 'CAVC_C_EXECUTE', 'CAVC_C_GET_INSTANCES' and similar FMs ans what should be there sequence?
If any one knows about these FMs and there use, please help me.
Thanks in Advance
Lalit GuptaUse these function modules.
CSAI_BOM_READ.
CS_BOM_EXPL_MAT_V2.
You can also use FM CS_WHERE_USED_MAT to check if material bom exists for BOM component. -
Hi what tcode/s to use to generate report of BOM with details of internal and external activities and also their cost per item. thanks
Hi
You can use following transactions to view BOMs
CS11 for material BOMs and CSPB for order BOMs.
Regards
Srikrishna -
Query to showed all level of BOM details, sort by create/update date
Hi expert,
I need a query to display all the level of BOM and can be sort by create / update date.
The display of query should be as below:
A (1st level) Parent BOM
B (2nd level) Child BOM 1
B (2nd level) Child BOM 2
C (3rd level) Child BOM 2 - 1
C (3rd level) Child BOM 2 - 2
B (2nd level) Child BOM 3
B (2nd level) Child BOM 4
Below is the BOM query that can only display up to 2nd level and cannot sort by date.
Can someone please help to modify or there is a better query?
Thanks
Declare @BOMDetails table(TreeType Nvarchar(MAX),PItem NVARCHAR(Max),PName NVARCHAR(MAX),CItem NVARCHAR(Max),CName NVARCHAR(MAX),[Quantity] Numeric(18,2),[UoM] NVARCHAR(MAX),[WareHouse] NVARCHAR(MAX),[IssuMethod] NVARCHAR(MAX),[PriceList] NVARCHAR(MAX))
INSERT Into @BOMDetails
SELECT T1.TreeType ,T0.Father AS [Parent Code], T2.ItemName AS [Parent Description], T0.Code AS [Child Code],
T1.ItemName AS [Child Description], T0.Quantity ,T0.Uom ,T0.Warehouse ,T0.IssueMthd,T0.PriceList
FROM ITT1 T0 INNER JOIN OITM T1 ON T0.Code = T1.ItemCode
INNER JOIN OITM T2 ON T0.Father = T2.ItemCode
Union All
SELECT ' ',T0.Father as [Parent Code], T2.ItemName AS [Parent Description], ' ', ' ', 0, ' ',' ',' ' , 0 FROM ITT1 T0 INNER JOIN OITM T1
ON T0.Code = T1.ItemCode INNER JOIN OITM T2 ON T0.Father = T2.ItemCode
Group By T0.Father,T2.ItemName
ORDER BY T0.Father,t0.Code
update @BOMDetails set PItem='' ,PName='' where TreeType='N' or TreeType='P'
Select PItem as[Parent Code] ,PName as [Parent Description],CItem as [Child Code],CName as [Child Description],Quantity,UoM,IssuMethod ,PriceList from @BOMDetailsHi,
Try this query and modify as per your requirement:
SELECT
T0.[Father] as
'Assembly',T0.[code] as 'Component1', t10.[ItemName]
'Description1',T1.[Code] as 'Component2', t11.[ItemName]
'Description2', T2.[Code] as 'Component3', t12.[ItemName]
'Description3', T3.[Code] as 'Component4', t13.[ItemName]
'Description4',T4.[Code] as 'Component5', t14.[ItemName]
'Description5', T5.[Code] as 'Component6', t15.[ItemName]
'Description6'
FROM
ITT1 T0 LEFT OUTER
JOIN ITT1 T1 on T0.Code = T1.Father LEFT OUTER JOIN ITT1 T2 on
T1.Code = T2.Father LEFT OUTER JOIN ITT1 T3 on T2.Code = T3.Father
LEFT OUTER JOIN ITT1 T4 on T3.Code = T4.Father LEFT OUTER JOIN ITT1
T5 on T4.Code = T5.Father LEFT OUTER JOIN ITT1 T6 on T5.Code =
T6.Father left outer join oitm t20 on t0.father = t20.itemcode left
outer join oitm t10 on t0.code = t10.itemcode left outer join oitm
t11 on t1.code = t11.itemcode left outer join oitm t12 on t2.code =
t12.itemcode left outer join oitm t13 on t3.code = t13.itemcode left
outer join oitm t14 on t4.code = t14.itemcode left outer join oitm
t15 on t5.code = t15.itemcode
Thanks & Regards,
Nagarajan -
Hi,
I need to know the sub part no for a specific part no.
I request you to also tell me how will I know which is the mail part no and the sub part related to it.
I need to get the details for the subpart whoses quantity is less for production purpose.
Need the fields which I need to work on.
Regards,
KamleshHi,
Check the tables..
MAST
STKO
STPO
STZU..
THanks,
Naren -
Hi experts,
If I want to extract the component details of a particular assembled product; just like how it shows up in PDS, where exactly can i get that info...
I mean, if I want to create a report that this particular assembled product has all this components, then, from where that data can be pulled....
Thanks for your answers...Hi
I think you can create a query based on /sapapo/curtowul and /sapapo/curtosnp tables in APO. To the best of my knowledge , i dont think there is a standard report in APo for this.
Please refer to this wiki
http://wiki.sdn.sap.com/wiki/display/SCM/SCMUsefulTables
It has the list of all SCM tables
Thanks
Aparna -
Configured material BOM table details requried for component list
Hi PLM Experts,
As per the client requirement, we need to activate one sales condition type based on Super BOM components list. To define a logic for the above requirement, to list out the component we checked in STPO Table and in this table its appearing only the phantham materials not the real BOM of the component is appearing.
So can you please suggest the table name where i can find the Bill Of Material of my Finished Product (Configured material) in the Table level.
Warm Regards.
Velmurugan PThanks Ajit.
But the problem still persist. The tables you have listed will suits for regular BOM compoents list. But we want to know the Table / procedure details in case of Configured material BOM details. Because for configured materials the BOM will be determined during sales order (Planned order) only.
This BOM of configured material won't get stored in the table you have listed. As per our requirement we are looking for table details where we can list out the components list to perform the additional charges in the sales order based on BOM.
Warm Regards,
VEL -
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 -
Need to show data related to Process order request , BOM in a smart form
Hi,
I need to show data related to
Process order request
BoM
Now in selection screen we are entering the followings.
Manufacturing Plant ,MRP Controller, Production scheduler, Order type , Order , Material, Sales order, WBS Element,Release,Scheduled start, Scheduled finish ,Selection profile.
how to get 1> Process Order number,Produced Material,Material Description,Print date,Narcotics indicator , Quantity produced , Phase number , Phase description ,Resource description,Standard value to show in a request form.
2> Item category ,Component code,Component description , Component quantity ,Component Unit of measure ,BoM base quantity.
Please help me how to get those values , what should be the aaproach , how to write the select quiry.
ThanksHi
To get BOM details, do the following:
1. Use the material number and goto Article to BOM link table (MAST) to get STLNR (BOM).
2. With this STLNR, goto STPO table (where STLNR is the key field). Here you will get all the BOM details like components (IDNRK), UoM (MEINS) etc....
Hope this helps.
THanks
Vijay
<b>PLZ REWARD POINTS IF HELPFUL</b> -
BOM explosion in process order
Dear PP experts
In my scenario, the sales order and process orders for the corresponding line items got generated by uploading some details of master contract through some Z code. The client provide me details regarding the BOM for the process orders from their third party software, which process through XI. I have to trigger that bom into process order. for that i first maintain the bom details in CS61 and then trigger the "Read Master Data" in process order manually. Now i have to do it automatically. means when the BOMvdata flows from third party software, it should get updated in cs61 and simontaneously "read master dat" should get triggered. how can i do this. please suggestHi,
Check for any BAPI / Function Module in SE37 which can fulfill your requirement.
Search BAPI with SAP component ---> PP option in search help(F4).
Regards,
Tejas -
URGENT: REGARDING BOM EXPLORE REPORT
HI,
I making dis report and i want to display the BOM Explosion in which i have to display the output whihc conatins the details of it. I am sending my code in whihc it displays correct for 1 BOM but when comes to miultiple BOM it has following problem:-
1.) The materaial no does not change on the top of report .
2.) The DIVSION No. of the some of the materails are displayed and some of dem are not displaying.
plzz help me out with dis problem as help will be definately rewarded.
REPORT ZTET1.
TABLES: MBEW, "Material Valuation
MSLB, "Special stocks with vendor
MARA, "Material Master
MAKT, "Material Descriptions
MARD, "Material Master: Storage Location/Batch Segment
MAST, "BOM Header
STKO, "BOM Detail
STPO, "Bom Components
STAS. "BOM Alternative
Text Elements
Plant
SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
Material
S_MATNR FOR MAST-MATNR,
Material Type
S_MTART FOR MARA-MTART.
Base Quantity
PARAMETERS: S_BASE TYPE I DEFAULT '1'.
Display up to Level
PARAMETERS: S_LVL TYPE I DEFAULT '99'.
PARAMETERS: stlal type mast-stlal default '01'.
SELECTION-SCREEN SKIP.
Include Vendor Stock
PARAMETERS: X_MSLB AS CHECKBOX.
DATA: W_MATNR LIKE MAPL-MATNR.
DATA: PARENT_MATNR LIKE MAST-MATNR,
CHILD_MATNR LIKE STPO-IDNRK,
CHILD_WERKS LIKE MAST-WERKS,
CHILD_STLAL LIKE MAST-STLAL,
W_MAKTX LIKE MAKT-MAKTX,
W_STD TYPE P DECIMALS 5,
W_MAV TYPE P DECIMALS 5,
W_MENGE TYPE P DECIMALS 3,
W_LEVEL TYPE I,
W_DOT(1),
W_LVL(12),
W_LVL1(12),
W_LVL2(2),
W_COL TYPE I,
W_LFLAG,
W_TTL LIKE MARD-LABST.
DATA: SPART LIKE MARA-SPART.
DATA: BEGIN OF INT1 OCCURS 50,
LGORT(6),
LABST LIKE MARD-LABST,
END OF INT1.
IF S_BASE EQ 0.
S_BASE = 1.
ENDIF.
append multi level routing
SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
MATNR IN S_MATNR and stlal = stlal.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
write: 'aaaaa', sy-dbcnt.
SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
MTART IN S_MTART.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
IF MARA-LVORM <> 'X'.
PARENT_MATNR = MAST-MATNR.
CHILD_MATNR = MAST-MATNR.
CHILD_WERKS = MAST-WERKS.
CHILD_STLAL = MAST-STLAL.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
SPRAS = 'E'.
W_MAKTX = MAKT-MAKTX.
REFRESH INT1.
SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
WERKS = MAST-WERKS AND
LABST NE 0.
MOVE MARD-LGORT TO INT1-LGORT.
MOVE MARD-LABST TO INT1-LABST.
APPEND INT1.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
WERKS EQ MAST-WERKS AND
LBLAB NE 0.
MOVE MSLB-LIFNR TO INT1-LGORT.
MOVE MSLB-LBLAB TO INT1-LABST.
APPEND INT1.
ENDSELECT.
ENDIF.
W_LEVEL = 1.
NEW-PAGE.
PERFORM GETCHILD.
ENDIF.
ENDSELECT.
get child parts
FORM GETCHILD.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
AND STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = MAST-STLAL.
IF SY-SUBRC EQ 0.
CLEAR: W_DOT, W_LVL, W_LVL1.
PERFORM WRT_DTL.
CHILD_MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
ENDIF.
ENDSELECT.
ENDFORM.
get grand children parts
FORM SUBCHILD.
SELECT SINGLE * FROM MAST WHERE MATNR = CHILD_MATNR
AND WERKS = CHILD_WERKS.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = STKO-STLAL.
IF SY-SUBRC EQ 0.
W_DOT = '.'.
PERFORM WRT_DTL.
CHILD_MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
SHIFT W_LVL.
ENDIF.
ENDSELECT.
ENDFORM.
TOP-OF-PAGE.
WRITE:/ SY-DATUM,SY-UZEIT,
85 'ABC PTE LTD',
182 'Page', SY-PAGNO.
WRITE: / SY-REPID,
75 'BOM STRUCTURE (WITH LOCATION BALANCES)',
182 SY-UNAME.
SKIP.
CLEAR W_LFLAG.
WRITE:/ 'Material No.:', PARENT_MATNR,
60 'Plant :', MAST-WERKS.
W_COL = 90.
CLEAR W_TTL.
**LOOP AT INT1.
IF W_COL > 195.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
W_LFLAG = 'X'.
W_COL = 90.
ELSE.
W_COL = 90.
SKIP.
ENDIF.
ENDIF.
WRITE AT W_COL 'Loc :'.
W_COL = W_COL + 6.
WRITE AT W_COL INT1-LGORT.
W_COL = W_COL + 7.
WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
W_COL = W_COL + 16.
W_TTL = W_TTL + INT1-LABST.
**ENDLOOP.
**IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
90 'Total :', W_TTL LEFT-JUSTIFIED.
**ELSE.
WRITE AT W_COL 'Total :'.
W_COL = W_COL + 8.
WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
**ENDIF.
SKIP.
ULINE.
WRITE: /001 'Level',
011 'Item',
017 'Component',
037 'Description',
079 ' Per',
089 'UOM',
094 ' Std Price',
106 'Moving Avg',
119 'Location',
128 ' Balance',
139 'Location',
148 ' Balance',
159 'Location',
168 ' Balance',
179 'Total Quantity'.
ULINE.
FORM WRT_DTL.
CLEAR: MAKT-MAKTX, W_MAV, W_STD.
SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
SPRAS = 'E'.
SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
BWKEY = MAST-WERKS.
IF SY-SUBRC = 0.
W_MAV = MBEW-VERPR / MBEW-PEINH.
W_STD = MBEW-STPRS / MBEW-PEINH.
ENDIF.
W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
W_LVL2 = W_LEVEL.
CONCATENATE W_DOT W_LVL INTO W_LVL.
CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = MAST-MATNR.
SELECT SINGLE SPART FROM MARA INTO SPART WHERE MATNR = STPO-IDNRK.
WRITE: /001 ' ',
011 STPO-POSNR,
017 STPO-IDNRK,
037 MAKT-MAKTX,
079 SPART.
079(8) W_MENGE,
089 STPO-MEINS,
094(10) W_STD,
106(10) W_MAV.
W_COL = 119.
CLEAR W_TTL.
SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LABST NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL MARD-LGORT.
W_COL = W_COL + 5.
WRITE AT W_COL(13) MARD-LABST.
W_COL = W_COL + 15.
W_TTL = W_TTL + MARD-LABST.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LBLAB NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL(6) MSLB-LIFNR.
W_COL = W_COL + 6.
WRITE AT W_COL(12) MSLB-LBLAB.
W_COL = W_COL + 14.
W_TTL = W_TTL + MSLB-LBLAB.
ENDSELECT.
ENDIF.
WRITE AT 179(15) W_TTL.
ENDFORM.Hi Ric
hope this will help you.
pls reward if help.
REPORT ZMULTIBOM NO STANDARD PAGE HEADING LINE-SIZE 195
LINE-COUNT 60(2) MESSAGE-ID Z1.
TABLES: MBEW, "Material Valuation
MSLB, "Special stocks with vendor
MARA, "Material Master
MAKT, "Material Descriptions
MARD, "Material Master: Storage Location/Batch Segment
MAST, "BOM Header
STKO, "BOM Detail
STPO, "Bom Components
STAS. "BOM Alternative
Text Elements
Plant
SELECT-OPTIONS: S_WERKS FOR MAST-WERKS DEFAULT 'CA',
Material
S_MATNR FOR MAST-MATNR,
Material Type
S_MTART FOR MARA-MTART.
Base Quantity
PARAMETERS: S_BASE TYPE I DEFAULT '1'.
Display up to Level
PARAMETERS: S_LVL TYPE I DEFAULT '99'.
SELECTION-SCREEN SKIP.
Include Vendor Stock
PARAMETERS: X_MSLB AS CHECKBOX.
DATA: W_MATNR LIKE MAPL-MATNR.
DATA: PARENT-MATNR LIKE MAST-MATNR,
CHILD-MATNR LIKE STPO-IDNRK,
CHILD-WERKS LIKE MAST-WERKS,
CHILD-STLAL LIKE MAST-STLAL,
W_MAKTX LIKE MAKT-MAKTX,
W_STD TYPE P DECIMALS 5,
W_MAV TYPE P DECIMALS 5,
W_MENGE TYPE P DECIMALS 3,
W_LEVEL TYPE I,
W_DOT(1),
W_LVL(12),
W_LVL1(12),
W_LVL2(2),
W_COL TYPE I,
W_LFLAG,
W_TTL LIKE MARD-LABST.
DATA: BEGIN OF INT1 OCCURS 50,
LGORT(6),
LABST LIKE MARD-LABST,
END OF INT1.
IF S_BASE EQ 0.
S_BASE = 1.
ENDIF.
append multi level routing
SELECT * FROM MAST WHERE WERKS IN S_WERKS AND
MATNR IN S_MATNR.
SELECT SINGLE * FROM MARA WHERE MATNR = MAST-MATNR AND
MTART IN S_MTART.
IF SY-SUBRC NE 0.
CONTINUE.
ENDIF.
IF MARA-LVORM <> 'X'.
PARENT-MATNR = MAST-MATNR.
CHILD-MATNR = MAST-MATNR.
CHILD-WERKS = MAST-WERKS.
CHILD-STLAL = MAST-STLAL.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR AND
SPRAS = 'E'.
W_MAKTX = MAKT-MAKTX.
REFRESH INT1.
SELECT * FROM MARD WHERE MATNR = MAST-MATNR AND
WERKS = MAST-WERKS AND
LABST NE 0.
MOVE MARD-LGORT TO INT1-LGORT.
MOVE MARD-LABST TO INT1-LABST.
APPEND INT1.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR EQ MAST-MATNR AND
WERKS EQ MAST-WERKS AND
LBLAB NE 0.
MOVE MSLB-LIFNR TO INT1-LGORT.
MOVE MSLB-LBLAB TO INT1-LABST.
APPEND INT1.
ENDSELECT.
ENDIF.
W_LEVEL = 1.
NEW-PAGE.
PERFORM GETCHILD.
ENDIF.
ENDSELECT.
get child parts
FORM GETCHILD.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR
AND STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = MAST-STLAL.
IF SY-SUBRC EQ 0.
CLEAR: W_DOT, W_LVL, W_LVL1.
PERFORM WRT_DTL.
CHILD-MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
ENDIF.
ENDSELECT.
ENDFORM.
get grand children parts
FORM SUBCHILD.
SELECT SINGLE * FROM MAST WHERE MATNR = CHILD-MATNR
AND WERKS = CHILD-WERKS.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
SELECT * FROM STPO WHERE STLNR = MAST-STLNR
ORDER BY POSNR.
SELECT SINGLE * FROM STKO WHERE STLNR = STPO-STLNR AND
STLAL = MAST-STLAL.
SELECT SINGLE * FROM STAS WHERE STLNR = STPO-STLNR AND
STLKN = STPO-STLKN AND
STLAL = STKO-STLAL.
IF SY-SUBRC EQ 0.
W_DOT = '.'.
PERFORM WRT_DTL.
CHILD-MATNR = STPO-IDNRK.
W_LEVEL = W_LEVEL + 1.
IF W_LEVEL <= S_LVL.
PERFORM SUBCHILD.
ENDIF.
W_LEVEL = W_LEVEL - 1.
SHIFT W_LVL.
ENDIF.
ENDSELECT.
ENDFORM.
TOP-OF-PAGE.
WRITE:/ SY-DATUM,SY-UZEIT,
85 'ABC PTE LTD',
182 'Page', SY-PAGNO.
WRITE: / SY-REPID,
75 'BOM STRUCTURE (WITH LOCATION BALANCES)',
182 SY-UNAME.
SKIP.
CLEAR W_LFLAG.
WRITE:/ 'Material No.:', PARENT-MATNR,
60 'Plant :', MAST-WERKS.
W_COL = 90.
CLEAR W_TTL.
LOOP AT INT1.
IF W_COL > 195.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED.
W_LFLAG = 'X'.
W_COL = 90.
ELSE.
W_COL = 90.
SKIP.
ENDIF.
ENDIF.
WRITE AT W_COL 'Loc :'.
W_COL = W_COL + 6.
WRITE AT W_COL INT1-LGORT.
W_COL = W_COL + 7.
WRITE AT W_COL(12) INT1-LABST LEFT-JUSTIFIED.
W_COL = W_COL + 16.
W_TTL = W_TTL + INT1-LABST.
ENDLOOP.
IF W_LFLAG IS INITIAL.
WRITE:/ 'Description :', W_MAKTX,
60 'Base Qty :', S_BASE LEFT-JUSTIFIED,
90 'Total :', W_TTL LEFT-JUSTIFIED.
ELSE.
WRITE AT W_COL 'Total :'.
W_COL = W_COL + 8.
WRITE AT W_COL W_TTL LEFT-JUSTIFIED.
ENDIF.
SKIP.
ULINE.
WRITE: /001 'Level',
011 'Item',
017 'Component',
037 'Description',
079 ' Per',
089 'UOM',
094 ' Std Price',
106 'Moving Avg',
119 'Location',
128 ' Balance',
139 'Location',
148 ' Balance',
159 'Location',
168 ' Balance',
179 'Total Quantity'.
ULINE.
FORM WRT_DTL.
CLEAR: MAKT-MAKTX, W_MAV, W_STD.
SELECT SINGLE * FROM MAKT WHERE MATNR = STPO-IDNRK AND
SPRAS = 'E'.
SELECT SINGLE * FROM MBEW WHERE MATNR = STPO-IDNRK AND
BWKEY = MAST-WERKS.
IF SY-SUBRC = 0.
W_MAV = MBEW-VERPR / MBEW-PEINH.
W_STD = MBEW-STPRS / MBEW-PEINH.
ENDIF.
W_MENGE = ( STPO-MENGE / STKO-BMENG ) * S_BASE.
W_LVL2 = W_LEVEL.
CONCATENATE W_DOT W_LVL INTO W_LVL.
CONCATENATE W_LVL W_LVL2 INTO W_LVL1.
WRITE: /001 W_LVL1,
011 STPO-POSNR,
017 STPO-IDNRK,
037 MAKT-MAKTX,
079(8) W_MENGE,
089 STPO-MEINS,
094(10) W_STD,
106(10) W_MAV.
W_COL = 119.
CLEAR W_TTL.
SELECT * FROM MARD WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LABST NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL MARD-LGORT.
W_COL = W_COL + 5.
WRITE AT W_COL(13) MARD-LABST.
W_COL = W_COL + 15.
W_TTL = W_TTL + MARD-LABST.
ENDSELECT.
IF X_MSLB EQ 'X'.
SELECT * FROM MSLB WHERE MATNR = STPO-IDNRK AND
WERKS = MAST-WERKS AND
LBLAB NE 0.
IF W_COL > 166.
W_COL = 119.
WRITE AT /W_COL ' '.
ENDIF.
WRITE AT W_COL(6) MSLB-LIFNR.
W_COL = W_COL + 6.
WRITE AT W_COL(12) MSLB-LBLAB.
W_COL = W_COL + 14.
W_TTL = W_TTL + MSLB-LBLAB.
ENDSELECT.
ENDIF.
WRITE AT 179(15) W_TTL.
ENDFORM.
Maybe you are looking for
-
Acrobat XI Pro automatically closes itself with no messages etc. after few seconds
Greetings all, I don't know why but my Acrobat XI Pro (11.0.0) automatically closes itself (with no warning, no messages etc.) after few seconds. I installed the AXI as a part of the CS6 Master Collection on my Windows 8 (x64) laptop. Just as suggest
-
Error with third party backup tool
Hello Experts, We are using Veritas netbackup to take backups. Veritas backup is showing error 6 after running 7 different successful streams and when I checked from SAP (DB12) it shows successful backup of the system. Can you pls explain why netbac
-
Hi, The following statement returns me an error : BEGIN EXECUTE IMMEDIATE 'INSERT INTO TEXTEST2 (kwd) VALUES (''Test ''''quotes'''' and -dashes--'')'; END; Here is the error : ORA-01401: inserted value too large for column ORA-06512: at line 2 Have y
-
Switch off printer colour management
Hello, I am on a Mac Snow Leopard 10.6.8 and using IDCS5 to print to a Canon Pro 9500 printer. When I get to the print dialog, I can only select colour handling by indesign. There is no option for colour managed by printer which is fine because I wou
-
NokiaMServer and audio files watchup
I noticed that the NokiaMServer application opens and holds the audio files open. I was concatenating multiple audioclips into one single audio file in my music folder. The process ended after some time to a disk write error. After some retrys and di