Skip to Content
0

Consecutive nested call screen dump when display alv

Sep 12, 2017 at 06:40 AM

42

avatar image
Former Member

Hi,

I have one problem when I display table with CL_GUI_ALV. In the program I call screen 100. I also have one Form INIT which contains code for creating object, creating container and set table for first display. In the module PBO, if I perform INIT, I got dump problem with this error "Consecutive nested call screen dump". I searched already about that error.

But my question is that: If in module PBO, I don't set perform Display_ALV, I copy code in that form, and paste directly, it works correctly. Why is that? There is any thing different in here?

Thanks so much.

Best regards.

REPORT ZABC.
CALL SCREEN 0100.
MODULE status_0100 OUTPUT.


SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

MODULE status_0100 OUTPUT.

  SET PF-STATUS 'ZDIN_STATUS'.

*  SET TITLEBAR 'xxx'.

  PERFORM init.  

* If I let PERFORM in here, it got dump screen. But if I copy code in that form and paste it direct in here, it works. Why???

*  DATA: vl_container TYPE scrfname VALUE 'ZDIN_EX2_CONTAINER'.

*  DATA: ol_grid TYPE REF TO cl_gui_alv_grid,

*        ol_custom_container TYPE REF TO cl_gui_custom_container.

*  DATA: tl_flight TYPE TABLE OF sflight,

*        tl_fieldcat TYPE lvc_t_fcat.

*  CREATE OBJECT ol_custom_container

*    EXPORTING

*      container_name = vl_container.

*  CREATE OBJECT ol_grid

*    EXPORTING

*      i_parent = ol_custom_container.

*

*  SELECT * FROM sflight INTO TABLE tl_flight.



*

*  CALL METHOD ol_grid->set_table_for_first_display

*    EXPORTING

*      i_structure_name              = 'SFLIGHT'

*    CHANGING

*      it_outtab                     = tl_flight

**      it_fieldcatalog               = tl_fieldcat

**     it_sort                       = tl_sort

**     it_filter                     =

*    EXCEPTIONS

*      invalid_parameter_combination = 1

*      program_error                 = 2

*      too_many_lines                = 3

*      OTHERS                        = 4.

*  IF sy-subrc <> 0.

**     Implement suitable error handling here

*  ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT

MODULE user_command_0100 INPUT.

  DATA: vl_ucomm LIKE sy-ucomm.

  vl_ucomm = sy-ucomm.

  CASE vl_ucomm.

    WHEN '&F03'.

      LEAVE PROGRAM.

  ENDCASE.

  CLEAR vl_ucomm.

ENDMODULE.                 " USER_COMMAND_0100  INPUT



FORM init.

  DATA: vl_container TYPE scrfname VALUE 'ZDIN_EX2_CONTAINER'.

  DATA: ol_grid TYPE REF TO cl_gui_alv_grid,

        ol_custom_container TYPE REF TO cl_gui_custom_container.

  DATA: tl_flight TYPE TABLE OF sflight,

        tl_fieldcat TYPE lvc_t_fcat.

  CREATE OBJECT ol_custom_container

    EXPORTING

      container_name = vl_container.

  CREATE OBJECT ol_grid

    EXPORTING

      i_parent = ol_custom_container.



  SELECT * FROM sflight INTO TABLE tl_flight.

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

    EXPORTING

*     I_BUFFER_ACTIVE        =

      i_structure_name       = 'SFLIGHT'

*     I_CLIENT_NEVER_DISPLAY = 'X'

*     I_BYPASSING_BUFFER     =

*     I_INTERNAL_TABNAME     =

    CHANGING

      ct_fieldcat            = tl_fieldcat

    EXCEPTIONS

      inconsistent_interface = 1

      program_error          = 2

      OTHERS                 = 3.

  IF sy-subrc <> 0.

* Implement suitable error handling here

  ENDIF.



  CALL METHOD ol_grid->set_table_for_first_display

*    EXPORTING

*      i_structure_name              = 'SFLIGHT'

    CHANGING

      it_outtab                     = tl_flight

      it_fieldcatalog               = tl_fieldcat

*     it_sort                       = tl_sort

*     it_filter                     =

    EXCEPTIONS

      invalid_parameter_combination = 1

      program_error                 = 2

      too_many_lines                = 3

      OTHERS                        = 4.

  IF sy-subrc <> 0.

*     Implement suitable error handling here

  ENDIF.

ENDFORM.
10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Sandra Rossi Sep 12, 2017 at 11:49 AM
1

There's nothing suspicious : I copied your code, as you show (with PERFORM init), and it works, there's no short dump:

The error "Consecutive nested call screen dump" says that there's a nested CALL SCREEN (more than 50 times). Probably there's a CALL SCREEN in the PBO. If you don't see it, make sure you have activated your program before executing.


0pqz3.png (39.7 kB)
Share
10 |10000 characters needed characters left characters exceeded