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 code for the XD01 and VD01

Former Member
0 Likes
885

Hello Masters,

I am new to SAP-ABAP,could anyone help me to get the BDC code to update the customer master data by using the t.code XD01 and VD01.

Thanks

Varsha.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
634

*----


  • SESSION METHOD

*----


report YARINSESSIONBDC2 no standard page heading line-size 255.

data: bdcdata like bdcdata occurs 0 with header line.

data: session like apqi-groupid value 'yar1'.

data: begin of itab occurs 0,

kunnr like lfa1-kunnr,

name1 like lfa1-name1,

pstlz like lfa1-pstlz,

end of itab.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'D:\naser.txt'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '|'

  • HEADER_LENGTH = 0

    • READ_BY_LINE = 'X'

    • IMPORTING

    • FILELENGTH =

    • HEADER =

TABLES

DATA_TAB = itab

    • EXCEPTIONS

    • FILE_OPEN_ERROR = 1

    • FILE_READ_ERROR = 2

    • NO_BATCH = 3

    • GUI_REFUSE_FILETRANSFER = 4

    • INVALID_TYPE = 5

    • NO_AUTHORITY = 6

    • UNKNOWN_ERROR = 7

    • BAD_DATA_FORMAT = 8

    • HEADER_NOT_ALLOWED = 9

    • SEPARATOR_NOT_ALLOWED = 10

    • HEADER_TOO_LONG = 11

    • UNKNOWN_DP_ERROR = 12

    • ACCESS_DENIED = 13

    • DP_OUT_OF_MEMORY = 14

    • DISK_FULL = 15

    • DP_TIMEOUT = 16

    • OTHERS = 17

.

IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

start-of-selection.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = SESSION

  • HOLDDATE = FILLER8

  • KEEP = FILLER1

USER = SY-UNAME

  • RECORD = FILLER1

  • IMPORTING

  • QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DO.

perform fill_bdc_tab.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'XD02'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

TABLES

DYNPROTAB = BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDDO.

CALL FUNCTION 'BDC_CLOSE_GROUP'

  • EXCEPTIONS

  • NOT_OPEN = 1

  • QUEUE_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*include bdcrecx1.

*start-of-selection.

*perform open_group.

&----


*& Form fill_bdc_tab

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_bdc_tab.

clear bdcdata.

refresh bdcdata.

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0110'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

itab-kunnr.

perform bdc_field using 'RF02D-BUKRS'

'0001'.

perform bdc_field using 'RF02D-D0110'

'X'.

perform bdc_dynpro using 'SAPMF02D' '0110'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-PSTLZ'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KNA1-ANRED'

'Company'.

perform bdc_field using 'KNA1-NAME1'

itab-name1.

perform bdc_field using 'KNA1-PFACH'

'GPO'.

perform bdc_field using 'KNA1-ORT01'

'7000091'.

perform bdc_field using 'KNA1-PSTLZ'

itab-pstlz.

perform bdc_field using 'KNA1-PSTL2'

'123456'.

perform bdc_field using 'KNA1-LAND1'

'IN'.

perform bdc_field using 'KNA1-SPRAS'

'EN'.

*perform bdc_transaction using 'XD02'.

*

*perform close_group.

append bdcdata.

ENDFORM. " fill_bdc_tab

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

  • IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

  • ENDIF.

ENDFORM.

Reward if useful

Regards

ANUPAM

Hello Masters,

I am new to SAP-ABAP,could anyone help me to get the BDC code to update the customer master data by using the t.code XD01 and VD01.

Thanks

Varsha.

2 REPLIES 2
Read only

Former Member
0 Likes
635

*----


  • SESSION METHOD

*----


report YARINSESSIONBDC2 no standard page heading line-size 255.

data: bdcdata like bdcdata occurs 0 with header line.

data: session like apqi-groupid value 'yar1'.

data: begin of itab occurs 0,

kunnr like lfa1-kunnr,

name1 like lfa1-name1,

pstlz like lfa1-pstlz,

end of itab.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'D:\naser.txt'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '|'

  • HEADER_LENGTH = 0

    • READ_BY_LINE = 'X'

    • IMPORTING

    • FILELENGTH =

    • HEADER =

TABLES

DATA_TAB = itab

    • EXCEPTIONS

    • FILE_OPEN_ERROR = 1

    • FILE_READ_ERROR = 2

    • NO_BATCH = 3

    • GUI_REFUSE_FILETRANSFER = 4

    • INVALID_TYPE = 5

    • NO_AUTHORITY = 6

    • UNKNOWN_ERROR = 7

    • BAD_DATA_FORMAT = 8

    • HEADER_NOT_ALLOWED = 9

    • SEPARATOR_NOT_ALLOWED = 10

    • HEADER_TOO_LONG = 11

    • UNKNOWN_DP_ERROR = 12

    • ACCESS_DENIED = 13

    • DP_OUT_OF_MEMORY = 14

    • DISK_FULL = 15

    • DP_TIMEOUT = 16

    • OTHERS = 17

.

IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

start-of-selection.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = SESSION

  • HOLDDATE = FILLER8

  • KEEP = FILLER1

USER = SY-UNAME

  • RECORD = FILLER1

  • IMPORTING

  • QID =

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DO.

perform fill_bdc_tab.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'XD02'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

TABLES

DYNPROTAB = BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDDO.

CALL FUNCTION 'BDC_CLOSE_GROUP'

  • EXCEPTIONS

  • NOT_OPEN = 1

  • QUEUE_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*include bdcrecx1.

*start-of-selection.

*perform open_group.

&----


*& Form fill_bdc_tab

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_bdc_tab.

clear bdcdata.

refresh bdcdata.

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0110'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

itab-kunnr.

perform bdc_field using 'RF02D-BUKRS'

'0001'.

perform bdc_field using 'RF02D-D0110'

'X'.

perform bdc_dynpro using 'SAPMF02D' '0110'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-PSTLZ'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KNA1-ANRED'

'Company'.

perform bdc_field using 'KNA1-NAME1'

itab-name1.

perform bdc_field using 'KNA1-PFACH'

'GPO'.

perform bdc_field using 'KNA1-ORT01'

'7000091'.

perform bdc_field using 'KNA1-PSTLZ'

itab-pstlz.

perform bdc_field using 'KNA1-PSTL2'

'123456'.

perform bdc_field using 'KNA1-LAND1'

'IN'.

perform bdc_field using 'KNA1-SPRAS'

'EN'.

*perform bdc_transaction using 'XD02'.

*

*perform close_group.

append bdcdata.

ENDFORM. " fill_bdc_tab

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

  • IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

  • ENDIF.

ENDFORM.

Reward if useful

Regards

ANUPAM

Read only

Former Member
0 Likes
634

Hi,

The following link shows you how to do a recording of a transation and get the BDC code for it

http://www.sapdevelopment.co.uk/bdc/bdc_recording.htm

Hope this helps

Reward points if found helpful....

Cheers,

Chandra Sekhar.