Dear Experts,
While executing the ALV report a short dump is occured , the short dump is occured when i enter the input at the selection parameter , but when i execute without entering any input the output is generated. The ALV report is generated by taking the calling the Z tables into the program.
Coding is as below...
REPORT ZPP_FAB_DET.
TABLES : ZPP_CNC.
TYPES : BEGIN OF TY_CNC, " WA2
VBELN TYPE VBELN,
VBELP TYPE VBELP,
MARKER_NAME TYPE ZMARKER_NAME,
CONFDATE TYPE DATUM,
CONFTIME TYPE UZEIT,
END OF TY_CNC.
TYPES : BEGIN OF TY_BATCHCNC,
LENGTH TYPE CS_BASMN,
VBELN TYPE VBELN,
VBELP TYPE VBELP,
MARKER_NAME TYPE ZMARKER_NAME,
CHARG TYPE CHARG_D,
LICHN TYPE ZLICHN,
END OF TY_BATCHCNC.
TYPES : BEGIN OF TY_MSKA,
KALAB TYPE LABST,
VBELN TYPE VBELN,
CHARG TYPE CHARG_D,
END OF TY_MSKA.
TYPES : BEGIN OF TY_FINAL,
VBELN TYPE VBELN,
VBELP TYPE VBELP,
MARKER_NAME TYPE ZMARKER_NAME,
CONFDATE TYPE DATUM,
CONFTIME TYPE UZEIT,
LENGTH TYPE CS_BASMN,
CHARG TYPE CHARG_D,
LICHN TYPE ZLICHN,
KALAB TYPE LABST,
END OF TY_FINAL.
DATA : GT_CNC TYPE TABLE OF TY_CNC, " TABLE 2
GS_CNC TYPE TY_CNC.
DATA : GT_BATCHCNC TYPE TABLE OF TY_BATCHCNC,
GS_BATCHCNC TYPE TY_BATCHCNC.
DATA : GT_MSKA TYPE TABLE OF TY_MSKA,
GS_MSKA TYPE TY_MSKA.
DATA : GT_FINAL TYPE TABLE OF TY_FINAL,
GS_FINAL TYPE TY_FINAL.
DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : GT_EVENTS TYPE SLIS_T_EVENT.
DATA : GD_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA : GS_REPID LIKE SY-REPID.
SELECT-OPTIONS : S_VBELN FOR ZPP_CNC-VBELN,
S_VBELP FOR ZPP_CNC-VBELP,
S_DATE FOR ZPP_CNC-CONFDATE.
START-OF-SELECTION.
PERFORM GET_CNC_DATA.
PERFORM GET_BATCHCNC_DATA.
PERFORM GET_MSKA_DATA.
PERFORM POPULATE_DATA.
PERFORM BUILD_FIELDCATALOG.
PERFORM ALV_DISPLAY.
*&---------------------------------------------------------------------*
*& Form GET_CNC_DATA
*&-----------------------------------------------------------------
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_CNC_DATA .
SELECT
VBELN
VBELP
MARKER_NAME
CONFDATE
CONFTIME
INTO TABLE GT_CNC FROM ZPP_CNC WHERE VBELN IN S_VBELN AND
VBELP IN S_VBELP AND
CONFDATE IN S_DATE.
ENDFORM. " GET_CNC_DATA
*&---------------------------------------------------------------------*
*& Form GET_BATCHCNC_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_BATCHCNC_DATA .
IF NOT GT_CNC IS INITIAL.
SELECT
LENGTH
VBELN
VBELP
MARKER_NAME
CHARG
LICHN
FROM ZPP_BATCH_CNC INTO TABLE GT_BATCHCNC FOR ALL ENTRIES IN GT_CNC WHERE MARKER_NAME = GT_CNC-MARKER_NAME.
ENDIF.
ENDFORM. " GET_BATCHCNC_DATA
*&---------------------------------------------------------------------*
*& Form GET_MSKA_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_MSKA_DATA .
IF NOT GT_CNC IS INITIAL.
SELECT
KALAB
VBELN
CHARG
FROM MSKA INTO TABLE GT_MSKA FOR ALL ENTRIES IN GT_BATCHCNC WHERE CHARG = GT_BATCHCNC-CHARG.
ENDIF.
ENDFORM. " GET_MSKA_DATA
*&---------------------------------------------------------------------*
*& Form POPULATE_DATA
*&---------------------------------------------------------------------*
* tex
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM POPULATE_DATA .
IF SY-SUBRC = 0.
LOOP AT GT_CNC INTO GS_CNC.
GS_FINAL-VBELN = GS_CNC-VBELN.
GS_FINAL-VBELP = GS_CNC-VBELP.
GS_FINAL-MARKER_NAME = GS_CNC-MARKER_NAME.
GS_FINAL-CONFDATE = GS_CNC-CONFDATE.
GS_FINAL-CONFTIME = GS_CNC-CONFTIME.
READ TABLE GT_BATCHCNC INTO GS_BATCHCNC WITH KEY VBELN = GS_CNC-VBELN
VBELP = GS_CNC-VBELP
MARKER_NAME = GS_CNC-MARKER_NAME.
GS_FINAL-LENGTH = GS_BATCHCNC-LENGTH.
GS_FINAL-CHARG = GS_BATCHCNC-CHARG.
GS_FINAL-LICHN = GS_BATCHCNC-LICHN.
READ TABLE GT_MSKA INTO GS_MSKA WITH KEY CHARG = GS_BATCHCNC-CHARG.
GS_FINAL-KALAB = GS_MSKA-KALAB.
APPEND GS_FINAL TO GT_FINAL.
CLEAR : GS_FINAL , GS_CNC.
ENDLOOP.
ENDIF.
ENDFORM. " POPULATE_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .
GS_FIELDCAT-FIELDNAME = 'VBELN'.
GS_FIELDCAT-SELTEXT_M = 'SALESORDER'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'VBELP'.
GS_FIELDCAT-SELTEXT_M = 'SALESITEM'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'MARKER_NAME'.
GS_FIELDCAT-SELTEXT_M = 'MARKER'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'MATNR'.
GS_FIELDCAT-SELTEXT_M = 'MATERIAL'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'MAKTX'.
GS_FIELDCAT-SELTEXT_M = 'MATERIAL DES'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'CHARG'.
GS_FIELDCAT-SELTEXT_M = ' BATCH'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'LICHN'.
GS_FIELDCAT-SELTEXT_M = ' VENDORBATCH'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'CONFDATE'.
GS_FIELDCAT-SELTEXT_M = ' CUTDATE'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'CONFTIME'.
GS_FIELDCAT-SELTEXT_M = ' CUTTIME'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'LENGTH'.
GS_FIELDCAT-SELTEXT_M = 'CONSUMED'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = 'KALAB'.
GS_FIELDCAT-SELTEXT_M = 'STOCK'.
GS_FIELDCAT-OUTPUTLEN = 10.
GS_FIELDCAT-DO_SUM = 'X'.
GS_FIELDCAT-NO_ZERO = 'X'.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
CLEAR GS_FIELDCAT.
ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form ALV_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ALV_DISPLAY .
GS_REPID = SY-REPID.
IF GS_REPID IS NOT INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GS_REPID
IT_FIELDCAT = GT_FIELDCAT[]
IT_EVENTS = GT_EVENTS[]
I_SAVE = 'A'
I_DEFAULT = 'X'
TABLES
T_OUTTAB = GT_FINAL
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.
ENDIF.
ENDFORM. " ALV_DISPLAY
Dump occured :
Best rgds/thnks,
Srikanth.