Hi , I have a scenerio to extarct the billing plan items in my report. When I run the report it gives me the required output but with multiple line items . I am not sure if my sleection is bring in data from both billing plan header as well as billing plan item data . I just need to bring in the data from the item level which will resolve the issue of multiple line items showing up in the report, my selection is as follows , please comment if I am selecting form both the header as well as item level,
IF p_rental = 'X' .
SELECT a~vbeln a~ktext a~erdat a~ernam a~audat a~vbtyp a~auart a~vkorg
a~vtweg a~spart a~vkbur a~guebg a~gueen a~kunnr a~kvgr4
b~posnr b~matnr b~charg b~matkl b~arktx b~pstyv b~zmeng
b~zieme b~kdmat b~werks b~lgort b~vstel b~netpr b~kpein
b~vkaus b~aufnr b~kmein b~shkzg b~oid_extbol b~oid_miscdl b~netwr
b~oidrc b~oid_ship AS kunwe b~zzwprofid c~datbi c~datab b~route
e~fkdat e~nfdat e~fakwr e~fksaf e~afdat
f~fpart f~bedat f~endat f~horiz g~bezei
INTO CORRESPONDING FIELDS OF TABLE gt_sel
FROM vbak AS a
INNER JOIN vbap AS b ON a~vbeln = b~vbeln
INNER JOIN vbkd AS d ON a~vbeln = d~vbeln
INNER JOIN fplt AS e ON d~fplnr = e~fplnr
INNER JOIN fpla AS f ON e~fplnr = f~fplnr
LEFT OUTER JOIN tvlvt AS g ON b~vkaus = g~abrvw
AND g~spras = 'E'
LEFT OUTER JOIN zsdsched AS c ON b~vbeln = c~vbeln
AND b~posnr = c~posnr
WHERE a~vbeln IN s_vbeln
AND a~ktext IN s_ktext
AND a~erdat IN s_erdat
AND a~vbtyp = gc_g
AND a~ernam IN s_ernam
AND a~vkorg IN s_vkorg
AND a~vtweg IN s_vtweg
AND a~spart IN s_spart
AND a~vkbur IN s_vkbur
AND a~guebg IN s_guebg
AND a~gueen IN s_gueen
AND a~auart IN s_auart
AND a~kunnr IN s_kunnr
AND b~oid_ship IN s_kunwe
AND b~werks IN s_werks
AND b~lgort IN s_lgort
AND b~vstel IN s_vstel
AND b~route in s_route
AND b~matnr IN s_matnr
AND e~afdat IN s_afdat
AND e~fksaf IN s_fksaf
AND b~pstyv in s_pstyv.
SORT gt_sel.
IF NOT gt_sel[] IS INITIAL.
** Get Bill-to Party's for Item Lines
SELECT vbeln posnr parvw kunnr INTO CORRESPONDING FIELDS OF TABLE gt_vbpa
FROM vbpa
FOR ALL ENTRIES IN gt_sel
WHERE vbeln = gt_sel-vbeln
AND parvw = gc_re.
ENDIF.
* Loop through captured data for additional information
LOOP AT gt_sel INTO gs_report.
* Find the bill-to party
READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_report-vbeln
posnr = gs_report-posnr
parvw = gc_re.
IF sy-subrc <> 0.
READ TABLE gt_vbpa INTO gs_vbpa WITH KEY vbeln = gs_report-vbeln
parvw = gc_re.
CHECK sy-subrc = 0 AND gs_vbpa-kunnr IN s_kunre.
ELSE.
CHECK gs_vbpa-kunnr IN s_kunre.
ENDIF.
if sy-subrc = 0.
gs_report-kunre = gs_vbpa-kunnr.
endif.
* Get the Customer's Name
gs_report-kunnrt = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunnr ).
gs_report-kunwet = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunwe ).
gs_report-kunret = zcl_kna1=>get_name1( itp_kunnr = gs_report-kunre ).
APPEND gs_report TO gt_report.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM gt_report .
Thanks