Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc change

Former Member
0 Likes
439

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.

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.

1 REPLY 1
Read only

Former Member
0 Likes
397

You can try using BAPI's. That is a better option than BDC's. Try BAPI_MATERIAL_SAVEDATA or BAPI_MATERIAL_MAINTAINDATA_RT if you are using Retail.

Regards,

Archana.