Skip to Content
0
Former Member
Jun 02, 2008 at 06:47 AM

bdc change

41 Views

hi gurus,

tell me how we can extend matnr in a plant using bdc.

plz give me also tcode that which tcode are used for it recording

also provide programm codes

this is my codes plz check it and tell me where i am wrong.

help me

REPORT zmatrial_change

NO STANDARD PAGE HEADING LINE-SIZE 255.

DATA: BEGIN OF wa_data,

matnr TYPE bdc_fval,

werks TYPE bdc_fval,

lgort TYPE bdc_fval,

END OF wa_data.

DATA: BEGIN OF wa_result,

matnr TYPE bdc_fval,

werks TYPE bdc_fval,

lgort TYPE bdc_fval,

mess_text(100),

end of wa_result.

data: it_result LIKE standard table of wa_result.

DATA: it_data LIKE standard TABLE OF wa_data.

DATA: it_bdc TYPE TABLE OF bdcdata,

wa_bdc LIKE LINE OF it_bdc.

DATA: it_messtab TYPE TABLE OF bdcmsgcoll,

wa_messtab LIKE LINE OF it_messtab.

DATA: v_file TYPE string.

DATA: message TYPE string.

PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY.

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

  • AT SELECTION-SCREEN *

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

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM get_file USING p_file.

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

  • S T A R T O F S E L E C T I O N *

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

START-OF-SELECTION.

v_file = p_file.

*uploading flat file into internal table

PERFORM upload_file USING v_file." CHANGING it_data.

PERFORM bdc.

perform write_message.

&----


*& Form bdc

&----


  • text

----


FORM bdc.

LOOP AT it_data INTO wa_data.

REFRESH it_bdc.

CLEAR it_bdc.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060' 'X'.

PERFORM bdc_field USING 'BDC_CURSOR' 'RMMG1-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE' 'AUSW'.

PERFORM bdc_field USING 'RMMG1-MATNR' wa_data-matnr..

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070' 'X'.

PERFORM bdc_field USING 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(01)'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

  • PERFORM bdc_dynpro USING 'SAPLMGMM' '0070' 'X'.

  • PERFORM bdc_field USING 'BDC_CURSOR' 'MSICHTAUSW-DYTXT(17)'.

  • PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'.

  • PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(16)' wa_data-kzsel.

  • PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(17)' wa_data-kzsel.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0080' 'X'.

PERFORM bdc_field USING 'BDC_CURSOR' 'RMMG1-LGORT'.

PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'.

PERFORM bdc_field USING 'RMMG1-WERKS' wa_data-werks.

PERFORM bdc_field USING 'RMMG1-LGORT' wa_data-lgort.

  • PERFORM bdc_dynpro USING 'SAPLMGMM' '4000' 'X'.

  • PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

  • PERFORM bdc_field USING 'BDC_CURSOR' 'MAKT-MAKTX'.

  • PERFORM bdc_field USING 'MAKT-MAKTX' wa_data-maktx.

  • PERFORM bdc_field USING 'MARA-IPRKZ' wa_data-iprkz.

  • PERFORM bdc_dynpro USING 'SAPLMGMM' '4000' 'X'.

  • PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

  • PERFORM bdc_field USING 'BDC_CURSOR' 'MAKT-MAKTX'.

  • PERFORM bdc_field USING 'MAKT-MAKTX' wa_data-maktx1.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300' 'X'.

PERFORM bdc_field USING 'BDC_OKCODE' '=YES'.

CALL TRANSACTION 'MM02' USING it_bdc

MODE 'N'

MESSAGES INTO it_messtab.

ENDLOOP.

ENDFORM. "bdc

&----


*& Form get_file

&----


  • text

----


  • -->P_PA_FILE text

----


FORM get_file USING p_file.

*V_FILE = P_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

program_name = syst-repid

field_name = 'P_FILE'

CHANGING

file_name = p_file.

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. " get_file

&----


*& Form upload_file

&----


  • text

----


  • -->P_V_FILE text

  • <--P_IT_DATA text

----


FORM upload_file USING p_file.

  • CHANGING it_data.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = p_file

filetype = 'DAT'

TABLES

data_tab = it_data.

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. " upload_file

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROGRAM *

  • --> DYNPRO *

----


FORM bdc_dynpro USING program TYPE bdc_prog

dynpro TYPE bdc_dynr

dynbegin TYPE bdc_start.

wa_bdc-program = program.

wa_bdc-dynpro = dynpro.

wa_bdc-dynbegin = dynbegin.

APPEND wa_bdc TO it_bdc.

CLEAR wa_bdc.

ENDFORM. "BDC_DYNPRO

----


  • FORM fnam fval *

----


  • ........ *

----


FORM bdc_field USING fnam TYPE fnam_____4

fval TYPE bdc_fval.

wa_bdc-fnam = fnam.

wa_bdc-fval = fval.

APPEND wa_bdc TO it_bdc.

CLEAR wa_bdc.

ENDFORM. "BDC_FIELD

form write_message.

loop at it_messtab into wa_messtab.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = wa_messtab-MSGID

LANG = 'EN'

NO = wa_messtab-MSGNR

V1 = wa_messtab-MSGV1

V2 = wa_messtab-MSGV2

V3 = wa_messtab-MSGV3

V4 = wa_messtab-MSGV4

IMPORTING

MSG = message.

  • EXCEPTIONS

  • NOT_FOUND = 1

  • OTHERS = 2

.

IF sy-subrc = 0.

CASE wa_messtab-msgtyp.

WHEN 'S'.

WRITE:/ message.

CLEAR message.

WHEN 'E'.

write:/ message.

endcase.

ENDIF.

endloop.

endform.