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
*
*----------------------------------------------------------------------*
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
*& 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
*
*----------------------------------------------------------------------*
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博客 ” ,链接:http://blog.itpub.net/13973563/viewspace-752273/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13973563/viewspace-752273/