You are on page 1of 5

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

*& Report ZBDC_MM01


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zbdc_mm01.
TYPE-POOLS: truxs.
PARAMETERS: p_file TYPE rlgrap-filename.
TYPES : BEGIN OF ty_final,
werks TYPE werks,
maktx TYPE maktx,
meins TYPE meins,
VPRSV TYPE VPRSV,
END OF ty_final.
DATA : it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final,
it_raw TYPE truxs_t_text_data,
it_bdcdata TYPE TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
it_msg TYPE TABLE OF bdcmsgcoll,
wa_msg TYPE bdcmsgcoll,
it_msg1 TYPE TABLE OF bdcmsgcoll,
wa_msg1 TYPE bdcmsgcoll.
START-OF-SELECTION.
*BREAK-POINT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name
= 'p_file'
IMPORTING
file_name
= p_file.

PERFORM f_get_data.
*&---------------------------------------------------------------------*
*&
Form f_get_data

*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_get_data .

*
*

*
*
*
*
*

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'


EXPORTING
I_FIELD_SEPERATOR
=
I_LINE_HEADER
=
i_tab_raw_data
= it_raw
i_filename
= p_file
TABLES
i_tab_converted_data
= it_final
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.
IF NOT it_final IS INITIAL.
PERFORM f_get_bdc.
ENDIF.

ENDFORM.
" f_get_data
*&---------------------------------------------------------------------*
*&
Form f_get_bdc
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_get_bdc .
LOOP AT it_final INTO wa_final.
REFRESH it_bdcdata[].
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field

USING 'SAPLMGMM' '0060'.


USING 'BDC_CURSOR'
'RMMG1-MATNR'.
USING 'BDC_OKCODE'
'/00'.
USING 'RMMG1-MBRSH'

PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_field
PERFORM bdc_dynpro
PERFORM bdc_field

'M'.
USING 'RMMG1-MTART'
'MPO'.
USING 'SAPLMGMM' '0070'.
USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(09)'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'MSICHTAUSW-KZSEL(01)'
'X'.
USING 'MSICHTAUSW-KZSEL(02)'
'X'.
USING 'MSICHTAUSW-KZSEL(09)'
'X'.
USING 'SAPLMGMM' '0080'.
USING 'BDC_CURSOR'
'RMMG1-WERKS'.
USING 'BDC_OKCODE'
'=ENTR'.
USING 'RMMG1-WERKS'
wa_final-werks.
USING 'SAPLMGMM' '4004'.
USING 'BDC_OKCODE'
'/00'.
USING 'MAKT-MAKTX'
wa_final-maktx."'mech'.
USING 'BDC_CURSOR'
'MARA-MEINS'.
USING 'MARA-MEINS'
wa_final-meins."'kg'.
USING 'SAPLMGMM' '4004'.
USING 'BDC_OKCODE'
'/00'.
USING 'BDC_CURSOR'
'MAKT-MAKTX'.
USING 'MAKT-MAKTX'
'mech'.
USING 'SAPLMGMM' '4000'.
USING 'BDC_OKCODE'
'/00'.
USING 'BDC_CURSOR'
'MAKT-MAKTX'.
USING 'MAKT-MAKTX'
'mech'.
USING 'MARA-MEINS'
'KG'.
USING 'MBEW-BKLAS'
'3300'.
USING 'MBEW-VPRSV'
wa_final-VPRSV."'S'.
USING 'MBEW-PEINH'
'1'.
USING 'SAPLSPO1' '0300'.
USING 'BDC_OKCODE'
'=YES'.

"'0006'.

CALL TRANSACTION 'MM01' USING it_bdcdata MODE 'A' UPDATE 'S'


MESSAGES INTO it_msg.

IF NOT it_msg IS INITIAL.


LOOP AT it_msg INTO wa_msg.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid
= wa_msg-msgid
msgnr
= wa_msg-msgnr
msgv1
= wa_msg-msgv1
msgv2
= wa_msg-msgv2
msgv3
= wa_msg-msgv1
msgv4
= wa_msg-msgv1
IMPORTING
message_text_output = wa_msg1-msgv1.
APPEND wa_msg TO it_msg.
CLEAR wa_msg.
ENDLOOP.

ENDIF.
ENDLOOP.
IF NOT it_msg1 IS INITIAL.

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
i_callback_program
= sy-repid
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_END_OF_LIST
= ' '
i_structure_name
= 'bdcmsgcoll'
I_BACKGROUND_ID
= ' '
I_GRID_TITLE
=
I_GRID_SETTINGS
=
IS_LAYOUT
=
IT_FIELDCAT
=
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
IS_PRINT
=
IS_REPREP_ID
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0

*
*
*
*
*
*
*
*
*
*

I_HTML_HEIGHT_TOP
= 0
I_HTML_HEIGHT_END
= 0
IT_ALV_GRAPHICS
=
IT_HYPERLINK
=
IT_ADD_FIELDCAT
=
IT_EXCEPT_QINFO
=
IR_SALV_FULLSCREEN_ADAPTER
=
IMPORTING
E_EXIT_CAUSED_BY_CALLER
=
ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= it_msg1
EXCEPTIONS
program_error
= 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.
ENDIF.
ENDFORM.

" f_get_bdc

*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR wa_bdcdata.
wa_bdcdata-program = program.
wa_bdcdata-dynpro = dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM.
"BDC_DYNPRO
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval <> space.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fnam.
wa_bdcdata-fval = fval.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM.
"bdc_field

You might also like