2014 Apr 30 8:29 PM
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.
DATA: IT_MARC TYPE TABLE OF TT_MARC,
IT_MDPSX LIKE TABLE OF MDPS,
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_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.
2014 May 01 4:33 AM
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.
DATA: IT_MARC TYPE TABLE OF TT_MARC,
IT_MDPSX LIKE TABLE OF MDPS,
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_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.
2014 Apr 30 8:48 PM
Hi,
send us this code
PERFORM F_BUILD_FC USING '1' 'MATNR' 'IT_MDPSX' 'Material' '5' '' '' .
Need to check that perform.
Regards
Miguel
2014 Apr 30 9:00 PM
2014 Apr 30 9:24 PM
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.
DATA: IT_MARC TYPE TABLE OF TT_MARC,
IT_MDPSX LIKE TABLE OF MDPS,
IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_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.
2014 Apr 30 10:10 PM
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
2014 May 01 4:33 AM
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
2014 May 01 6:39 AM
2014 May 01 2:05 PM
Hi Vinod,
Pass SY-REPID in FM Parameter I_CALLBACK_PROGRAM. Retest it.
Also, can you show us your new code?
Regards,
Sudeesh Soni
2014 May 02 4:06 AM
Hi Vinod,
Please make sure that the internal table IT_MDPSX contains the fields MATNR and WERKS.
Regards
Anoop
2014 May 02 6:18 AM
Hi Vinod,
error occured filed catalog name.It should be same for fields in the the internaltable and feild catalog feilds.
2014 May 02 6:40 AM
Hi vinod,
Have you used up any Field symbols? If so check wether you have assigned them properly.
Regards,
Sindhuja.