100% found this document useful (1 vote)
138 views11 pages

ZC201UP

This document defines data types and internal tables to store and process header and item level data from a flat file upload into transaction C201 in SAP. It includes declarations for uploading the flat file data, dividing the data into headers and items, populating transaction fields using BDC, displaying the processed data, and handling any error messages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
138 views11 pages

ZC201UP

This document defines data types and internal tables to store and process header and item level data from a flat file upload into transaction C201 in SAP. It includes declarations for uploading the flat file data, dividing the data into headers and items, populating transaction fields using BDC, displaying the processed data, and handling any error messages.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

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

*& 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.

You might also like