Skip to Content
-1
Jun 07, 2018 at 06:10 AM

Vk11 pricing conditions bulk upload

560 Views

SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

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

*&  Include           ZVEN6T

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

TYPE-POOLS:ICON.

TABLES:SSCRFIELDS,

  KOMG,

  KONP.



***************定义结构

TYPES: BEGIN OF TY_ITAB,

         KSCHL TYPE KSCHL, "condition type 1

         VKORG TYPE KOMG-VKORG, "sales organiztion 2

         VTWEG TYPE KOMG-VTWEG, "distribution channel 3

         KUNNR TYPE KOMG-KUNNR, "customer 4

         INCO1 TYPE KOMG-INCO1, "Incoterms 5

         KDKGR TYPE KOMG-KDKGR, "Container Size 6

         MATNR TYPE KOMG-MATNR, "Material 7

         KBETR TYPE KONP-KBETR, "price 8

         KONWA TYPE KONP-KONWA,  "Currency

         KPEIN TYPE KONP-KPEIN, "Price per 9

         KMEIN TYPE KONP-KMEIN, "unit 10

         DATAB TYPE DATAB, "valid from 11

         DATBI TYPE DATBI, "valid to 12

         XH    TYPE I,

         SEL   TYPE C,

         ZTYPE TYPE BAPI_MTYPE,

         ZMSG  TYPE BAPI_MSG,

       END OF TY_ITAB.



DATA:GT_ITAB TYPE STANDARD TABLE OF TY_ITAB,

     GS_ITAB TYPE TY_ITAB.



DATA: IT_DATA1 TYPE STANDARD TABLE OF ALSMEX_TABLINE WITH HEADER LINE,

      IS_DATA1 TYPE ALSMEX_TABLINE.

FIELD-SYMBOLS: <WA_ITAB> TYPE ALSMEX_TABLINE.



*创建ALV必不可少的组件

TYPE-POOLS SLIS.

DATA: WS_FIELDCAT        TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

      WS_FIELDGROUPS_TAB TYPE SLIS_T_SP_GROUP_ALV,

      WS_LAYOUT          TYPE SLIS_LAYOUT_ALV,

      WS_SORTFIELDS_TAB  TYPE SLIS_T_SORTINFO_ALV WITH HEADER  LINE,

      WS_EVENTS          TYPE SLIS_T_EVENT,



      ALV_SP_GROUP       TYPE SLIS_T_SP_GROUP_ALV,

      ALV_T_SORTINFO     TYPE SLIS_T_SORTINFO_ALV.

DATA: V_REPID LIKE SY-REPID.



DATA: NN TYPE I VALUE 0.

DATA: TITLE TYPE LVC_TITLE.

DATA: ILEN    TYPE I VALUE 0,

      CLEN(7) TYPE C.

DATA GV_FIELD LIKE SMP_DYNTXT.





SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

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

*&  Include           ZUPWIPS

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



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

*&  Include           ZVEN6S

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

SELECTION-SCREEN FUNCTION KEY 1.

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

PARAMETERS:P_FNAME LIKE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK BLK1.





SELECTION-SCREEN BEGIN OF BLOCK BLK02 WITH FRAME TITLE TEXT-002 .

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: P_01  RADIOBUTTON GROUP GRP1   DEFAULT 'X' USER-COMMAND MI1.

SELECTION-SCREEN COMMENT (55) TEXT-S01 FOR FIELD P_01.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: P_02  RADIOBUTTON GROUP GRP1 .

SELECTION-SCREEN COMMENT (55) TEXT-S02 FOR FIELD P_02.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: P_03  RADIOBUTTON GROUP GRP1 .

SELECTION-SCREEN COMMENT (55) TEXT-S03 FOR FIELD P_03.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: P_04  RADIOBUTTON GROUP GRP1 .

SELECTION-SCREEN COMMENT (60) TEXT-S04 FOR FIELD P_04.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK BLK02 .





AT SELECTION-SCREEN.

  PERFORM FRM_FC_UCOMM.



INITIALIZATION.

  PERFORM FRM_INIT_DATA.





AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.

  CALL FUNCTION 'WS_FILENAME_GET'

    EXPORTING

      MASK             = ',EXCEL FILE,*.XLS;*.XLSX;'

      MODE             = 'O' "S为保存,O为打开

    IMPORTING

      FILENAME         = P_FNAME

    EXCEPTIONS

      INV_WINSYS       = 1

      NO_BATCH         = 2

      SELECTION_CANCEL = 3

      SELECTION_ERROR  = 4

      OTHERS           = 5.

  IF SY-SUBRC NE 0 AND SY-SUBRC NE 3.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

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

*&      Form  FRM_FC_UCOMM

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM FRM_FC_UCOMM .

  DATA: LV_UCOMM LIKE SY-UCOMM.

  LV_UCOMM = SY-UCOMM.



  CASE LV_UCOMM.

    WHEN 'FC01'.

      PERFORM FRM_DOW_DATA.

    WHEN OTHERS.

  ENDCASE.

ENDFORM.                    " FRM_FC_UCOMM

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

*&      Form  FRM_DOW_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM FRM_DOW_DATA .

  DATA: LV_OBJID   TYPE STRING VALUE 'ZVK11_NEW',

        LS_OBJDATA TYPE WWWDATATAB.



  DATA: LV_TITLE         TYPE STRING,

        LV_FILENAME      TYPE STRING,

        LV_DESTINATION   TYPE STRING VALUE 'D:\',

        LV_FILENAME_TEMP TYPE STRING,

        LV_FULLPATH      TYPE STRING,

        LV_PATH          TYPE STRING,

        LV_USR_ACT       TYPE I,

        LV_RC            LIKE SY-SUBRC,

        LV_DEST          TYPE RLGRAP-FILENAME.



  CLEAR: LS_OBJDATA,LV_TITLE,LV_FILENAME,LV_FILENAME_TEMP,LV_FULLPATH,LV_PATH,

         LV_USR_ACT,LV_RC,LV_DEST.



  LV_TITLE    = TEXT-T03.

  data:lv_data type sy-datum.

  CONCATENATE LV_FILENAME 'Uploading_Sales_Price_Template-' lv_data '-Template'  INTO  LV_FILENAME.

*  LV_FILENAME = TEXT-T04.



  "取得对应的模板,并判断是否存在

  SELECT SINGLE RELID OBJID FROM WWWDATA INTO CORRESPONDING FIELDS OF LS_OBJDATA WHERE SRTF2 = 0 AND RELID = 'MI' AND OBJID = LV_OBJID.

  IF SY-SUBRC NE 0 AND LS_OBJDATA-OBJID EQ SPACE.

    MESSAGE TEXT-M03 TYPE 'S' DISPLAY LIKE 'E'.

    EXIT.

  ELSE.

    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG

      EXPORTING

        WINDOW_TITLE      = LV_TITLE

        DEFAULT_EXTENSION = 'XLS'

        DEFAULT_FILE_NAME = LV_FILENAME

*       FILE_FILTER       = 'EXCEL|*.xlsx;*xls'

        FILE_FILTER       = 'EXCEL|*xls'

        INITIAL_DIRECTORY = LV_DESTINATION

      CHANGING

        FILENAME          = LV_FILENAME_TEMP

        PATH              = LV_PATH

        FULLPATH          = LV_FULLPATH

        USER_ACTION       = LV_USR_ACT.

    IF SY-SUBRC = 0 AND LV_USR_ACT <> CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.

      LV_DEST = LV_FULLPATH.

    ELSEIF LV_USR_ACT = CL_GUI_FRONTEND_SERVICES=>ACTION_CANCEL.

      CLEAR: LV_DEST.

    ENDIF.



  ENDIF.



  IF LV_DEST NE SPACE.

    CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'

      EXPORTING

        KEY         = LS_OBJDATA

        DESTINATION = LV_DEST

      IMPORTING

        RC          = LV_RC.

    IF LV_RC NE 0.

      MESSAGE TEXT-M04 TYPE 'S' DISPLAY LIKE 'E'.

      EXIT.

    ENDIF.

  ENDIF.

ENDFORM.                    " FRM_DOW_DATA

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

*&      Form  FRM_INIT_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM FRM_INIT_DATA .

  GV_FIELD-ICON_ID = '@48@'.

  GV_FIELD-ICON_TEXT = TEXT-F01.

  GV_FIELD-QUICKINFO = TEXT-F01.

  SSCRFIELDS-FUNCTXT_01 = GV_FIELD.

ENDFORM.                    " FRM_INIT_DATA





SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}

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

*&  Include           ZUPWIPE

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

START-OF-SELECTION.

  IF P_FNAME IS INITIAL.

    MESSAGE S001(00) WITH 'Please enter a file location!' DISPLAY LIKE 'E'.

    RETURN.

  ENDIF.

  BREAK XIAOYONG.

  PERFORM GET_DATA.

  PERFORM START_ALV.





SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L0S31 {
font-style: italic;
color: #808080;
}
.L0S32 {
color: #3399FF;
}
.L0S33 {
color: #4DA619;
}
.L0S52 {
color: #0000FF;
}
.L0S55 {
color: #800080;
}
.L0S70 {
color: #808080;
}

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

*&  Include           ZUPWIPF

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

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

*&      Form  GET_DATA

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM GET_DATA .

  CHECK P_FNAME IS NOT INITIAL.

  DATA:LV_LINE TYPE I.

  REFRESH IT_DATA1.

  DATA:GT_XT TYPE STANDARD TABLE OF ZINVCOST,

       GS_XT TYPE ZINVCOST.



  FIELD-SYMBOLS: <L_VALUE> TYPE ANY.

  DATA:T_BEGIN_COL TYPE I,

       T_END_COL   TYPE I.

  T_BEGIN_COL = 8.

  DO 1000 TIMES.

    T_END_COL = T_BEGIN_COL + 2000.

    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

      EXPORTING

        FILENAME                = P_FNAME

        I_BEGIN_COL             = '2'

        I_BEGIN_ROW             = T_BEGIN_COL

        I_END_COL               = '14'

        I_END_ROW               = T_END_COL

      TABLES

        INTERN                  = IT_DATA1 "对应itab

      EXCEPTIONS

        INCONSISTENT_PARAMETERS = 1

        UPLOAD_OLE              = 2

        OTHERS                  = 3.



*  IF SY-SUBRC <> 0.

*    MESSAGE S001(00) WITH 'File upload unsuccessful!' DISPLAY LIKE 'E'.

*    RETURN.

*  ENDIF.

    T_BEGIN_COL = T_END_COL + 1.

    IF IT_DATA1[] IS INITIAL.

      EXIT.

    ENDIF.



    SORT IT_DATA1 BY ROW COL.

    LOOP AT IT_DATA1 INTO IS_DATA1.

      ASSIGN COMPONENT IS_DATA1-COL OF STRUCTURE GS_ITAB TO <L_VALUE>.

      IF IS_DATA1-VALUE IS INITIAL.

        CLEAR: IS_DATA1-VALUE.

        <L_VALUE> = IS_DATA1-VALUE.

      ELSE.

        <L_VALUE> = IS_DATA1-VALUE.

      ENDIF.



      AT END OF ROW.

        APPEND GS_ITAB TO GT_ITAB.

        CLEAR:GS_ITAB.

      ENDAT.

    ENDLOOP.



    LOOP AT GT_ITAB INTO GS_ITAB.

      GS_ITAB-XH = SY-TABIX.

      MODIFY GT_ITAB FROM GS_ITAB.

    ENDLOOP.



    CLEAR:IT_DATA1[].

  ENDDO.





ENDFORM.                    " GET_DATA

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

*&      Form  START_ALV

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

*       text

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

*  -->  p1        text

*  <--  p2        text

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

FORM START_ALV .

  DEFINE HOUT.

    NN = NN + 1.

    WS_FIELDCAT-TABNAME = 'GT_ITAB'.

    WS_FIELDCAT-FIELDNAME = &1.

    WS_FIELDCAT-KEY = &5.

    WS_FIELDCAT-SELTEXT_M =  &2.

    WS_FIELDCAT-COL_POS   =  NN.

    WS_FIELDCAT-OUTPUTLEN =  &3.

*   ws_fieldcat-datatype  = &4.

    WS_FIELDCAT-DO_SUM    = &4.

    WS_FIELDCAT-NO_ZERO   = &6.

    WS_FIELDCAT-LZERO     = 'X'.

    APPEND WS_FIELDCAT.

    CLEAR WS_FIELDCAT.

  END-OF-DEFINITION.



  HOUT 'XH'           'Line Items'                  '4'       ''    '' ''.

  HOUT 'KSCHL'        'Condition Type'              '10'      ''    '' ''.

  HOUT 'VKORG'        'Sales Organiztion'           '10'      ''    '' ''.

  HOUT 'VTWEG'        'Distribution Channel'        '10'      ''    '' ''.

  HOUT 'KUNNR'        'Customer'                    '10'      ''    '' ''.

  HOUT 'INCO1'        'Incoterms'                   '10'      ''    '' ''.

  HOUT 'KDKGR'        'Container Size'              '10'      ''    '' ''.

  HOUT 'MATNR'        'Material'                    '10'      ''    '' ''.

  HOUT 'KBETR'        'Price'                       '10'      ''    '' ''.

  HOUT 'KONWA'        'Currency'                    '10'      ''    '' ''.

  HOUT 'KPEIN'        'Price Per'                   '10'      ''    '' ''.

  HOUT 'KMEIN'        'Unit'                        '10'      ''    '' ''.

  HOUT 'DATAB'        'Valid From'                  '10'      ''    '' ''.

  HOUT 'DATBI'        'Valid To'                    '10'      ''    '' ''.

  HOUT 'ZTYPE'        'type'                        '10'      ''    '' ''.

  HOUT 'ZMSG'         'Message'                     '20'      ''    '' ''.

  WS_LAYOUT-ZEBRA             = 'X'.

  WS_LAYOUT-GET_SELINFOS      = ''.

  WS_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  WS_LAYOUT-DETAIL_POPUP      = 'X'.

  WS_LAYOUT-NO_INPUT         = ''.

  WS_LAYOUT-BOX_FIELDNAME     = 'SEL'.



  V_REPID = SY-REPID.



  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

      I_CALLBACK_PROGRAM       = V_REPID

      I_CALLBACK_PF_STATUS_SET = 'MENU_SET'

      I_CALLBACK_USER_COMMAND  = 'EXECUTE_COMMAND'

      IS_LAYOUT                = WS_LAYOUT

      IT_FIELDCAT              = WS_FIELDCAT[]

      IT_EVENTS                = WS_EVENTS[]

    TABLES

      T_OUTTAB                 = GT_ITAB

    EXCEPTIONS

      PROGRAM_ERROR            = 1

      OTHERS                   = 2.

ENDFORM.                    " START_ALV



FORM MENU_SET USING RT_EXTAB TYPE SLIS_T_EXTAB..

  SET PF-STATUS '100'.

ENDFORM. "menu_set





FORM EXECUTE_COMMAND USING R_UCOMM LIKE SY-UCOMM

                        RS_SELFIELD TYPE SLIS_SELFIELD.

  DATA:LV_KONH TYPE KONH,

       LS_KEYS TYPE KOMG,

       KOMK    LIKE TABLE OF KOMK WITH HEADER LINE,

       KOMP    LIKE TABLE OF KOMP WITH HEADER LINE,

       LS_KOMV TYPE KOMV,

       LT_KOMV TYPE TABLE OF KOMV.

  DATA VL_MSG TYPE BAPI_MSG.



  DATA:LV_VAKEY TYPE KONH-VAKEY.

  BREAK       XIAOYONG.

  CASE R_UCOMM.

    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

      CLEAR R_UCOMM.

      SET SCREEN 0.

      LEAVE SCREEN.



    WHEN 'SEND'.

      LOOP AT GT_ITAB INTO GS_ITAB WHERE SEL = 'X'.



        CLEAR:LS_KEYS,LV_KONH.

*        CONCATENATE '%' GS_ITAB-MATNR '%' INTO LV_VAKEY.

*        SELECT SINGLE * INTO LV_KONH FROM KONH

*          WHERE KSCHL = GS_ITAB-KSCHL

*            AND VAKEY LIKE LV_VAKEY.

*        IF SY-SUBRC = 0.

*        ELSE.

*          LV_KONH-KOTABNR = '305'.

*        ENDIF.



        CALL FUNCTION 'RV_CONDITION_RESET'

* EXPORTING

*   FREE_MEMORY       =

          .



        IF P_01 = 'X'.

          LV_KONH-KOTABNR = '305'.

          LS_KEYS-MATNR = GS_ITAB-MATNR.

          LS_KEYS-VKORG = GS_ITAB-VKORG.

          LS_KEYS-VTWEG = GS_ITAB-VTWEG.

          LS_KEYS-KUNNR = GS_ITAB-KUNNR.

        ELSEIF P_02 = 'X'.

          LV_KONH-KOTABNR = '910'.

          LS_KEYS-MATNR = GS_ITAB-MATNR.

          LS_KEYS-VKORG = GS_ITAB-VKORG.

          LS_KEYS-VTWEG = GS_ITAB-VTWEG.

          LS_KEYS-INCO1 = GS_ITAB-INCO1.

          LS_KEYS-KUNNR = GS_ITAB-KUNNR.

        ELSEIF P_03 = 'X'.

          LV_KONH-KOTABNR = '911'.

          LS_KEYS-MATNR = GS_ITAB-MATNR.

          LS_KEYS-VKORG = GS_ITAB-VKORG.

          LS_KEYS-VTWEG = GS_ITAB-VTWEG.

          LS_KEYS-KDKGR = GS_ITAB-KDKGR.

          LS_KEYS-KUNNR = GS_ITAB-KUNNR.

        ELSEIF P_04 = 'X'.

          LV_KONH-KOTABNR = '912'.

          LS_KEYS-MATNR = GS_ITAB-MATNR.

          LS_KEYS-VKORG = GS_ITAB-VKORG.

          LS_KEYS-VTWEG = GS_ITAB-VTWEG.

          LS_KEYS-INCO1 = GS_ITAB-INCO1.

          LS_KEYS-KDKGR = GS_ITAB-KDKGR.

          LS_KEYS-KUNNR = GS_ITAB-KUNNR.

        ENDIF.



        CLEAR:LS_KOMV.

        LS_KOMV-KBETR = GS_ITAB-KBETR.

        LS_KOMV-WAERS = GS_ITAB-KONWA.

        LS_KOMV-KPEIN = GS_ITAB-KPEIN.

        LS_KOMV-KMEIN = GS_ITAB-KMEIN.

        LS_KOMV-KSCHL = GS_ITAB-KSCHL.

        APPEND LS_KOMV TO LT_KOMV.

        CALL FUNCTION 'RV_CONDITION_COPY'

          EXPORTING

            APPLICATION                 = 'V'

            CONDITION_TABLE             = LV_KONH-KOTABNR

            CONDITION_TYPE              = GS_ITAB-KSCHL

            DATE_FROM                   = GS_ITAB-DATAB

            DATE_TO                     = GS_ITAB-DATBI

*           ENQUEUE                     = ' '

*           I_KOMK                      = ' '

*           I_KOMP                      = ' '

            KEY_FIELDS                  = LS_KEYS

            MAINTAIN_MODE               = 'A'

*           NO_AUTHORITY_CHECK          = ' '

*           NO_FIELD_CHECK              = ' '

*           SELECTION_DATE              = '00000000'

*           KEEP_OLD_RECORDS            = ' '

*           MATERIAL_M                  =

*           USED_BY_IDOC                = ' '

*           I_KONA                      =

*           OVERLAP_CONFIRMED           = ' '

*           NO_DB_UPDATE                = ' '

*           USED_BY_RETAIL              = ' '

* IMPORTING

*           E_KOMK                      =

*           E_KOMP                      =

*           NEW_RECORD                  =

*           E_DATAB                     =

*           E_DATBI                     =

*           E_PRDAT                     =

          TABLES

            COPY_RECORDS                = LT_KOMV

*           COPY_STAFFEL                =

*           COPY_RECS_IDOC              =

          EXCEPTIONS

            ENQUEUE_ON_RECORD           = 1

            INVALID_APPLICATION         = 2

            INVALID_CONDITION_NUMBER    = 3

            INVALID_CONDITION_TYPE      = 4

            NO_AUTHORITY_EKORG          = 5

            NO_AUTHORITY_KSCHL          = 6

            NO_AUTHORITY_VKORG          = 7

            NO_SELECTION                = 8

            TABLE_NOT_VALID             = 9

            NO_MATERIAL_FOR_SETTLEMENT  = 10

            NO_UNIT_FOR_PERIOD_COND     = 11

            NO_UNIT_REFERENCE_MAGNITUDE = 12

            INVALID_CONDITION_TABLE     = 13

            OTHERS                      = 14.

        IF SY-SUBRC <> 0.



          CLEAR:VL_MSG.

          CALL FUNCTION 'MESSAGE_PREPARE'

            EXPORTING

              MSG_ID   = SY-MSGID

              MSG_NO   = SY-MSGNO

              MSG_VAR1 = SY-MSGV1

              MSG_VAR2 = SY-MSGV2

              MSG_VAR3 = SY-MSGV3

              MSG_VAR4 = SY-MSGV4

            IMPORTING

              MSG_TEXT = VL_MSG.

          GS_ITAB-ZTYPE = 'E'.

          GS_ITAB-ZMSG = VL_MSG.

        ELSE.

          CALL FUNCTION 'RV_CONDITION_SAVE'.

          COMMIT WORK AND WAIT.

          CALL FUNCTION 'RV_CONDITION_RESET'.

          COMMIT WORK AND WAIT.

          GS_ITAB-ZTYPE = 'S'.

          GS_ITAB-ZMSG = 'Update completed success'.

        ENDIF.



        CLEAR:LT_KOMV[],LS_KOMV.

        MODIFY GT_ITAB FROM GS_ITAB.

      ENDLOOP.



  ENDCASE.

  RS_SELFIELD-REFRESH = 'X'.



ENDFORM.