Create an ALV report
with select option
VBRK-VBELN
with output :
VBRK
-VBELN
VBRP
-POSNR
VBRK
-FKART
LIPS
-VBELN
LIPS
-POSNR
LIKP
-LFART
VBAK
-VBELN
VBAP
-POSNR
VBAK
-AUART
I am not getting LFART
field from LIKP
table and not getting AUART
field from VBAK
table in my final output table. Last Read table statement Read Table lt_vbap
is returning sy-subrc = 4
. getting a dump with error
Field Symbol not assigned yet
kindly help, I am stuck for 3 days.
TABLES: vbrk, vbrp, lips, likp, vbak, vbap.
TYPE-POOLS: slis, icon.
TYPES: BEGIN OF ty_output,
vbeln TYPE vbrk-vbeln,
posnr TYPE vbrp-posnr,
fkart TYPE vbrk-fkart,
vbeln1 TYPE lips-vbeln,
posnr1 TYPE lips-posnr,
lfart TYPE likp-lfart,
vbeln2 TYPE vbak-vbeln,
posnr2 TYPE vbap-posnr,
auart TYPE vbak-auart,
END OF ty_output.
DATA: lt_output TYPE TABLE OF ty_output,
ls_output TYPE ty_output.
DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat LIKE LINE OF lt_fieldcat.
DATA: ls_layout TYPE slis_layout_alv.
DATA:ls_vbak TYPE vbak,
lt_vbap TYPE TABLE OF vbap,
ls_vbap TYPE vbap,
ls_lips TYPE lips,
ls_likp TYPE likp,
ls_vbrk TYPE vbrk.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:
p_vbeln FOR vbrk-vbeln.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
SELECT vbeln, fkart, vbtyp
FROM vbrk
INTO TABLE @DATA(lt_vbrk)
WHERE vbeln IN @p_vbeln.
IF lt_vbrk IS NOT INITIAL.
SELECT vbeln, posnr, vgpos, vgbel, aubel
FROM vbrp
INTO TABLE @DATA(lt_vbrp)
FOR ALL ENTRIES IN @lt_vbrk
WHERE vbeln = @lt_vbrk-vbeln.
SELECT vbeln ,posnr, vgbel
FROM lips
INTO TABLE @DATA(lt_lips)
FOR ALL ENTRIES IN @lt_vbrp
WHERE vbeln = @lt_vbrp-vgbel
AND posnr = @lt_vbrp-vgpos.
SELECT vbeln ,lfart
FROM likp
INTO TABLE @DATA(lt_likp)
FOR ALL ENTRIES IN @lt_lips
WHERE vbeln = @lt_lips-vbeln.
SELECT vbeln ,auart
FROM vbak
INTO TABLE @DATA(lt_vbak)
FOR ALL ENTRIES IN @lt_vbrp
WHERE vbeln = @lt_vbrp-aubel.
SELECT vbeln ,posnr
FROM vbap
INTO TABLE @lt_vbap
FOR ALL ENTRIES IN @lt_vbrp
WHERE vbeln = @lt_vbrp-aubel
AND posnr = @lt_vbrp-vgpos.
ENDIF.
LOOP AT lt_vbrp INTO DATA(ls_vbrp).
READ TABLE lt_vbrk INTO ls_vbrk WITH KEY vbeln = ls_vbrp-vbeln.
IF sy-subrc = 0.
ls_output-vbeln = ls_vbrk-vbeln.
ls_output-fkart = ls_vbrk-fkart.
APPEND ls_output TO lt_output.
ENDIF.
CLEAR ls_lips.
READ TABLE lt_lips INTO ls_lips WITH KEY posnr = ls_vbrp-vgpos. "ls_vbrp-vgbel.
IF sy-subrc = 0.
ls_output-vbeln1 = ls_lips-vbeln.
ls_output-posnr1 = ls_lips-posnr.
APPEND ls_output TO lt_output.
ENDIF.
CLEAR ls_likp.
READ TABLE lt_likp INTO ls_likp WITH KEY vbeln = ls_lips-vbeln. "vbeln = ls_vbrp-vgbel.
IF sy-subrc = 0.
ls_output-lfart = ls_likp-lfart.
APPEND ls_output TO lt_output.
ENDIF.
CLEAR ls_vbak.
READ TABLE lt_vbak INTO ls_vbak WITH KEY vbeln = ls_vbrp-aubel.
IF sy-subrc = 0.
ls_output-vbeln2 = ls_vbak-vbeln.
ls_output-auart = ls_vbak-auart.
APPEND ls_output TO lt_output.
ENDIF.
CLEAR ls_vbap.
READ TABLE lt_vbap INTO ls_vbap WITH KEY vbeln = ls_vbrp-vbeln.
IF sy-subrc = 0.
ls_output-posnr2 = ls_vbap-posnr.
APPEND ls_output TO lt_output.
ENDIF.
ENDLOOP.
IF sy-subrc = 0 AND lt_output IS NOT INITIAL.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBRK_VBELN'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_l = 'INVOICE NUMBER'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBRP_POSNR'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-outputlen = 6.
ls_fieldcat-seltext_l = 'INVOICE ITEM'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBRK_FKART'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-outputlen = 4.
ls_fieldcat-seltext_l = 'INVOICE TYPE'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'LIPS_VBELN'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_l = 'DELIVERY NUMBER'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'LIPS_POSNR'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-outputlen = 6.
ls_fieldcat-seltext_l = 'DELIVERY ITEM'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'LIKP_LFART'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-outputlen = 4.
ls_fieldcat-seltext_l = 'DELIVERY TYPE'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBAK_VBELN'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '7'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-seltext_l = 'SALES DOCUMENT NUMBER'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBAP_POSNR'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '8'.
ls_fieldcat-outputlen = 6.
ls_fieldcat-seltext_l = 'SALES DOCUMENT ITEM'.
APPEND ls_fieldcat TO lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'VBAK_AUART'.
ls_fieldcat-inttype = 'C'.
ls_fieldcat-col_pos = '9'.
ls_fieldcat-outputlen = 4.
ls_fieldcat-seltext_l = 'SALES DOCUMENT TYPE'.
APPEND ls_fieldcat TO lt_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = lt_fieldcat
TABLES
t_outtab = lt_output
EXCEPTIONS
program_error = 1
OTHERS = 2.