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

Abap short dump

Former Member
0 Likes
2,047

Hi Experts,

               I am facing this short dump can any one figure out the solution for this.Below is the code .

TABLES  MARC.

TYPE-POOLS: SLIS.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.

   PARAMETERS  : M_MATNR TYPE MARC-MATNR,

                 W_WERKS TYPE MARC-WERKS.

SELECTION-SCREEN END OF BLOCK A.

TYPES: BEGIN OF TYP_MARC,

   MATNR TYPE MARC-MATNR,

   WERKS TYPE MARC-WERKS,

END OF TYP_MARC.

TYPES: TT_MARC TYPE TYP_MARC.

DATAIT_MARC TYPE TABLE OF TT_MARC,

       IT_MDPSX LIKE TABLE OF  MDPS,

       IT_FCAT  TYPE SLIS_T_FIELDCAT_ALV.

DATAWA_MARC TYPE TYP_MARC,

       WA_FCAT  TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT_ALV TYPE  TABLE OF SLIS_FIELDCAT_ALV,

       IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

       WA_FIELDCAT_ALV TYPE  SLIS_FIELDCAT_ALV,

       WA_LAYOUT  TYPE SLIS_LAYOUT_ALV . " FIELDCAT DECLARATION

DATA : LV_MATNR LIKE MARC-MATNR,

        LV_WERKS LIKE MARC-WERKS.

LV_MATNR = M_MATNR.

LV_WERKS = W_WERKS.

START-OF-SELECTION.

PERFORM FILL_STOCK.

PERFORM FIELDCAT.

PERFORM DISPLAY_DETAILS.

FORM FILL_STOCK.

   CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'

   EXPORTING

     MATNR                          = LV_MATNR

     WERKS                          = LV_WERKS

   TABLES

     MDPSX                          = IT_MDPSX

   EXCEPTIONS

     MATERIAL_PLANT_NOT_FOUND       = 1

     PLANT_NOT_FOUND                = 2

     OTHERS                         = 3

     .

ENDFORM.

FORM FIELDCAT .

     PERFORM F_BUILD_FC USING '1'  'MATNR' 'IT_MDPSX' 'Material'  '5' '' '' ."

     PERFORM F_BUILD_FC USING '2'  'WERKS' 'IT_MDPSX' 'Plant' '15' '' '' ."

ENDFORM.                    " FIELDCAT

*&---------------------------------------------------------------------*

*&                FIELD CATLOG PARAMETER DECLARATION

*&---------------------------------------------------------------------*

*----------------------------------------------------------------------*

DATA : P_COLOR(4) TYPE C VALUE 'C110'.

FORM F_BUILD_FC  USING    VALUE(P1)

       VALUE(P2)

       VALUE(P3)

       VALUE(P4)

       VALUE(P5)

       VALUE(P6)

       P_COLOR.

   WA_FIELDCAT_ALV-COL_POS       = P1.

   WA_FIELDCAT_ALV-FIELDNAME     = P2.

   WA_FIELDCAT_ALV-TABNAME       = P3.

   WA_FIELDCAT_ALV-REPTEXT_DDIC  = P4.

   WA_FIELDCAT_ALV-OUTPUTLEN     = P5.

   WA_FIELDCAT_ALV-HOTSPOT       = P6.

   WA_FIELDCAT_ALV-EMPHASIZE       = P_COLOR.

   WA_LAYOUT-ZEBRA = 'X'.

   WA_FIELDCAT_ALV-NO_ZERO = 'X'.

   WA_LAYOUT-colwidth_optimize = 'X'.

   APPEND WA_FIELDCAT_ALV TO IT_FIELDCAT.

   CLEAR WA_FIELDCAT_ALV.

ENDFORM.                    "F_BUILD_FC

FORM DISPLAY_DETAILS.

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

     I_CALLBACK_PROGRAM = SY-CPROG

       IS_LAYOUT          = WA_LAYOUT

     IT_FIELDCAT        = IT_FIELDCAT

   TABLES

     T_OUTTAB           = IT_MDPSX.

ENDFORM.

Thanks

Vinod.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,004

Hi Vinod,

I identified following mistakes in your 2nd code logic:

1. In FM-REUSE_ALV_GRID_DISPLAY, output table-IT_MDPSX contain data of all table-MDPS fields but in fieldcatalog-IT_FCAT only 2 fields populated due to which you are getting short dump.

Note that Fieldcatalog should contain all fields for which you are passing data in output table in the same sequence of output table.

You can use FM-LVC_FIELDCATALOG_MERGE in which u need to pass table name which will return you fieldcatalog populated with all fields of input table. Further, you can directly pass it in ALV display FM.

2. You have written the ALV layout structure-WA_LAYOUT population logic within fieldcatalog population subroutine-FORM FIELDCAT which is getting called multiple times so i would suggest you to create separate perform routine for same.


Regards,

Sudeesh Soni

Hi Experts,

               I am facing this short dump can any one figure out the solution for this.Below is the code .

TABLES  MARC.

TYPE-POOLS: SLIS.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.

   PARAMETERS  : M_MATNR TYPE MARC-MATNR,

                 W_WERKS TYPE MARC-WERKS.

SELECTION-SCREEN END OF BLOCK A.

TYPES: BEGIN OF TYP_MARC,

   MATNR TYPE MARC-MATNR,

   WERKS TYPE MARC-WERKS,

END OF TYP_MARC.

TYPES: TT_MARC TYPE TYP_MARC.

DATAIT_MARC TYPE TABLE OF TT_MARC,

       IT_MDPSX LIKE TABLE OF  MDPS,

       IT_FCAT  TYPE SLIS_T_FIELDCAT_ALV.

DATAWA_MARC TYPE TYP_MARC,

       WA_FCAT  TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT_ALV TYPE  TABLE OF SLIS_FIELDCAT_ALV,

       IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

       WA_FIELDCAT_ALV TYPE  SLIS_FIELDCAT_ALV,

       WA_LAYOUT  TYPE SLIS_LAYOUT_ALV . " FIELDCAT DECLARATION

DATA : LV_MATNR LIKE MARC-MATNR,

        LV_WERKS LIKE MARC-WERKS.

LV_MATNR = M_MATNR.

LV_WERKS = W_WERKS.

START-OF-SELECTION.

PERFORM FILL_STOCK.

PERFORM FIELDCAT.

PERFORM DISPLAY_DETAILS.

FORM FILL_STOCK.

   CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'

   EXPORTING

     MATNR                          = LV_MATNR

     WERKS                          = LV_WERKS

   TABLES

     MDPSX                          = IT_MDPSX

   EXCEPTIONS

     MATERIAL_PLANT_NOT_FOUND       = 1

     PLANT_NOT_FOUND                = 2

     OTHERS                         = 3

     .

ENDFORM.

FORM FIELDCAT .

     PERFORM F_BUILD_FC USING '1'  'MATNR' 'IT_MDPSX' 'Material'  '5' '' '' ."

     PERFORM F_BUILD_FC USING '2'  'WERKS' 'IT_MDPSX' 'Plant' '15' '' '' ."

ENDFORM.                    " FIELDCAT

*&---------------------------------------------------------------------*

*&                FIELD CATLOG PARAMETER DECLARATION

*&---------------------------------------------------------------------*

*----------------------------------------------------------------------*

DATA : P_COLOR(4) TYPE C VALUE 'C110'.

FORM F_BUILD_FC  USING    VALUE(P1)

       VALUE(P2)

       VALUE(P3)

       VALUE(P4)

       VALUE(P5)

       VALUE(P6)

       P_COLOR.

   WA_FIELDCAT_ALV-COL_POS       = P1.

   WA_FIELDCAT_ALV-FIELDNAME     = P2.

   WA_FIELDCAT_ALV-TABNAME       = P3.

   WA_FIELDCAT_ALV-REPTEXT_DDIC  = P4.

   WA_FIELDCAT_ALV-OUTPUTLEN     = P5.

   WA_FIELDCAT_ALV-HOTSPOT       = P6.

   WA_FIELDCAT_ALV-EMPHASIZE       = P_COLOR.

   WA_LAYOUT-ZEBRA = 'X'.

   WA_FIELDCAT_ALV-NO_ZERO = 'X'.

   WA_LAYOUT-colwidth_optimize = 'X'.

   APPEND WA_FIELDCAT_ALV TO IT_FIELDCAT.

   CLEAR WA_FIELDCAT_ALV.

ENDFORM.                    "F_BUILD_FC

FORM DISPLAY_DETAILS.

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

     I_CALLBACK_PROGRAM = SY-CPROG

       IS_LAYOUT          = WA_LAYOUT

     IT_FIELDCAT        = IT_FIELDCAT

   TABLES

     T_OUTTAB           = IT_MDPSX.

ENDFORM.

Thanks

Vinod.

10 REPLIES 10
Read only

Former Member
0 Likes
2,004

Hi,

send us this code

PERFORM F_BUILD_FC USING '1'  'MATNR' 'IT_MDPSX' 'Material'  '5' '' '' .


Need to check that perform.

Regards

Miguel

Read only

0 Likes
2,004

Do you want me to apply this code.

Read only

Former Member
0 Likes
2,004

Have modified code check this one.

TABLES  MARC.

TYPE-POOLS: SLIS.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-001.

   PARAMETERS  : M_MATNR TYPE MARC-MATNR OBLIGATORY ,

                 W_WERKS TYPE MARC-WERKS.

SELECTION-SCREEN END OF BLOCK A.

TYPES: BEGIN OF TYP_MARC,

   MATNR TYPE MARC-MATNR ,

   WERKS TYPE MARC-WERKS,

END OF TYP_MARC.

TYPES: TT_MARC TYPE TYP_MARC.

DATAIT_MARC TYPE TABLE OF TT_MARC,

       IT_MDPSX LIKE TABLE OF  MDPS,

       IT_FCAT  TYPE SLIS_T_FIELDCAT_ALV.

DATAWA_MARC TYPE TYP_MARC,

       WA_FCAT  TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT_ALV TYPE  TABLE OF SLIS_FIELDCAT_ALV,

       IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

       WA_FIELDCAT_ALV TYPE  SLIS_FIELDCAT_ALV,

       WA_LAYOUT  TYPE SLIS_LAYOUT_ALV . " FIELDCAT DECLARATION

DATA : LV_MATNR LIKE MARC-MATNR,

        LV_WERKS LIKE MARC-WERKS.

LV_MATNR = M_MATNR.

LV_WERKS = W_WERKS.

START-OF-SELECTION.

PERFORM FILL_STOCK.

PERFORM FIELDCAT.

PERFORM DISPLAY_DETAILS.

FORM FILL_STOCK.

   CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'

   EXPORTING

     MATNR                          = LV_MATNR

     WERKS                          = LV_WERKS

   TABLES

     MDPSX                          = IT_MDPSX

   EXCEPTIONS

     MATERIAL_PLANT_NOT_FOUND       = 1

     PLANT_NOT_FOUND                = 2

     OTHERS                         = 3

     .

ENDFORM.

DEFINE FIELDCAT .

   WA_FCAT-COL_POS = &1.

   WA_FCAT-FIELDNAME = &2.

   WA_FCAT-TABNAME = &3.

   WA_FCAT-SELTEXT_M = &4.

*  WA_FCAT-EDIT = &4.

   APPEND WA_FCAT TO IT_FCAT.

   CLEAR WA_FCAT.

END-OF-DEFINITION.

FORM FIELDCAT .

     FIELDCAT  '1'  'MDMAT' 'IT_MDPSX' 'Material' ."

     FIELDCAT  '2'  'MDWRK' 'IT_MDPSX' 'Plant'    ."

   WA_LAYOUT-ZEBRA = 'X'.

   WA_FIELDCAT_ALV-NO_ZERO = 'X'.

   WA_LAYOUT-colwidth_optimize = 'X'.

   APPEND WA_FCAT TO IT_FCAT.

   CLEAR WA_FCAT.

ENDFORM.

           

FORM DISPLAY_DETAILS.

   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

     I_CALLBACK_PROGRAM = SY-CPROG

       IS_LAYOUT          = WA_LAYOUT

     IT_FIELDCAT        = IT_FCAT

   TABLES

     T_OUTTAB           = IT_MDPSX.

ENDFORM.

Read only

0 Likes
2,004

Hi,

look the code that you wrote

PERFORM F_BUILD_FC USING '1'  'MATNR' 'IT_MDPSX' 'Material'  '5' '' '' .

you are using matnr and table it_mdpsx that is LIKE TABLE OF  MDPS,

the table MDPS doesnt contain matnr and either WERKS.

Also, your output of the ALV is calling to table     T_OUTTAB           = IT_MDPSX.

check all the code...it looks like you are coping and dont understand the concept.

Regards

Miguel

Read only

Former Member
0 Likes
2,005

Hi Vinod,

I identified following mistakes in your 2nd code logic:

1. In FM-REUSE_ALV_GRID_DISPLAY, output table-IT_MDPSX contain data of all table-MDPS fields but in fieldcatalog-IT_FCAT only 2 fields populated due to which you are getting short dump.

Note that Fieldcatalog should contain all fields for which you are passing data in output table in the same sequence of output table.

You can use FM-LVC_FIELDCATALOG_MERGE in which u need to pass table name which will return you fieldcatalog populated with all fields of input table. Further, you can directly pass it in ALV display FM.

2. You have written the ALV layout structure-WA_LAYOUT population logic within fieldcatalog population subroutine-FORM FIELDCAT which is getting called multiple times so i would suggest you to create separate perform routine for same.


Regards,

Sudeesh Soni

Read only

0 Likes
2,004

As you said i have done but it is still showing dump.

Read only

Former Member
0 Likes
2,004

Hi Vinod,

Pass SY-REPID in FM Parameter I_CALLBACK_PROGRAM. Retest it.

Also, can you show us your new code?


Regards,

Sudeesh Soni

Read only

Former Member
0 Likes
2,004

Hi Vinod,

Please make sure that the internal table  IT_MDPSX contains the fields MATNR and  WERKS.

Regards

Anoop

Read only

Former Member
0 Likes
2,004


Hi Vinod,

error occured filed catalog name.It  should be same for  fields in the  the internaltable  and feild catalog feilds. 

Read only

Former Member
0 Likes
2,004

Hi vinod,

     Have you used up any Field symbols? If so check wether you have assigned them properly.

Regards,

Sindhuja.