Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

PP BOM data

Former Member
0 Kudos

i am creating one report which will give data of BOM component.

i am using MAST STKO and STPO,

but while debugging i found there are more than one line item are coming in STKO(BOM header ) table itself,

and STPO is not having alternative BOM, STPO is giving all BOM component how to restrict.

so can any body tell how to get correct data from STPO.

regards]

Chandramani

6 REPLIES 6

Former Member
0 Kudos

Hi,

Please check the code below for a similar requirement.

&----


*& Report ZPPPRM_1087_BOM

*&

&----


*&

*&

&----


report zppprm_1087_bom.

include zbom_data_declarartion.

include zbom_selection_screen.

include zform_used.

*initialization

initialization.

prm1 = 'SELECTION'.

prm2 = 'Materials'.

&----


  • START-OF-SELECTION

&----


start-of-selection.

  • Get the data from data base tablees

perform get_data.

*Format the final data

perform final_data.

*Display the final data

perform display_final.

&----


*& Include ZBOM_DATA_DECLARARTION

&----


************************************************************************

  • T Y P E - P O O L S

************************************************************************

tables: mara, "Material Master

mast, "Material to BOM Linkage

stpo. "BOM item

type-pools: slis .

types: begin of ty_mara,

matnr type matnr,

mtart type mtart,

end of ty_mara.

types: begin of ty_mast,

matnr type matnr,

werks type werks_d,

stlan type stlan,

stlnr type stnum,

stlal type stalt,

end of ty_mast.

types: begin of ty_header,

matnr type matnr,

werks type werks_d,

end of ty_header.

types: begin of ty_stpo,

stlty type stlty,

stlnr type stnum,

stlkn type stlkn,

stpoz type cim_count,

idnrk type idnrk,

meins type kmpme,

menge type kmpmg,

preis type cprei,

peinh type peinh,

end of ty_stpo.

types: begin of ty_bom,

matnr type matnr,

werks type werks_d,

idnrk type idnrk,

meins type kmpme,

menge type kmpmg,

end of ty_bom.

  • Internal tables used in the code

data: it_stpo type standard table of ty_stpo,

it_mara1 type standard table of ty_mara,

it_mara2 type standard table of ty_mara,

it_mast type standard table of ty_mast,

it_bom type standard table of ty_bom,

it_header type standard table of ty_header.

  • Work Areas used in the code

data: wa_mast type ty_mast,

wa_stpo type ty_stpo,

wa_mara type ty_mara,

wa_bom type ty_bom,

wa_header type ty_header.

data: v_matnr type mara-matnr.

data: col_pos type i.

data: sortcat type slis_t_sortinfo_alv,

sortcat_ln type slis_sortinfo_alv,

fcat type slis_t_fieldcat_alv,

s_fcat type slis_fieldcat_alv.

data: obj_hieralv type ref to cl_salv_hierseq_table.

data: it_binding type salv_t_hierseq_binding,

wa_binding type salv_s_hierseq_binding.

&----


*& Include ZBOM_SELECTION_SCREEN

&----


*-Declaration of selection screen forthe program-*

selection-screen begin of block blk1 with frame title prm1.

selection-screen begin of line.

selection-screen comment (10) prm2 for field so_matnr.

  • Selection Option.

select-options : so_matnr for v_matnr.

selection-screen end of line.

selection-screen end of block blk1.

&----


*& Include ZFORM_USED

&----


&----


*& Form GET_DATA

&----


  • text

----


form get_data .

*LOADING FINISHED MATERIALS INTO AN INTERNAL TABLE

select matnr

mtart

into table it_mara1

from mara

where matnr in so_matnr

and mtart = 'FERT'.

if sy-subrc = 0.

sort it_mara1 by matnr.

endif.

*LOADING CORRESPONDING FROM Material to BOM LINK TABLE

if it_mara1 is not initial.

select matnr

werks

stlan

stlnr

stlal

into table it_mast

from mast

for all entries in it_mara1

where matnr = it_mara1-matnr .

if sy-subrc = 0.

sort it_mast by stlnr.

  • loop at it_mast into wa_mast.

  • move-corresponding wa_mast to wa_header.

*

  • append wa_header to it_header.

  • endloop.

endif.

endif.

*LOADING CORRESPONDING BOM COMPONENTS FRON BOM ITEM TABLE

if it_mast is not initial.

select stlty

stlnr

stlkn

stpoz

idnrk

meins

menge

preis

peinh

from stpo

into table it_stpo

for all entries in it_mast

where stlnr = it_mast-stlnr.

if sy-subrc eq 0.

sort it_stpo by stlnr.

endif.

endif.

*LOAD SEMIFINISHED MATERIAL

select matnr

mtart

from mara

into table it_mara2

where mtart = 'HALB'.

if sy-subrc eq 0.

sort it_mara2 by matnr.

endif.

endform. " GET_SELECT

&----


*& Form FINAL_data

&----


  • text

----


form final_data .

loop at it_stpo into wa_stpo.

clear wa_mara.

read table it_mara2 into wa_mara

with key matnr = wa_stpo-idnrk

binary search.

if sy-subrc ne 0.

continue.

else.

read table it_mast into wa_mast

with key stlnr = wa_stpo-stlnr

binary search.

if sy-subrc eq 0.

clear wa_bom.

wa_bom-matnr = wa_mast-matnr.

wa_bom-werks = wa_mast-werks.

wa_bom-idnrk = wa_stpo-idnrk.

wa_bom-meins = wa_stpo-meins.

wa_bom-menge = wa_stpo-menge.

collect wa_bom into it_bom.

move-corresponding wa_mast to wa_header.

append wa_header to it_header.

endif.

endif.

endloop.

sort it_header by matnr werks.

sort it_bom by matnr werks idnrk.

delete adjacent duplicates from it_header comparing matnr werks.

endform. " FINAL_data

&----


*& Form display_summary

&----


  • text

----


form display_final.

wa_binding-master = 'MATNR'.

wa_binding-slave = 'MATNR'.

append wa_binding to it_binding.

*Process of binding the header and BOM info in hirarchial form

try.

call method cl_salv_hierseq_table=>factory

exporting

t_binding_level1_level2 = it_binding

importing

r_hierseq = obj_hieralv

changing

t_table_level1 = it_header

t_table_level2 = it_bom.

catch cx_salv_data_error .

catch cx_salv_not_found .

endtry.

*to dispay the info

call method obj_hieralv->display.

endform.

Hope this will help you,

Murthy.

0 Kudos

include zbom_data_declarartion.

include zbom_selection_screen.

include zform_used.

what abt thes?

0 Kudos

I have enclosed the code that I have written in the includes also please go through the code care fully.

And coming to the function module using which you can find the BOM is below.

FM. CS_BOM_EXPL_MAT_V2

The required fields for this function module are :

Material

Plant

Date

Application(CAPID)

Values for CAPID can be found in table TC04

For production BOM it is PP01 .

Hope this information will help you.

Murthy.

0 Kudos

i have done through stko stas and stpo table.

Former Member
0 Kudos

There are standard functions to read a BOM.

0 Kudos

please tell that function