Application Development and Automation 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: 
Read only

Getting a program Dump Error in Herarchial ALV

Former Member
0 Likes
534

Hello All,

I am getting a dump error when I am executing the below program. Kindly help as I am not getting the output. However all the subroutines are getting properly populated with data. Getting a dump error while calling the function : REUSE_ALV_HIERSEQ_LIST_DISPLAY

Pasted below are both the question and solution. Copy the solution in SE38 and execute it to check out the dump error.

Kindly help.

Thanks,

Vinod.

QUESTION :-

Objective

Hierarchical ALV for displaying Sales documents per customer

Design

Create a program that will allow the user to display all customers that have placed Sales Orders in the given date range. The user will have an ability to drill-down to see the sales order items per customer.

Selection screen fields–

Sales order creation date (range)

Customer number (range)

Output –

Header –

Customer Number

Customer Name

Total Order value (sum of order values from items below)

Details –

Sales order number

Material number

Order quantity

Order value

Reference

Tables: KNA1, VBAK, VBAP

Transaction – VA03 (Sales order)

SOLUTION :-

&----


*& Report Z_HALV_32722 *

*& *

&----


*& *

*& *

&----


REPORT Z_HALV_32722 .

TYPE-POOLS: slis.

TABLES : kna1,

vbak.

SELECT-OPTIONS: s_cst_no FOR kna1-kunnr.

SELECT-OPTIONS: s_cr_dt FOR vbak-erdat.

DATA : BEGIN of ty_hdr,

kunnr TYPE vbak-kunnr,

name1 TYPE kna1-name1,

netwr TYPE vbak-netwr,

END of ty_hdr,

gt_hdr LIKE TABLE OF ty_hdr,

gs_hdr LIKE LINE OF gt_hdr.

DATA : BEGIN of ty_ln,

kunnr TYPE vbak-kunnr,

vbeln TYPE vbap-vbeln,

matnr TYPE vbap-matnr,

kwmeng TYPE vbap-kwmeng,

netwr TYPE vbap-netwr,

END of ty_ln,

gt_ln LIKE TABLE OF ty_ln,

gs_ln LIKE LINE OF gt_ln.

DATA : BEGIN of ty_hdr1,

kunnr TYPE vbak-kunnr,

END of ty_hdr1,

gt_hdr1 LIKE TABLE OF ty_hdr1,

gs_hdr1 LIKE LINE OF gt_hdr1.

DATA : gt_fc TYPE slis_t_fieldcat_alv,

gs_fc LIKE LINE OF gt_fc,

gs_k_fld TYPE slis_keyinfo_alv,

gt_layout TYPE slis_layout_alv,

gv_repid TYPE sy-repid.

START-OF-SELECTION.

gv_repid = sy-repid.

perform fetch_data.

perform prepare_fc.

perform prepare_layout.

perform show_output.

&----


*& Form fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fetch_data .

SELECT kunnr

INTO CORRESPONDING FIELDS OF TABLE gt_hdr1

FROM vbak

WHERE vbak~kunnr IN s_cst_no

AND vbak~erdat IN s_cr_dt.

DELETE ADJACENT DUPLICATES FROM gt_hdr1 COMPARING kunnr.

LOOP AT gt_hdr1 INTO gs_hdr1.

SELECT SINGLE vbakkunnr kna1name1 SUM( vbak~netwr )

INTO (gs_hdr-kunnr, gs_hdr-name1, gs_hdr-netwr)

FROM vbak INNER JOIN kna1

ON vbakkunnr = kna1kunnr

WHERE vbak~kunnr = gs_hdr1-kunnr

GROUP BY vbakkunnr kna1name1.

APPEND gs_hdr TO gt_hdr.

SELECT vbakkunnr vbapvbeln vbapmatnr vbapkwmeng vbap~netwr

INTO CORRESPONDING FIELDS OF TABLE gt_ln

FROM vbap INNER JOIN vbak

ON vbapvbeln = vbakvbeln

WHERE vbak~kunnr = gs_hdr1-kunnr.

ENDLOOP.

endform. " fetch_data

&----


*& Form prepare_fc

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form prepare_fc .

CLEAR gs_k_fld.

gs_k_fld-header01 = 'KUNNR'.

gs_k_fld-item01 = 'KUNNR'.

CLEAR gs_fc.

gs_fc-fieldname = 'KUNNR'.

gs_fc-tabname = 'GT_HDR'.

gs_fc-seltext_l = text-001.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'NAME1'.

gs_fc-tabname = 'GT_HDR'.

gs_fc-seltext_l = text-002.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'NETWR'.

gs_fc-tabname = 'GT_HDR'.

gs_fc-seltext_l = text-003.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'VBELN'.

gs_fc-tabname = 'GT_LN'.

gs_fc-seltext_l = text-004.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'MATNR'.

gs_fc-tabname = 'GT_LN'.

gs_fc-seltext_l = text-005.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'KWMENG'.

gs_fc-tabname = 'GT_LN'.

gs_fc-seltext_l = text-006.

APPEND gs_fc TO gt_fc.

CLEAR gs_fc.

gs_fc-fieldname = 'NETWR'.

gs_fc-tabname = 'GT_LN'.

gs_fc-seltext_l = text-007.

APPEND gs_fc TO gt_fc.

endform. " prepare_fc

&----


*& Form prepare_layout

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form prepare_layout .

gt_layout-colwidth_optimize = 'X'.

gt_layout-expand_fieldname = 'TST'.

endform. " prepare_layout

&----


*& Form show_output

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form show_output .

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = gv_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

IS_LAYOUT = gt_layout

IT_FIELDCAT = gt_fc

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header = 'GT_HDR'

i_tabname_item = 'GT_LN'

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo = gs_k_fld

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header = GT_HDR[]

t_outtab_item = GT_LN[]

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " show_output

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
481

Hi Vinod,

The error is in the value of "gt_layout". It is not getting populated properly. Just comment it in function module 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'. your program is working properly.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = gv_repid

  • is_layout = gt_layout

it_fieldcat = gt_fc

i_tabname_header = 'GT_HDR'

i_tabname_item = 'GT_LN'

is_keyinfo = gs_k_fld

TABLES

t_outtab_header = gt_hdr[]

t_outtab_item = gt_ln[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

4 REPLIES 4
Read only

Manohar2u
Active Contributor
0 Likes
481

Coud you post the dump details from ST22?

Read only

Former Member
0 Likes
481

Hi

You have just populated the header of the layout but not appended it. May be this is the reason for getting a dump as rest seems Ok.

form prepare_layout .

gt_layout-colwidth_optimize = 'X'.

gt_layout-expand_fieldname = 'TST'.

append gt_layout.

FYI, In the Perform fetch_data, you are writing a Select in a loop. Each time the Select is executed, the item table i.e gt_ln will be refreshed. You can use appending into corresponding.

Regards,

Navneet

Read only

Former Member
0 Likes
482

Hi Vinod,

The error is in the value of "gt_layout". It is not getting populated properly. Just comment it in function module 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'. your program is working properly.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = gv_repid

  • is_layout = gt_layout

it_fieldcat = gt_fc

i_tabname_header = 'GT_HDR'

i_tabname_item = 'GT_LN'

is_keyinfo = gs_k_fld

TABLES

t_outtab_header = gt_hdr[]

t_outtab_item = gt_ln[]

EXCEPTIONS

program_error = 1

OTHERS = 2.

Read only

0 Likes
481

Everything looks fine with the gt_layout, it is not an internal table, so no need to append to it, it is simply a structure, but you do tell it that TST is the expand field, but there is no field of this name in your internal for the header, so add it like this.

DATA : BEGIN of ty_hdr,

kunnr TYPE vbak-kunnr,

name1 TYPE kna1-name1,

netwr TYPE vbak-netwr,

<b>TST type c,</b>

END of ty_hdr,

Doing so should make you program work correctly.

Regards,

Rich Heilman

Message was edited by:

Rich Heilman