*&---------------------------------------------------------------------*
*& Report ZPP_BDC_C201
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPP_BDC_C201 NO STANDARD PAGE HEADING.
TYPES : BEGIN OF TY_SOURCE,
PLNAL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
* VERID TYPE STRING,
PROFIDNETZ TYPE STRING,
STTAG TYPE STRING,
STATU TYPE STRING, " Status
VERWE TYPE STRING, " Usage
BMSCH TYPE STRING, " Base Quantity
UMREZ TYPE STRING, " Change Qty or Numerator
UMREN TYPE STRING, " Operation Qty or Denomirator
MEINH TYPE STRING, " Operation Unit
OPRNO TYPE STRING, " Operation No
PVZNR TYPE STRING, " Superordinate Operation
PHSEQ TYPE STRING, " Control Recipe Destination
ARBPL TYPE STRING, " Resource
STEUS TYPE STRING, " Control key
STKEY TYPE STRING, " Standard Text Key
LTXA1 TYPE STRING, " Operation short text
BMSCH_IT TYPE STRING, " Base Qty
* UMREZ_AC TYPE STRING, "
* UMREN_AC TYPE STRING,
VGW01 TYPE STRING,
VGW02 TYPE STRING,
VGW03 TYPE STRING,
VGW04 TYPE STRING,
VGW05 TYPE STRING,
VGW06 TYPE STRING,
* AOBAR TYPE STRING,
* VORNR TYPE STRING,
* DAUER TYPE STRING,
* MATNR_COMP TYPE STRING,
* VORNR_ITEM TYPE STRING,
END OF TY_SOURCE,
BEGIN OF TY_HEADER,
PLNAL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
* VERID TYPE STRING,
PROFIDNETZ TYPE STRING,
STTAG TYPE STRING,
STATU TYPE STRING,
VERWE TYPE PLN_VERWE,
BMSCH TYPE STRING,
UMREZ TYPE STRING,
UMREN TYPE STRING,
MEINH TYPE STRING,
END OF TY_HEADER,
BEGIN OF TY_ITEM,
PLNAL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE WERKS,
OPRNO TYPE STRING,
PVZNR TYPE STRING,
PHSEQ TYPE STRING,
ARBPL TYPE STRING,
STEUS TYPE STRING,
BMSCH_IT TYPE STRING, " Data String
STKEY TYPE STRING,
LTXA1 TYPE STRING,
VGW01 TYPE STRING,
VGW02 TYPE STRING,
VGW03 TYPE STRING,
VGW04 TYPE STRING,
VGW05 TYPE STRING,
VGW06 TYPE STRING,
END OF TY_ITEM,
BEGIN OF TY_COMP,
MATNR TYPE STRING,
VERID TYPE STRING,
MATNR_COMP TYPE STRING,
VORNR_ITEM TYPE STRING,
END OF TY_COMP,
BEGIN OF ST_MSG,
MTYPE TYPE STRING,
MESSAGE TYPE STRING,
END OF ST_MSG .
**** INTERNAL TABLE AND WORK AREA DECLARATION FOR HEADER AND ITEM LEVEL DATA
DATA : T_SOURCE TYPE STANDARD TABLE OF TY_SOURCE INITIAL SIZE 0,
T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 0,
T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 0,
T_MSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL INITIAL SIZE 0,
T_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0,
T_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV,
T_MSG_DISP TYPE STANDARD TABLE OF ST_MSG INITIAL SIZE 0,
T_ITEM_QAS TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 0,
T_COMP TYPE STANDARD TABLE OF TY_COMP INITIAL SIZE 0,
T_COMP_QAS TYPE STANDARD TABLE OF TY_COMP INITIAL SIZE 0,
****** Work Area Declarations
W_SOURCE TYPE TY_SOURCE,
W_SOURCE_T TYPE TY_SOURCE,
W_HEADER TYPE TY_HEADER,
W_ITEM TYPE TY_ITEM,
W_FCAT TYPE SLIS_FIELDCAT_ALV,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_MSGCOLL TYPE BDCMSGCOLL,
W_MSG_DISP TYPE ST_MSG,
W_COMP TYPE TY_COMP,
W_ITEM_QAS TYPE TY_ITEM,
W_COMP_QAS TYPE TY_COMP,
W_BDCDATA TYPE BDCDATA.
DATA: W_NUM TYPE CHAR2,
W_NO TYPE CHAR2,
W_PREV TYPE CHAR2,
W_STR(142),
W_DATA(10),
BATCH_PARAMS LIKE CTU_PARAMS,
G_MESG(80) TYPE C,
W_COM TYPE CHAR2,
W_COM1 TYPE CHAR2, " VALUE '03',
W_NUM_QAS TYPE CHAR2,
L_MATNR TYPE MATNR,
L_PLNAL TYPE CP_S_PLNAL,
L_VERID TYPE STRING,
L_PDOWN TYPE CHAR2,
L_DFLAG TYPE CHAR1,
L_PFLAG TYPE CHAR1,
L_NPLUS TYPE CHAR1,
W_COM2 TYPE CHAR2.
*&---------------------------------------------------------------------*
*& Selection screen Declarations
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FNAME TYPE RLGRAP-FILENAME,
P_MODE TYPE CTU_MODE DEFAULT 'A' AS LISTBOX VISIBLE LENGTH 20,
P_HEADER TYPE I DEFAULT 1.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
****Clear all work areas
CLEAR:W_SOURCE,
W_HEADER,
W_ITEM,
W_FCAT,
W_LAYOUT,
W_MSGCOLL,
W_MSG_DISP,
W_ITEM_QAS,
W_COMP_QAS,
W_COMP,
W_COM2,
W_NUM_QAS,
W_BDCDATA.
****Refresh Internal tables
REFRESH: T_BDCDATA,
T_HEADER,
T_ITEM,
T_MSGCOLL,
T_MSG_DISP,
T_ITEM_QAS,
T_COMP_QAS,
T_COMP,
T_FCAT,
T_SOURCE.
** AT SELECTION SCREEN DECLARATION
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
PERFORM GET_FILENAME CHANGING P_FNAME.
** START OF SELECTION DECLARATION
START-OF-SELECTION.
**** Uploading flat file data
PERFORM UPLOAD_DATA.
**** Divide Header and Item Data
PERFORM SUB_CONVERT_DATA.
***** Calling bdc for C201
PERFORM UPLOAD_BDC_DATA.
*** Populating Fieldcat
PERFORM FCAT_LOG.
***** Displaying Values
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*& Form GET_FILENAME
*----------------------------------------------------------------------*
FORM GET_FILENAME CHANGING P_FNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
* EXPORTING
* PROGRAM_NAME = SYST-REPID
* DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
* STATIC = ' '
* MASK = '*.doc'
CHANGING
FILE_NAME = P_FNAME
* EXCEPTIONS
* MASK_TOO_LONG = 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.
*&---------------------------------------------------------------------*
*& Form UPLOAD_DATA
*----------------------------------------------------------------------*
FORM UPLOAD_DATA .
DATA : W_RAWDATA TYPE TRUXS_T_TEXT_DATA,
W_FNAME TYPE STRING.
W_FNAME = P_FNAME.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
* I_LINE_HEADER = 'X'
I_TAB_RAW_DATA = W_RAWDATA
I_FILENAME = P_FNAME
TABLES
I_TAB_CONVERTED_DATA = T_SOURCE[].
DO P_HEADER TIMES.
DELETE T_SOURCE INDEX 1.
ENDDO.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form UPLOAD_BDC_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM UPLOAD_BDC_DATA .
DATA : X TYPE I,
COUNT TYPE I,
L_PLNAL TYPE CHAR2.
DATA : W_MAPL TYPE MAPL.
BATCH_PARAMS-DEFSIZE = 'X'.
BATCH_PARAMS-DISMODE = P_MODE.
BATCH_PARAMS-UPDMODE = 'A'.
* BATCH_PARAMS-NOBINPT = ''.
* BATCH-
CLEAR W_HEADER.
LOOP AT T_HEADER INTO W_HEADER.
MOVE W_HEADER-PLNAL TO L_PLNAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_PLNAL
IMPORTING
OUTPUT = L_PLNAL.
CLEAR L_MATNR.
SELECT SINGLE * FROM MAPL INTO W_MAPL WHERE MATNR = W_HEADER-MATNR AND WERKS =
W_HEADER-WERKS AND PLNTY = '2' AND PLNAL = L_PLNAL.
IF SY-SUBRC = 0.
W_MSG_DISP-MTYPE = 'E' .
CONCATENATE 'For the Material' W_HEADER-MATNR 'the Group' W_MAPL-PLNNR
'Already created for Group counter' L_PLNAL INTO W_MSG_DISP-MESSAGE SEPARATED BY
''.
APPEND W_MSG_DISP TO T_MSG_DISP.
CLEAR W_MSG_DISP.
CONTINUE.
ENDIF.
REFRESH : T_BDCDATA.
DATA : L_SPACE TYPE STRING.
DATA : LW_MAPL TYPE MAPL.
* BREAK-POINT.
*&-------------------------------------------------------------------------------&
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4000'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RC27M-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'RC271-PLNAL' W_HEADER-PLNAL." '2'.
PERFORM BDC_FIELD USING 'RC27M-MATNR' W_HEADER-MATNR." 'ZD2003'.
PERFORM BDC_FIELD USING 'RC27M-WERKS' W_HEADER-WERKS. " '1102'.
PERFORM BDC_FIELD USING 'RC271-PROFIDNETZ' W_HEADER-PROFIDNETZ. "
'PI01'.
PERFORM BDC_FIELD USING 'RC271-STTAG' W_HEADER-STTAG." '26.03.2018'.
CLEAR LW_MAPL.
SELECT SINGLE * FROM MAPL INTO LW_MAPL WHERE MATNR = W_HEADER-MATNR AND WERKS =
W_HEADER-WERKS.
IF SY-SUBRC = 0.
PERFORM BDC_FIELD USING 'RC271-PLNNR' LW_MAPL-PLNNR." L_SPACE.
ELSE.
CLEAR L_SPACE.
PERFORM BDC_FIELD USING 'RC271-PLNNR' L_SPACE.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '4210'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLKOD-STATU'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'PLKOD-VERWE' W_HEADER-VERWE." '4'.
PERFORM BDC_FIELD USING 'PLKOD-STATU' W_HEADER-STATU." '1'.
PERFORM BDC_FIELD USING 'PLKOD-PLNME' 'KG'.
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '4210'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLKOD-WERKS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=VOUE'.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLPOD-BMSCH(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENT1'.
*&-------------------------------------------------------------------------------&
CLEAR L_PDOWN.
CLEAR : W_ITEM, W_NUM,W_PREV.
W_PREV = 1.
LOOP AT T_ITEM INTO W_ITEM WHERE PLNAL = W_HEADER-PLNAL AND MATNR = W_HEADER-
MATNR AND WERKS = W_HEADER-WERKS.
CLEAR W_NO.
W_NUM = W_NUM + 1.
IF W_NUM < 10.
MOVE '(0' TO W_NO.
ELSE.
MOVE '(' TO W_NO.
ENDIF.
CLEAR W_STR.
CONCATENATE 'PLPOD-ARBPL' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-ARBPL.
CLEAR W_STR.
CONCATENATE 'PLPOD-LTXA1' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-LTXA1.
CLEAR W_STR.
CONCATENATE 'PLPOD-BMSCH' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-BMSCH_IT.
CLEAR W_STR.
CONCATENATE 'PLPOD-STEUS' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-STEUS.
IF W_ITEM-PVZNR IS NOT INITIAL.
CLEAR W_STR.
CONCATENATE 'PLPOD-PHFLG' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR 'X'.
CLEAR W_STR.
CONCATENATE 'PLPOD-PVZNR' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-PVZNR.
CLEAR W_STR.
CONCATENATE 'PLPOD-PHSEQ' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-PHSEQ.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
CLEAR W_STR.
CONCATENATE 'PLPOD-BMSCH' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING 'BDC_CURSOR' W_STR.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW01' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW01.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW02' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW02.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW03' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW03.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW04' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW04.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW05' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW05.
ENDIF.
IF W_NUM = 15.
L_PDOWN = L_PDOWN + 1.
DO L_PDOWN TIMES.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
CLEAR W_STR.
CONCATENATE 'PLPOD-BMSCH' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING 'BDC_CURSOR' W_STR.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=P+'.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLPOD-VORNR(01)'."W_STR.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
ENDDO.
CLEAR W_NUM.
W_NUM = 1.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLPOD-BMSCH(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENT1'.
ENDIF.
ENDLOOP.
CLEAR : W_NUM, L_PDOWN.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLPOD-VORNR(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=BU'.
REFRESH T_MSGCOLL .
CALL TRANSACTION 'C201' USING T_BDCDATA OPTIONS FROM BATCH_PARAMS
MESSAGES INTO T_MSGCOLL.
PERFORM GET_MESSAGES.
ENDLOOP.
CLEAR : W_COM.
ENDFORM.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR W_BDCDATA.
W_BDCDATA-PROGRAM = PROGRAM.
W_BDCDATA-DYNPRO = DYNPRO.
W_BDCDATA-DYNBEGIN = 'X'.
APPEND W_BDCDATA TO T_BDCDATA.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE OR FNAM EQ 'RC271-PLNNR'.
CLEAR W_BDCDATA.
W_BDCDATA-FNAM = FNAM.
W_BDCDATA-FVAL = FVAL.
APPEND W_BDCDATA TO T_BDCDATA.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SUB_CONVERT_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM SUB_CONVERT_DATA .
SORT T_SOURCE BY PLNAL MATNR.
CLEAR W_SOURCE.
CLEAR W_SOURCE_T.
LOOP AT T_SOURCE INTO W_SOURCE_T.
W_SOURCE = W_SOURCE_T.
AT NEW WERKS.
L_MATNR = W_SOURCE-MATNR.
L_PLNAL = W_SOURCE-PLNAL.
W_HEADER-PLNAL = W_SOURCE-PLNAL .
W_HEADER-MATNR = W_SOURCE-MATNR .
W_HEADER-WERKS = W_SOURCE-WERKS .
W_HEADER-PROFIDNETZ = W_SOURCE-PROFIDNETZ.
W_HEADER-STTAG = W_SOURCE-STTAG .
W_HEADER-STATU = W_SOURCE-STATU .
W_HEADER-VERWE = W_SOURCE-VERWE.
W_HEADER-BMSCH = W_SOURCE-BMSCH.
W_HEADER-MEINH = W_SOURCE-MEINH.
W_HEADER-UMREZ = W_SOURCE-UMREZ.
W_HEADER-UMREN = W_SOURCE-UMREN.
APPEND W_HEADER TO T_HEADER .
CLEAR W_HEADER .
ENDAT.
IF W_SOURCE-ARBPL IS NOT INITIAL.
W_ITEM-MATNR = L_MATNR .
W_ITEM-WERKS = W_SOURCE-WERKS .
W_ITEM-OPRNO = W_SOURCE-OPRNO.
W_ITEM-PLNAL = L_PLNAL .
W_ITEM-PVZNR = W_SOURCE-PVZNR.
W_ITEM-PHSEQ = W_SOURCE-PHSEQ.
W_ITEM-ARBPL = W_SOURCE-ARBPL.
W_ITEM-STEUS = W_SOURCE-STEUS.
W_ITEM-BMSCH_IT = W_SOURCE-BMSCH_IT. " Base Quantity
W_ITEM-LTXA1 = W_SOURCE-LTXA1.
W_ITEM-STKEY = W_SOURCE-STKEY.
W_ITEM-VGW01 = W_SOURCE-VGW01.
W_ITEM-VGW02 = W_SOURCE-VGW02.
W_ITEM-VGW03 = W_SOURCE-VGW03.
W_ITEM-VGW04 = W_SOURCE-VGW04.
W_ITEM-VGW05 = W_SOURCE-VGW05.
W_ITEM-VGW06 = W_SOURCE-VGW06.
APPEND W_ITEM TO T_ITEM .
APPEND W_ITEM TO T_ITEM_QAS.
CLEAR W_ITEM .
ENDIF.
* IF W_SOURCE-MATNR_COMP IS NOT INITIAL.
* W_COMP-MATNR = L_MATNR .
* W_COMP-VERID = L_VERID.
* W_COMP-MATNR_COMP = W_SOURCE-MATNR_COMP.
* W_COMP-VORNR_ITEM = W_SOURCE-VORNR_ITEM.
* APPEND W_COMP TO T_COMP.
* APPEND W_COMP TO T_COMP_QAS.
* CLEAR W_COMP.
* ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FCAT_LOG .
REFRESH T_FCAT .
PERFORM FIELD_FCAT_CATLOG USING : 'MTYPE' 'Message Type',
'MESSAGE' 'Description'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
W_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
* I_CALLBACK_PF_STATUS_SET = 'ZSTANDARD'
* I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = T_FCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = T_MSG_DISP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------*
*& Form FIELD_FCAT_CATLOG
*----------------------------------------------------------------------*
FORM FIELD_FCAT_CATLOG USING P_FNAME TYPE CHAR10
P_DES TYPE CHAR30 .
W_FCAT-FIELDNAME = P_FNAME .
W_FCAT-SELTEXT_L = P_DES .
APPEND W_FCAT TO T_FCAT .
CLEAR W_FCAT .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_MESSAGES
*----------------------------------------------------------------------*
FORM GET_MESSAGES .
CLEAR W_MSGCOLL.
LOOP AT T_MSGCOLL INTO W_MSGCOLL.
CLEAR G_MESG.
*--- Function module to get the message.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = W_MSGCOLL-MSGID
LANG = SY-LANGU
NO = W_MSGCOLL-MSGNR
V1 = W_MSGCOLL-MSGV1
V2 = W_MSGCOLL-MSGV2
V3 = W_MSGCOLL-MSGV3
V4 = W_MSGCOLL-MSGV4
IMPORTING
MSG = G_MESG.
IF W_MSGCOLL-MSGTYP = 'S' .
W_MSG_DISP-MTYPE = W_MSGCOLL-MSGTYP .
W_MSG_DISP-MESSAGE = G_MESG.
APPEND W_MSG_DISP TO T_MSG_DISP.
CLEAR W_MSG_DISP .
ELSEIF W_MSGCOLL-MSGTYP = 'E' .
W_MSG_DISP-MTYPE = W_MSGCOLL-MSGTYP .
W_MSG_DISP-MESSAGE = G_MESG .
APPEND W_MSG_DISP TO T_MSG_DISP.
CLEAR W_MSG_DISP .
ENDIF .
CLEAR W_MSGCOLL .
ENDLOOP.
ENDFORM. " GET_MESSAGES
*&---------------------------------------------------------------------*
*& Form SUB_RECIPE_TWO
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM SUB_RECIPE_TWO .
ENDFORM.