Sie sind auf Seite 1von 4

INCLUDE ZBDC_CALL_TRANSATION_TOP .

" global Data

* INCLUDE ZBDC_CALL_TRANSATION_O01 . " PBO-Modules


* INCLUDE ZBDC_CALL_TRANSATION_I01 . " PAI-Modules
* INCLUDE ZBDC_CALL_TRANSATION_F01 . " FORM-Routines
TYPE-POOLS truxs.

TYPES : BEGIN OF TY_MAAT,


MATNR TYPE MARA-MATNR,
MBRSH TYPE MARA-MBRSH,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKT-MAKTX,
MEINS TYPE MARA-MEINS,
END OF TY_MAAT.

DATA : IT_MAAT TYPE TABLE OF TY_MAAT,


WA_MAAT TYPE TY_MAAT.

DATA : IT_BDCDATA TYPE TABLE OF BDCDATA,


WA_BDCDATA TYPE BDCDATA.

DATA : IT_MSGCOLL TYPE TABLE OF BDCMSGCOLL,


WA_MSGCOLL TYPE BDCMSGCOLL.

DATA : I_TAB_RAW_DATA TYPE TRUXS_T_TEXT_DATA ,


I_FILENAME TYPE RLGRAP-FILENAME.

PARAMETERS: p_file TYPE rlgrap-filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE .

PERFORM FILE_SEARCHING.

START-OF-SELECTION.

PERFORM GET_DATA_FROM_EXCEL_FILE.

END-OF-SELECTION.

PERFORM BDC_PROCESS.
PERFORM ERROR_MESSAGES_DISPLAY.

*&---------------------------------------------------------------------*
*& Form FILE_SEARCHING
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILE_SEARCHING .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
* PROGRAM_NAME = SYST-CPROG
* DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE
.

ENDFORM. " FILE_SEARCHING


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

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'


EXPORTING
** I_FIELD_SEPERATOR =
** I_LINE_HEADER =
I_TAB_RAW_DATA = I_TAB_RAW_DATA
I_FILENAME = P_FILE
TABLES
I_TAB_CONVERTED_DATA = IT_MAAT[]
** EXCEPTIONS
** CONVERSION_FAILED = 1
** OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM. " GET_DATA_FROM_EXCEL_FILE


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

LOOP AT IT_MAAT INTO WA_MAAT.


PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM BDC_FEILD USING 'MARA-MATNR' WA_MAAT-MATNR.
PERFORM BDC_FEILD USING 'MARA-MBRSH' WA_MAAT-MBRSH.
PERFORM BDC_FEILD USING 'MARA-MTART' WA_MAAT-MTART.
PERFORM BDC_FEILD USING 'BDC_OKCODE' '=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM BDC_FEILD USING 'MSICHTAUSW-KZSEL(01)' 'X'.
PERFORM BDC_FEILD USING 'BDC_OKCODE' '=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '4004'.
PERFORM BDC_FEILD USING 'MAKT-MAKTX' WA_MAAT-MAKTX.
PERFORM BDC_FEILD USING 'MARA-MEINS' WA_MAAT-MEINS.
PERFORM BDC_FEILD USING 'BDC_OKCODE' '=BU'.

CALL TRANSACTION 'MM01' USING IT_BDCDATA[] UPDATE 'S'


MODE 'N'
MESSAGES INTO IT_MSGCOLL.

REFRESH IT_BDCDATA.

ENDLOOP.

ENDFORM. " BDC_PROCESS


*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0135 text
* -->P_0136 text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM SC_NO.
CLEAR WA_BDCDATA.
WA_BDCDATA-PROGRAM = PROGRAM.
WA_BDCDATA-DYNPRO = SC_NO.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO IT_BDCDATA.

ENDFORM. " BDC_DYNPRO


*&---------------------------------------------------------------------*
*& Form BDC_FEILD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0140 text
* -->P_WA_MAAT_MATNR text
*----------------------------------------------------------------------*
FORM BDC_FEILD USING FNAM FVAL.

CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM = FNAM.
WA_BDCDATA-FVAL = FVAL.
APPEND WA_BDCDATA TO IT_BDCDATA.

ENDFORM. " BDC_FEILD


*&---------------------------------------------------------------------*
*& Form ERROR_MESSAGES_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ERROR_MESSAGES_DISPLAY .
DATA MSG TYPE STRING.

LOOP AT IT_MSGCOLL INTO WA_MSGCOLL.


CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = WA_MSGCOLL-MSGID
LANG = SY-LANGU
NO = WA_MSGCOLL-MSGNR
V1 = WA_MSGCOLL-MSGV1
V2 = WA_MSGCOLL-MSGV2
V3 = WA_MSGCOLL-MSGV3
V4 = WA_MSGCOLL-MSGV4
IMPORTING
MSG = MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
WRITE : / MSG.

CLEAR WA_MSGCOLL.

ENDLOOP.

ENDFORM. " ERROR_MESSAGES_DISPLAY

Das könnte Ihnen auch gefallen