ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 上传文件改sap MM03下载文件到本地

上传文件改sap MM03下载文件到本地

原创 Linux操作系统 作者:103104521 时间:2013-01-08 09:59:02 0 删除 编辑
  SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style. italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } *&---------------------------------------------------------------------*
*& Report  /TDK/CU00010
*&
*&---------------------------------------------------------------------*
*&
*PROGRAM : /TDK/CU00010
*CREATE BY  : WANG JIANG TAO
*DATE: 2012.12.6
*DESCRIPTION : Accounting related Material Master Maintenance
************************************************************************
*  CHANGE LOG
* DATE  NO  CHANGED BY  CONTENTS
*  2012/12/06 r01-00   a6023629  Create New

REPORT  /TDK/CU00010.

TYPE-POOLS: TRUXS,SSCR.

TABLES : T001K, T001W,MBEW,/TDK/CT000201,MARC.

CONSTANTS: C_K TYPE C VALUE 'X'.

DATA: RESTRICT TYPE SSCR_RESTRICT,
      OPTLIST TYPE SSCR_OPT_LIST,
      ASS TYPE SSCR_ASS.
DATA:IT_RAW TYPE TRUXS_T_TEXT_DATA.

DATA : Z_YEAR     LIKE  BAPI0002_4-FISCAL_YEAR,
       Z_MONTH    LIKE  BAPI0002_4-FISCAL_PERIOD.
DATA : Z_STRING   TYPE STRING.
DATA : TH_T001K   LIKE  T001K,
       TD_T001K   LIKE TABLE OF TH_T001K.
DATA : LTH_KOKRS     LIKE TKA02-KOKRS,
       LTH_PERIOD    LIKE BAPI0002_4-POSTING_DATE.
DATA : W_FILENAME      TYPE STRING.


DATA : BEGIN OF TH_MBEW,
       MATNR    LIKE    MBEW-MATNR,
       BWKEY    LIKE    MBEW-BWKEY,
       PEINH    LIKE    MBEW-PEINH,
       ZPLP1    LIKE    MBEW-ZPLP1,
       ZPLD1    LIKE    MBEW-ZPLD1,
       ZPLP2    LIKE    MBEW-ZPLP2,
       ZPLD2    LIKE    MBEW-ZPLD2,
       ZPLP3    LIKE    MBEW-ZPLP3,
       ZPLD3    LIKE    MBEW-ZPLD3,
       BWPRS    LIKE    MBEW-BWPRS,
       BWPS1    LIKE    MBEW-BWPS1,
       VJBWS    LIKE    MBEW-VJBWS,
       BWPRH    LIKE    MBEW-BWPRH,
       BWPH1    LIKE    MBEW-BWPH1,
       VJBWH    LIKE    MBEW-VJBWH,
       END OF TH_MBEW,
TD_MBEW LIKE TABLE OF TH_MBEW.
DATA : LTH_MONTH LIKE BAPI0002_4-FISCAL_PERIOD,
       LTH_YEAR  LIKE BAPI0002_4-FISCAL_YEAR.
DATA : TD_MAT_HIER TYPE STANDARD TABLE OF /TDK/SC0002,
       TH_MAT_HIER LIKE LINE OF TD_MAT_HIER,
       LTD_MATNR LIKE STANDARD TABLE OF /TDK/SC0001,
       LST_MATNR LIKE LINE OF LTD_MATNR.
DATA : BEGIN OF TH_SAVE,
       Z_BU(4)    TYPE C,                                        "B.Unit
       Z_CBU(10)  TYPE C,                                        "CBU
       Z_SBU(10)  TYPE C,                                        "SBU
       Z_GRO(10)  TYPE C,                                        "TDK-Item Group
       MATNR      LIKE MBEW-MATNR,                               "Material
       MAKTX      LIKE MAKT-MAKTX,                               "Material Text
       WERKS      LIKE T001W-WERKS,                              "Plant Code
       NAME1      LIKE T001W-NAME1,                              "Plant Code Text
       ZPLP1(40)  TYPE C,                                        "Planned Price 1
       PEINH      LIKE MBEW-PEINH,                               "Price Unit
       END OF TH_SAVE.
DATA : TH_OUTPUT LIKE TH_SAVE,
       TD_OUTPUT LIKE TABLE OF TH_OUTPUT.

DATA : BEGIN OF TH_OUTPUT1,
       Z_BU(4)    TYPE C,                                        "B.Unit
       Z_CBU(10)  TYPE C,                                        "CBU
       Z_SBU(10)  TYPE C,                                        "SBU
       Z_GRO(10)  TYPE C,                                        "TDK-Item Group
       MATNR      LIKE MBEW-MATNR,                               "Material
       MAKTX      LIKE MAKT-MAKTX,                               "Material Text
       WERKS      LIKE T001W-WERKS,                              "Plant Code
       NAME1      LIKE T001W-NAME1,                              "Plant Code Text
       ZPLP1(40)  TYPE C,                                        "FIELD
       END OF TH_OUTPUT1,
       TD_OUTPUT1 LIKE TABLE OF TH_OUTPUT1.

DATA : TD_SAVE LIKE TABLE OF TH_SAVE.
DATA : BEGIN OF TH_RESULT_IMPORT,
       Z_BU(4)    TYPE C,                                        "B.Unit
       Z_CBU(10)  TYPE C,                                        "CBU
       Z_SBU(10)  TYPE C,                                        "SBU
       Z_GRO(10)  TYPE C,                                        "TDK-Item Group
       MATNR      LIKE MBEW-MATNR,                               "Material
       MAKTX      LIKE MAKT-MAKTX,                               "Material Text
       WERKS      LIKE T001W-WERKS,                              "Plant Code
       NAME1      LIKE T001W-NAME1,                              "Plant Code Text
       ZPLP1      LIKE MBEW-ZPLP1,                               "Planned Price 1
       ZPLP2      LIKE MBEW-ZPLP2,                               "Planned Price 2
       ZPLP3      LIKE MBEW-ZPLP3,                               "Planned Price 3
*       ZPLD1      LIKE MBEW-ZPLD1,                               "Planned price date 1
*       ZPLD2      LIKE MBEW-ZPLD2,                               "Planned price date 2
*       ZPLD3      LIKE MBEW-ZPLD3,                               "Planned price date 3
       PEINH      LIKE MBEW-PEINH,                               "Price Unit
       BWPRS      LIKE MBEW-BWPRS,                               "Tax Price 1
       BWPS1      LIKE MBEW-BWPS1,                               "Tax Price 2
       VJBWS      LIKE MBEW-VJBWS,                               "Tax Price 3
       BWPRH      LIKE MBEW-BWPRH,                               "Commercial Price 1
       BWPH1      LIKE MBEW-BWPH1,                               "Commercial Price 1
       VJBWH      LIKE MBEW-VJBWH,                               "Commercial Price 1
*       BWPEI      LIKE MBEW-BWPEI,                               "Price Unit
       FVIDK      LIKE MARC-FVIDK,                               "Production Version
       LOSGR      LIKE MARC-LOSGR,                               "Costing Lotsize
       SOBSK      LIKE MARC-SOBSK,                               "Special Procurement Type
       END OF TH_RESULT_IMPORT.
DATA: TD_RESULT_IMPORT LIKE TABLE OF TH_RESULT_IMPORT.
DATA: TH_RESULT_EXPORT LIKE TH_RESULT_IMPORT.
DATA: TD_RESULT_EXPORT LIKE TD_RESULT_IMPORT.
DATA:
      TD_HEADDATA LIKE TABLE OF BAPIMATHEAD,
      TH_HEADDATA LIKE LINE OF TD_HEADDATA,
      TD_VALUATIONDATA  LIKE TABLE OF BAPI_MBEW,
      TH_VALUATIONDATA  LIKE LINE OF TD_VALUATIONDATA,
      TD_VALUATIONDATAX LIKE TABLE OF BAPI_MBEWX,
      TH_VALUATIONDATAX LIKE LINE OF TD_VALUATIONDATAX.
DATA: TD_PLANTDATA      LIKE TABLE OF BAPI_MARC,
      TH_PLANTDATA      LIKE LINE OF TD_PLANTDATA,
      TD_PLANTDATAX     LIKE TABLE OF BAPI_MARCX,
      TH_PLANTDATAX     LIKE LINE OF TD_PLANTDATAX.

DATA: TD_RETURN LIKE TABLE OF BAPIRET2.
DATA: TH_RETURN LIKE LINE OF TD_RETURN.

PARAMETERS : P_BUKRS     LIKE   T001K-BUKRS OBLIGATORY,
             P_YEAR      LIKE   /TDK/CT000201-GJAHR OBLIGATORY,
             P_MONTH     LIKE   /TDK/CT000201-MONAT OBLIGATORY.
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.

PARAMETERS : RB1_1 RADIOBUTTON GROUP GRP1 .

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-002.
PARAMETERS : RBS1_1 RADIOBUTTON GROUP GRP2.                                                   "DEFAULT C_X USER-COMMAND RAD2.
SELECTION-SCREEN COMMENT 6(30) TEXT-003 FOR FIELD RBS1_1 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-004.
PARAMETERS : RBS1_2 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-005 FOR FIELD RBS1_2 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-006.
PARAMETERS : RBS1_3 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-007 FOR FIELD RBS1_3 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-008.
PARAMETERS : RBS1_4 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-009 FOR FIELD RBS1_4 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-010.
PARAMETERS : RBS1_5 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-011 FOR FIELD RBS1_5 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-012.
PARAMETERS : RBS1_6 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-013 FOR FIELD RBS1_6 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-014.
PARAMETERS : RBS1_7 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-015 FOR FIELD RBS1_7 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-016.
PARAMETERS : RBS1_8 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-017 FOR FIELD RBS1_8 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-018.
PARAMETERS : RBS1_9 RADIOBUTTON GROUP GRP2.
SELECTION-SCREEN COMMENT 6(30) TEXT-019 FOR FIELD RBS1_9 .
SELECTION-SCREEN END OF LINE.

PARAMETERS : RB1_2 RADIOBUTTON GROUP GRP1.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-020.
PARAMETERS : RBS2_1 RADIOBUTTON GROUP GRP3.
SELECTION-SCREEN COMMENT 6(30) TEXT-021 FOR FIELD RBS2_1 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-022.
PARAMETERS : RBS2_2 RADIOBUTTON GROUP GRP3.
SELECTION-SCREEN COMMENT 6(30) TEXT-023 FOR FIELD RBS2_2 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 2(1) TEXT-024.
PARAMETERS : RBS2_3 RADIOBUTTON GROUP GRP3.
SELECTION-SCREEN COMMENT 6(30) TEXT-025 FOR FIELD RBS2_3 .
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK A1.

"   Block A2
SELECTION-SCREEN BEGIN OF BLOCK A2 WITH FRAME TITLE TEXT-026.
PARAMETERS : RB2_1 AS CHECKBOX USER-COMMAND CK.                                                        "DEFAULT C_X USER-COMMAND RAD3

SELECTION-SCREEN BEGIN OF BLOCK A3 WITH FRAME TITLE TEXT-027.
PARAMETERS :   P_BU      TYPE CHAR4 ,                        " Business unit
               P_CBU     TYPE CHAR10 ,                       "CBU
               P_SBU     TYPE CHAR10 ,                       " SBU
               P_GRO     TYPE CHAR10 .                       "TDK Item Grou
SELECT-OPTIONS : S_PRCTR FOR MARC-PRCTR NO INTERVALS.                    "Profit Center
SELECT-OPTIONS : S_WERKS FOR T001W-WERKS,                    "plant
                 S_MATNR FOR MBEW-MATNR.                     "materail
SELECTION-SCREEN END OF BLOCK A3.

PARAMETERS : P_DLOAD LIKE Z_STRING.

PARAMETERS : RB2_2 AS CHECKBOX USER-COMMAND CK.

PARAMETERS : P_ULOAD TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK A2.

AT SELECTION-SCREEN OUTPUT.

  PERFORM PROCESS_SCREEN.
INITIALIZATION.

  PERFORM S_MATCO_DATA.

AT SELECTION-SCREEN.

  PERFORM CHECK_VALUEDATA.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DLOAD.
  PERFORM HELP_F4_DOWN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_ULOAD.
  PERFORM HELP_F4_UP.

START-OF-SELECTION.

  PERFORM FM_COMMON_DATA.                                                    "get upload and download check data.

  PERFORM FM_PROCESS_UPDATA.                                                 "updata to sap

  PERFORM FM_PROCESS_DOWNLOAD.                                               "download to desktop

END-OF-SELECTION.


*&---------------------------------------------------------------------*
*&      Form  PROCESS_SCREEN
*&---------------------------------------------------------------------*
*      SCREEN  SELECT
*----------------------------------------------------------------------*
FORM PROCESS_SCREEN.

  LOOP  AT SCREEN.

    IF SCREEN-NAME = 'P_DLOAD'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.
    IF SCREEN-NAME = 'P_ULOAD'.
      SCREEN-INPUT = 0.
      MODIFY SCREEN.
    ENDIF.

    CASE 'X'.
      WHEN RB2_1.
        IF SCREEN-NAME = 'P_DLOAD'.
          SCREEN-INPUT = '1'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_ULOAD'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'RB2_2'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
      WHEN RB2_2.
        IF SCREEN-NAME = 'P_DLOAD'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_ULOAD'.
          SCREEN-INPUT = '1'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'RB2_1'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_BU'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_CBU'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_SBU'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_PRCTR'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'P_GRO'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'S_PRCTR-LOW'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'S_WERKS-LOW'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'S_WERKS-HIGH'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'S_MATNR-LOW'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
        IF SCREEN-NAME = 'S_MATNR-HIGH'.
          SCREEN-INPUT = '0'.
          MODIFY SCREEN.
        ENDIF.
    ENDCASE.
  ENDLOOP.

ENDFORM.                    "PROCESS_SCREEN

*&---------------------------------------------------------------------*
*&      Form  S_MATCO_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM S_MATCO_DATA .

  OPTLIST-NAME = 'OBJECTKEY1'.
  OPTLIST-OPTIONS-EQ = 'X'.
  OPTLIST-OPTIONS-BT = ''.
  APPEND OPTLIST TO RESTRICT-OPT_LIST_TAB.
  ASS-KIND = 'S'.
  ASS-NAME = 'S_PRCTR'.
  ASS-SG_MAIN = 'I'.
  ASS-SG_ADDY = SPACE.
  ASS-OP_MAIN = 'OBJECTKEY1'.
  APPEND ASS TO RESTRICT-ASS_TAB.

  CLEAR OPTLIST.
  CLEAR ASS.

  CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
    EXPORTING
      RESTRICTION            = RESTRICT
    EXCEPTIONS
      TOO_LATE               = 1
      REPEATED               = 2
      SELOPT_WITHOUT_OPTIONS = 3
      SELOPT_WITHOUT_SIGNS   = 4
      INVALID_SIGN           = 5
      EMPTY_OPTION_LIST      = 6
      INVALID_KIND           = 7
      REPEATED_KIND_A        = 8
      OTHERS                 = 9.
  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.                    " S_MATCO_DATA



*&---------------------------------------------------------------------*
*&      Form  CHECK_VALUEDATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM CHECK_VALUEDATA.


  SELECT BUKRS BWKEY FROM T001K
        INTO CORRESPONDING FIELDS OF TABLE TD_T001K
        WHERE BUKRS = P_BUKRS.

  IF SY-SUBRC <> 0.
    MESSAGE E001(/TDK/CU00010).
  ENDIF.

  IF P_MONTH > '12'.
    MESSAGE E006(/TDK/CU00010).
  ENDIF.

  LOOP AT TD_T001K INTO TH_T001K.
    IF RB2_1 = 'X'.
      IF TH_T001K-BUKRS = P_BUKRS OR TH_T001K-BWKEY IN S_WERKS.
      ELSE.
        MESSAGE E008(/TDK/CU00010).
      ENDIF.
    ENDIF.
  ENDLOOP.

  IF S_MATNR <> ''.
    IF ( P_BU <> '' OR  P_SBU <> '' OR  P_CBU <> '' OR P_GRO <>'').
      MESSAGE E003(/TDK/CU00010) WITH  S_MATNR .
    ENDIF.
  ELSEIF P_GRO <>''.
    IF ( P_BU <> '' OR  P_SBU <> '' OR  P_CBU <> '').
      MESSAGE E003(/TDK/CU00010) WITH  P_GRO .
    ENDIF.
  ELSEIF P_SBU <>''.
    IF (  P_BU <> '' OR  P_CBU <> '' ).
      MESSAGE E003(/TDK/CU00010) WITH P_SBU .
    ENDIF.
  ELSEIF P_CBU <> ''.
    IF   P_BU <> ''.
      MESSAGE E003(/TDK/CU00010) WITH  P_CBU .
    ENDIF.
  ENDIF.

*IF RB2_1 = C_X.
*  IF P_DLOAD IS INITIAL.
*    MESSAGE 'CAN NOT FIND THE FILED Download Path' TYPE 'E'.
*  ENDIF.
*    SET CURSOR FIELD 'P_DLOAD'.
*ENDIF.
*
*IF RB2_2 = C_X.
*  IF P_ULOAD IS INITIAL.
*    MESSAGE 'CAN NOT FIND THE FILED' TYPE 'E'.
*    SET CURSOR FIELD 'P_ULOAD'.
*  ENDIF.
*ENDIF.

ENDFORM.                    "CHECK_VALUEDATA

*&---------------------------------------------------------------------*
*&      Form  HELP_F4_DOWN
*&---------------------------------------------------------------------*
*       F4 HELP
*----------------------------------------------------------------------*
FORM HELP_F4_DOWN.

  DATA:  LW_FULLPATH TYPE STRING,
         LW_FULLNAME TYPE STRING,
         LW_F_E      TYPE ABAP_ENCOD,
         LW_PATH     TYPE STRING,
         LW_ACTION   TYPE I,
         LTH_FILE    TYPE FILE_TABLE,
         LTD_FILE    TYPE FILETABLE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG
    EXPORTING
      INITIAL_DIRECTORY = 'C:\'
    CHANGING
      FULLPATH          = LW_FULLPATH
      FILENAME          = LW_FULLNAME
      PATH              = LW_PATH
      USER_ACTION       = LW_ACTION.

  IF SY-SUBRC <> 0.
    MESSAGE E003(/TDK/CU00010).
  ENDIF.
  IF LW_ACTION = 0.
    P_DLOAD = LW_FULLNAME.
  ENDIF.

ENDFORM.                    "HELP_F4_DOWN

*&---------------------------------------------------------------------*
*&      Form  HELP_F4_UP
*&---------------------------------------------------------------------*
*       F4_FILENAME
*----------------------------------------------------------------------*
FORM HELP_F4_UP.

  CLEAR P_ULOAD.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      FILE_NAME = P_ULOAD.


ENDFORM.                                                    "HELP_F4_UP




*&---------------------------------------------------------------------*
*&      Form  FM_COMMON_DATA
*&---------------------------------------------------------------------*
*      get upload and download check data.
*----------------------------------------------------------------------*
FORM FM_COMMON_DATA.

  PERFORM FM_GET_DATA.                                                         "get data process

ENDFORM.                    "FM_COMMON_DATA

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_DOWNLOAD
*&---------------------------------------------------------------------*
*       Download to desktop
*----------------------------------------------------------------------*
FORM FM_PROCESS_DOWNLOAD.

  PERFORM FM_DOWNLOAD_DATA.

ENDFORM.                    "FM_PROCESS_DOWNLOAD

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*      upload data
*----------------------------------------------------------------------*
FORM FM_PROCESS_UPDATA.

  PERFORM UP_LOAD_DATA.                                                        "upload data.

  PERFORM FM_ARRANGE_DATA.                                                     "arrange data

  PERFORM FM_CHANGE_DATA.                                                       "change data.

ENDFORM.                    "FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*&      Form  FM_GET_DATA
*&---------------------------------------------------------------------*
*        PERFORM FM_GET_DATA.
*----------------------------------------------------------------------*
FORM FM_GET_DATA.

  LOOP AT TD_T001K INTO TH_T001K.
    SELECT SINGLE KOKRS FROM TKA02                                           " get contorlling area
             INTO LTH_KOKRS
             WHERE BUKRS = TH_T001K-BUKRS.
    IF SY-SUBRC <> 0.
      MESSAGE E005(/TDK/CU00010).
    ENDIF.

    LTH_MONTH = P_MONTH.
    LTH_YEAR  = P_YEAR.

    CALL FUNCTION 'BAPI_COAREA_GETPERIODLIMITS'                             "Get First day of fiscal year and period
      EXPORTING
        CONTROLLINGAREAID         = LTH_KOKRS
        FISCAL_PERIOD             = LTH_MONTH
        FISCAL_YEAR               = LTH_YEAR
     IMPORTING
       LAST_DAY_OF_PERIOD         = LTH_PERIOD.
    IF SY-SUBRC <> 0.
      MESSAGE E006(/TDK/CU00010).
    ENDIF.

    SELECT MARC~MATNR                                                                   "materail
           MARC~WERKS                                                                   "plant
           MARC~SOBSK                                                                   " SpecProcType
           MARC~LOSGR                                                                   "Cstg Lot Size
           MARC~FVIDK                                                                   "Prod. Version
           MAKT~MAKTX
           T001W~NAME1

           FROM MARC INNER JOIN MAKT
      ON  MARC~MATNR = MAKT~MATNR
      INNER JOIN T001W
      ON  MARC~WERKS = T001W~WERKS
      APPENDING CORRESPONDING FIELDS OF TABLE TD_RESULT_EXPORT
      WHERE MARC~WERKS   = TH_T001K-BWKEY
        AND MARC~LVORM    = ''
        AND MARC~MATNR   IN S_MATNR
        AND MARC~PRCTR   IN S_PRCTR
        AND MAKT~SPRAS   = SY-LANGU.
  ENDLOOP.
  IF TD_RESULT_EXPORT IS INITIAL.
    MESSAGE E010(/TDK/CU00010).
  ENDIF.
  LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.

    SELECT MATNR                                                                      "materail
           BWKEY                                                                      "plant
           PEINH                                                                      "Price Unit
           ZPLP1                                                                      "Planned Price 1
*           ZPLD1                                                                      "Planned Price Date 1
           ZPLP2                                                                      "Planned Price 2
*           ZPLD2                                                                      "Planned Price Date 2
           ZPLP3                                                                      "Planned Price 3
*           ZPLD3                                                                      "Planned Price Date 3
           BWPRS                                                                      "Tax Price 1
           BWPS1                                                                      "Tax Price 2
           VJBWS                                                                      "Tax Price 3
           BWPRH                                                                      "Commercial Price 1
           BWPH1                                                                      "Commercial Price 2
           VJBWH                                                                      "Commercial Price 3
           FROM MBEW
           APPENDING CORRESPONDING FIELDS OF TABLE TD_MBEW
           WHERE MBEW~MATNR            =           TH_RESULT_EXPORT-MATNR
             AND MBEW~BWKEY          =           TH_RESULT_EXPORT-WERKS.

    READ TABLE TD_MBEW INTO TH_MBEW  WITH KEY MATNR = TH_RESULT_EXPORT-MATNR
                                              BWKEY = TH_RESULT_EXPORT-WERKS.
    IF SY-SUBRC = 0.

      TH_RESULT_EXPORT-MATNR = TH_MBEW-MATNR.
      TH_RESULT_EXPORT-WERKS = TH_MBEW-BWKEY.
      TH_RESULT_EXPORT-PEINH = TH_MBEW-PEINH.
      TH_RESULT_EXPORT-ZPLP1 = TH_MBEW-ZPLP1.
*      TH_RESULT_EXPORT-ZPLD1 = TH_MBEW-ZPLD1.
      TH_RESULT_EXPORT-ZPLP2 = TH_MBEW-ZPLP2.
*      TH_RESULT_EXPORT-ZPLD2 = TH_MBEW-ZPLD2.
      TH_RESULT_EXPORT-ZPLP3 = TH_MBEW-ZPLP3.
*      TH_RESULT_EXPORT-ZPLD3 = TH_MBEW-ZPLD3.
      TH_RESULT_EXPORT-BWPRS = TH_MBEW-BWPRS.
      TH_RESULT_EXPORT-BWPS1 = TH_MBEW-BWPS1.
      TH_RESULT_EXPORT-VJBWS = TH_MBEW-VJBWS.
      TH_RESULT_EXPORT-BWPRH = TH_MBEW-BWPRH.
      TH_RESULT_EXPORT-BWPH1 = TH_MBEW-BWPH1.
      TH_RESULT_EXPORT-VJBWH = TH_MBEW-VJBWH.
      MODIFY TD_RESULT_EXPORT FROM TH_RESULT_EXPORT .
      CLEAR TH_RESULT_EXPORT.
    ENDIF.

  ENDLOOP.
  IF TD_RESULT_EXPORT IS INITIAL.
    MESSAGE E013(/TDK/CU00010).
  ENDIF.

  REFRESH: LTD_MATNR,
           TD_MAT_HIER.
  CLEAR:   TH_MAT_HIER,
           LST_MATNR.
  LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
    LST_MATNR-MATNR = TH_RESULT_EXPORT-MATNR.
    APPEND LST_MATNR TO LTD_MATNR.
  ENDLOOP.
  CLEAR LST_MATNR.
  SORT LTD_MATNR BY MATNR ASCENDING.
  DELETE ADJACENT DUPLICATES FROM LTD_MATNR COMPARING MATNR.

  IF RB2_1 = 'X'.
    IF LTD_MATNR IS NOT INITIAL.
      LOOP AT TD_T001K INTO TH_T001K.
        CALL FUNCTION '/TDK/C_MAT_ORG'
          EXPORTING
            I_PATTERN          = '1'
            I_BUKRS            = TH_T001K-BUKRS
            IT_MATNR           = LTD_MATNR
            I_DATE             = LTH_PERIOD
            I_SETNAME          = '0000T_T'
          IMPORTING
            ET_MAT_HIER        = TD_MAT_HIER
          EXCEPTIONS
            INVALID_MATERIAL   = 1
            INVALID_ITEM_GROUP = 2
            INVALID_SETNAME    = 3
            INVALID_BU         = 4
            INVALID_SEGMENT    = 5
            INVALID_PARAMETER  = 6
            INVALID_COMPANY    = 7
            OTHERS             = 8.
        IF SY-SUBRC <> 0.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                     WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.

  IF RB2_1 = 'X'.
    LOOP AT TD_MAT_HIER INTO TH_MAT_HIER.
      IF P_GRO IS NOT INITIAL AND TH_MAT_HIER-/EPCOS/TDKKL <> P_GRO.
        DELETE TD_RESULT_EXPORT WHERE  MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_BU IS NOT INITIAL AND TH_MAT_HIER-ORG_LV3 <> P_BU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_CBU IS NOT INITIAL AND TH_MAT_HIER-ORG_LV4 <> P_CBU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.

      IF P_SBU IS NOT INITIAL AND TH_MAT_HIER-SEGMENT <> P_SBU.
        DELETE TD_RESULT_EXPORT WHERE MATNR = TH_MAT_HIER-MATNR.
        CONTINUE.
      ENDIF.
     ENDLOOP.
     LOOP AT TD_MAT_HIER INTO TH_MAT_HIER.
      TH_RESULT_EXPORT-Z_GRO  = TH_MAT_HIER-/EPCOS/TDKKL.  " TDK GROUP
      TH_RESULT_EXPORT-Z_BU   = TH_MAT_HIER-ORG_LV3.  " BU
      TH_RESULT_EXPORT-Z_CBU  = TH_MAT_HIER-ORG_LV4.  " CBU
      TH_RESULT_EXPORT-Z_SBU  = TH_MAT_HIER-SEGMENT.  " SBU

      MODIFY TD_RESULT_EXPORT FROM TH_RESULT_EXPORT  TRANSPORTING Z_GRO
                                                                  Z_BU
                                                                  Z_CBU
                                                                  Z_SBU  WHERE MATNR = TH_MAT_HIER-MATNR.


      CLEAR: TH_RESULT_EXPORT,TH_MAT_HIER.
    ENDLOOP.
  ENDIF.

ENDFORM.                    "FM_GET_DATA


*&---------------------------------------------------------------------*
*&      Form  FM_DOWNLOAD_DATA
*&---------------------------------------------------------------------*
*       DOWNLOAD DATA RESULT
*----------------------------------------------------------------------*
FORM FM_DOWNLOAD_DATA.

  IF RB2_1 = 'X'.
    IF RB1_1 = 'X'.
      LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
        TH_OUTPUT-Z_BU     =  TH_RESULT_EXPORT-Z_BU.
        TH_OUTPUT-Z_CBU    =  TH_RESULT_EXPORT-Z_CBU.
        TH_OUTPUT-Z_SBU    =  TH_RESULT_EXPORT-Z_SBU.
        TH_OUTPUT-Z_GRO    =  TH_RESULT_EXPORT-Z_GRO.
        TH_OUTPUT-MATNR    =  TH_RESULT_EXPORT-MATNR.
        TH_OUTPUT-MAKTX    =  TH_RESULT_EXPORT-MAKTX.
        TH_OUTPUT-WERKS    =  TH_RESULT_EXPORT-WERKS.
        TH_OUTPUT-NAME1    =  TH_RESULT_EXPORT-NAME1.
        IF RBS1_1 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP1.
        ENDIF.
        IF RBS1_2 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP2.
        ENDIF.
        IF RBS1_3 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-ZPLP3.
        ENDIF.
        IF RBS1_4 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPRS.
        ENDIF.
        IF RBS1_5 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPS1.
        ENDIF.
        IF RBS1_6 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-VJBWS.
        ENDIF.
        IF RBS1_7 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPRH.
        ENDIF.
        IF RBS1_8 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-BWPH1.
        ENDIF.
        IF RBS1_9 = 'X'.
          TH_OUTPUT-ZPLP1    =  TH_RESULT_EXPORT-VJBWH.
        ENDIF.
        TH_OUTPUT-PEINH    =  TH_RESULT_EXPORT-PEINH.
        APPEND TH_OUTPUT TO TD_OUTPUT.
        CLEAR TH_OUTPUT-Z_BU.
        CLEAR TH_OUTPUT-Z_CBU.
        CLEAR TH_OUTPUT-Z_SBU.
        CLEAR TH_OUTPUT-Z_GRO.
        CLEAR TH_OUTPUT-MATNR.
        CLEAR TH_OUTPUT-MAKTX.
        CLEAR TH_OUTPUT-WERKS.
        CLEAR TH_OUTPUT-NAME1.
        CLEAR TH_OUTPUT-ZPLP1.
        CLEAR TH_OUTPUT-PEINH.
        CLEAR TH_OUTPUT.
      ENDLOOP.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
          FILENAME                = P_DLOAD
          FILETYPE                = 'ASC'
          WRITE_FIELD_SEPARATOR   = 'X'
        CHANGING
          DATA_TAB                = TD_OUTPUT
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          NOT_SUPPORTED_BY_GUI    = 22
          ERROR_NO_GUI            = 23
          OTHERS                  = 24.
      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.
    IF RB1_2 = 'X'.
      LOOP AT TD_RESULT_EXPORT INTO TH_RESULT_EXPORT.
        TH_OUTPUT1-Z_BU     =  TH_RESULT_EXPORT-Z_BU.
        TH_OUTPUT1-Z_CBU    =  TH_RESULT_EXPORT-Z_CBU.
        TH_OUTPUT1-Z_SBU    =  TH_RESULT_EXPORT-Z_SBU.
        TH_OUTPUT1-Z_GRO    =  TH_RESULT_EXPORT-Z_GRO.
        TH_OUTPUT1-MATNR    =  TH_RESULT_EXPORT-MATNR.
        TH_OUTPUT1-MAKTX    =  TH_RESULT_EXPORT-MAKTX.
        TH_OUTPUT1-WERKS    =  TH_RESULT_EXPORT-WERKS.
        TH_OUTPUT1-NAME1    =  TH_RESULT_EXPORT-NAME1.
        IF RBS2_1 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-FVIDK.
        ENDIF.
        IF RBS2_2 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-SOBSK.
        ENDIF.
        IF RBS2_3 = 'X'.
          TH_OUTPUT1-ZPLP1    =  TH_RESULT_EXPORT-LOSGR.
        ENDIF.
        APPEND TH_OUTPUT1 TO TD_OUTPUT1.
        CLEAR TH_OUTPUT1-Z_BU.
        CLEAR TH_OUTPUT1-Z_CBU.
        CLEAR TH_OUTPUT1-Z_SBU.
        CLEAR TH_OUTPUT1-Z_GRO.
        CLEAR TH_OUTPUT1-MATNR.
        CLEAR TH_OUTPUT1-MAKTX.
        CLEAR TH_OUTPUT1-WERKS.
        CLEAR TH_OUTPUT1-NAME1.
        CLEAR TH_OUTPUT1-ZPLP1.
        CLEAR TH_OUTPUT1.
      ENDLOOP.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
          FILENAME                = P_DLOAD
          FILETYPE                = 'ASC'
          WRITE_FIELD_SEPARATOR   = 'X'
        CHANGING
          DATA_TAB                = TD_OUTPUT1
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          NOT_SUPPORTED_BY_GUI    = 22
          ERROR_NO_GUI            = 23
          OTHERS                  = 24.
      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.
  ENDIF.
ENDFORM.                    "FM_DOWNLOAD_DATA

*&---------------------------------------------------------------------*
*&      Form  FM_PROCESS_UPDATA
*&---------------------------------------------------------------------*
*       updata to sap  PREPARED DATA
*----------------------------------------------------------------------*
FORM UP_LOAD_DATA.

  IF RB2_2 = 'X'.

    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
      EXPORTING
        I_TAB_RAW_DATA       = IT_RAW
        I_FILENAME           = P_ULOAD
      TABLES
        I_TAB_CONVERTED_DATA = TD_SAVE
      EXCEPTIONS
        CONVERSION_FAILED    = 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.

    LOOP AT TD_SAVE INTO TH_SAVE.
      IF TH_SAVE-WERKS NOT IN S_WERKS.
        MESSAGE E009(/TDK/CU00010).
      ENDIF.
    ENDLOOP.

  ENDIF.



ENDFORM.                    "FM_PROCESS_UPDATA


*&---------------------------------------------------------------------*
*&      Form  FM_ARRANGE_DATA
*&---------------------------------------------------------------------*
*       check updata data
*----------------------------------------------------------------------*
FORM FM_ARRANGE_DATA.
  DATA : LTH_MATNR LIKE MKAL-MATNR.
  IF RB2_2 = 'X'.
    IF RB1_1 = 'X'.
      IF RBS1_1 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_2 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP2 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP2       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_3 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-ZPLP3 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-ZPLP3       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_4 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPRS.
            IF TH_RESULT_EXPORT-BWPRS = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPRS       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_5 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-BWPS1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPS1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_6 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-VJBWS.
            IF TH_RESULT_EXPORT-VJBWS = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-VJBWS       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_7 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPRH.
            IF TH_RESULT_EXPORT-BWPRH = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPRH       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_8 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-BWPH1.
            IF TH_RESULT_EXPORT-BWPH1 = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-BWPH1       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS1_9 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E016(/TDK/CU00010).
          ELSE.
*            PERFORM PROCESS_DATA USING TH_RESULT_EXPORT-VJBWH.
            IF TH_RESULT_EXPORT-VJBWH = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC <> 0.
                MESSAGE E017(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU        =          TH_SAVE-Z_BU.
              TH_RESULT_IMPORT-Z_CBU       =          TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU       =          TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO       =          TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR       =          TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX       =          TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS       =          TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1       =          TH_SAVE-NAME1.
              TH_RESULT_IMPORT-VJBWH       =          TH_SAVE-ZPLP1.
              TH_RESULT_IMPORT-PEINH       =          TH_SAVE-PEINH.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC <> 0.
                MESSAGE E018(/TDK/CU00010).
              ENDIF.
              CLEAR TH_SAVE.
              CLEAR TH_RESULT_IMPORT.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.

    IF RB1_2 = 'X'.
      IF RBS2_1 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-FVIDK = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-FVIDK     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
          SELECT SINGLE MATNR FROM MKAL
                   INTO (LTH_MATNR)
                  WHERE MATNR = TH_SAVE-MATNR
                    AND WERKS = TH_SAVE-WERKS
                    AND VERID = TH_SAVE-ZPLP1.
          IF SY-SUBRC <> 0.
            MESSAGE E022(/TDK/CU00010).
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS2_2 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-LOSGR = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-LOSGR     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF RBS2_3 = 'X'.
        LOOP AT TD_SAVE INTO TH_SAVE.
          READ TABLE TD_RESULT_EXPORT INTO TH_RESULT_EXPORT WITH KEY MATNR = TH_SAVE-MATNR
                                                                     WERKS = TH_SAVE-WERKS.
          IF SY-SUBRC <> 0.
            MESSAGE E019(/TDK/CU00010).
          ELSE.
            IF TH_RESULT_EXPORT-SOBSK = TH_SAVE-ZPLP1.
              DELETE TD_SAVE WHERE  MATNR = TH_RESULT_EXPORT-MATNR
                               AND  WERKS = TH_RESULT_EXPORT-WERKS.
              IF SY-SUBRC = 0.
                MESSAGE E020(/TDK/CU00010).
              ENDIF.
            ELSE.
              TH_RESULT_IMPORT-Z_BU      = TH_SAVE-Z_BU .
              TH_RESULT_IMPORT-Z_CBU     = TH_SAVE-Z_CBU.
              TH_RESULT_IMPORT-Z_SBU     = TH_SAVE-Z_SBU.
              TH_RESULT_IMPORT-Z_GRO     = TH_SAVE-Z_GRO.
              TH_RESULT_IMPORT-MATNR     = TH_SAVE-MATNR.
              TH_RESULT_IMPORT-MAKTX     = TH_SAVE-MAKTX.
              TH_RESULT_IMPORT-WERKS     = TH_SAVE-WERKS.
              TH_RESULT_IMPORT-NAME1     = TH_SAVE-NAME1.
              TH_RESULT_IMPORT-SOBSK     = TH_SAVE-ZPLP1.
              APPEND TH_RESULT_IMPORT TO TD_RESULT_IMPORT.
              IF SY-SUBRC = 0.
                MESSAGE E021(/TDK/CU00010).
              ENDIF.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDIF.
  ENDIF.



ENDFORM.                    "FM_ARRANGE_DATA


*&---------------------------------------------------------------------*
*&      Form  FM_CHANGE_DATA
*&---------------------------------------------------------------------*
*       change data.
*----------------------------------------------------------------------*
FORM FM_CHANGE_DATA.
  IF RB2_2 = 'X'.
    IF RB1_1 = 'X'.
      LOOP AT TD_RESULT_IMPORT INTO TH_RESULT_IMPORT.
        TH_HEADDATA-MATERIAL = TH_RESULT_IMPORT-MATNR.

        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
          EXPORTING
            INPUT  = TH_HEADDATA-MATERIAL
          IMPORTING
            OUTPUT = TH_HEADDATA-MATERIAL.


        TH_VALUATIONDATA-VAL_AREA      =  TH_RESULT_IMPORT-WERKS.
        TH_VALUATIONDATA-PLNDPRICE1    =  TH_RESULT_IMPORT-ZPLP1.
        TH_VALUATIONDATA-PLNDPRICE2    =  TH_RESULT_IMPORT-ZPLP2.
        TH_VALUATIONDATA-PLNDPRICE3    =  TH_RESULT_IMPORT-ZPLP3.
        IF RBS1_1 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE1   =  LTH_PERIOD.
        ENDIF.
        IF RBS1_2 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE2   =  LTH_PERIOD.
        ENDIF.
        IF RBS1_3 = 'X'.
          TH_VALUATIONDATA-PLNDPRDATE3   =  LTH_PERIOD.
        ENDIF.
        TH_VALUATIONDATA-TAXPRICE_1    =  TH_RESULT_IMPORT-BWPRS.
        TH_VALUATIONDATA-TAXPRICE_2    =  TH_RESULT_IMPORT-BWPS1.
        TH_VALUATIONDATA-TAXPRICE_3    =  TH_RESULT_IMPORT-VJBWS.
        TH_VALUATIONDATA-COMMPRICE1    =  TH_RESULT_IMPORT-BWPRH.
        TH_VALUATIONDATA-COMMPRICE2    =  TH_RESULT_IMPORT-BWPH1.
        TH_VALUATIONDATA-COMMPRICE3    =  TH_RESULT_IMPORT-VJBWH.
        TH_VALUATIONDATA-PRICE_UNIT    =  TH_RESULT_IMPORT-PEINH.

        TH_VALUATIONDATAX-VAL_AREA = TH_RESULT_IMPORT-WERKS.
        TH_VALUATIONDATAX-PLNDPRICE1   = 'X'.
        TH_VALUATIONDATAX-PLNDPRICE2   = 'X'.
        TH_VALUATIONDATAX-PLNDPRICE3   = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE1  = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE2  = 'X'.
        TH_VALUATIONDATAX-PLNDPRDATE3  = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_1   = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_2   = 'X'.
        TH_VALUATIONDATAX-TAXPRICE_3   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE1   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE2   = 'X'.
        TH_VALUATIONDATAX-COMMPRICE3   = 'X'.
        TH_VALUATIONDATAX-PRICE_UNIT   = 'X'.

        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            HEADDATA       = TH_HEADDATA
            VALUATIONDATA  = TH_VALUATIONDATA
            VALUATIONDATAX = TH_VALUATIONDATAX
          IMPORTING
            RETURN         = TH_RETURN.
        IF SY-SUBRC = 0.
          WRITE : TH_RETURN-TYPE,TH_RETURN-ID,TH_RETURN-NUMBER,TH_RETURN-MESSAGE,TH_RETURN-LOG_NO,TH_RETURN-LOG_MSG_NO,TH_RETURN-MESSAGE_V1,
                  TH_RETURN-MESSAGE_V2,TH_RETURN-MESSAGE_V3,TH_RETURN-MESSAGE_V4.
        ENDIF.
      ENDLOOP.
    ENDIF.

    IF RB1_2 = 'X'.
      LOOP AT TD_RESULT_IMPORT INTO TH_RESULT_IMPORT.
        TH_HEADDATA-MATERIAL = TH_RESULT_IMPORT-MATNR.
        APPEND TH_HEADDATA TO TD_HEADDATA.
        CLEAR TH_HEADDATA.
        TH_PLANTDATA-PLANT         =  TH_RESULT_IMPORT-WERKS.
        TH_PLANTDATA-PRODVERSCS    =  TH_RESULT_IMPORT-FVIDK.
        TH_PLANTDATA-LOT_SIZE      =  TH_RESULT_IMPORT-LOSGR.
        TH_PLANTDATA-SPECPROCTY    =  TH_RESULT_IMPORT-SOBSK.
        APPEND TH_PLANTDATA TO TD_PLANTDATA.
        CLEAR TH_PLANTDATA.
        TH_PLANTDATAX-PLANT         =  TH_RESULT_IMPORT-WERKS.
        TH_PLANTDATAX-PRODVERSCS    =  'X'.
        TH_PLANTDATAX-LOT_SIZE      =  'X'.
        TH_PLANTDATAX-SPECPROCTY    =  'X'.
        APPEND TH_PLANTDATAX TO TD_PLANTDATAX.
        CLEAR TH_PLANTDATAX.
        CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
          EXPORTING
            HEADDATA   = TH_HEADDATA
            PLANTDATA  = TH_PLANTDATA
            PLANTDATAX = TH_PLANTDATAX
          IMPORTING
            RETURN     = TH_RETURN.
        IF SY-SUBRC = 0.
          WRITE : TH_RETURN-TYPE,TH_RETURN-ID,TH_RETURN-NUMBER,TH_RETURN-MESSAGE,TH_RETURN-LOG_NO,TH_RETURN-LOG_MSG_NO,TH_RETURN-MESSAGE_V1,
                  TH_RETURN-MESSAGE_V2,TH_RETURN-MESSAGE_V3,TH_RETURN-MESSAGE_V4.
        ENDIF.
      ENDLOOP.
    ENDIF.
  ENDIF.

ENDFORM.                    "FM_CHANGE_DATA

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13973563/viewspace-752273/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-03-30

  • 博文量
    18
  • 访问量
    28577