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

Former Member
0 Likes
514

can any body tell me the steps in BDC?

5 REPLIES 5
Read only

Former Member
0 Likes
476

For BDC:

http://myweb.dal.ca/hchinni/sap/bdc_home.htm

https://www.sdn.sap.com/irj/sdn/wiki?path=/display/home/bdc&;

http://www.sap-img.com/abap/learning-bdc-programming.htm

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

http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm

http://help.sap.com/saphelp_47x200/helpdata/en/69/c250684ba111d189750000e8322d00/frameset.htm

http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html

Check these link:

http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm

http://www.sap-img.com/abap/question-about-bdc-program.htm

http://www.itcserver.com/blog/2006/06/30/batch-input-vs-call-transaction/

http://www.planetsap.com/bdc_main_page.htm

Also check code for Two methods in BDC

&----


*& Report ZCALLTRANS_BDC_M *

*& *

&----


*& *

*& *

&----


REPORT zcalltrans_bdc_m .

*INCLUDE bdcrecx1.

DATA: BEGIN OF itab OCCURS 0 ,

msector(1) TYPE c,

munit(3) TYPE c,

mtype(4) TYPE c,

mdesc(40) TYPE c,

END OF itab.

DATA: BEGIN OF itab1 OCCURS 0 ,

msector(1) TYPE c,

munit(3) TYPE c,

mtype(4) TYPE c,

mdesc(40) TYPE c,

END OF itab1.

DATA: BEGIN OF erritab OCCURS 0 ,

msector(1) TYPE c,

munit(3) TYPE c,

mtype(4) TYPE c,

mdesc(40) TYPE c,

END OF erritab.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: msg(40) TYPE c.

PARAMETERS :fname LIKE rlgrap-filename,

ftype LIKE rlgrap-filetype.

DATA: fname1 TYPE string.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR fname.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

  • FIELD_NAME = ' '

IMPORTING

file_name = fname.

START-OF-SELECTION.

MOVE fname TO fname1.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = fname1

filetype = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • NO_AUTH_CHECK = ' '

  • 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.

OPEN DATASET 'text2.txt' FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT itab.

TRANSFER itab TO 'text2.txt'.

ENDLOOP.

CLOSE DATASET 'text2.txt'.

OPEN DATASET 'text2.txt' FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

READ DATASET 'text2.txt' INTO itab1.

IF sy-subrc EQ 0.

APPEND itab1.

CLEAR itab1.

ELSE.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET 'text2.txt'.

DELETE DATASET 'text2.txt'.

  • itab1[] = itab[].

LOOP AT itab1.

  • PERFORM open_group.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MTART'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=AUSW'.

PERFORM bdc_field USING 'RMMG1-MBRSH'

itab1-msector.

PERFORM bdc_field USING 'RMMG1-MTART'

itab1-mtype.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP02'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab1-mdesc.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MEINS'.

PERFORM bdc_field USING 'MARA-MEINS'

itab1-munit.

PERFORM bdc_field USING 'MARA-MTPOS_MARA'

'NORM'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab1-mdesc.

  • PERFORM close_group.

CALL TRANSACTION 'MM01' USING bdcdata MODE 'A' UPDATE 'S'.

  • IF sy-subrc NE 0 .

  • erritab-msector = itab1-msector.

  • erritab-munit = itab1-munit.

  • erritab-mtype = itab1-mtype.

  • erritab-mdesc = itab1-mdesc.

  • APPEND erritab.

  • CLEAR erritab.

  • ENDIF.

CALL FUNCTION 'FORMAT_MESSAGE'

  • EXPORTING

  • ID = SY-MSGID

  • LANG = '-D'

  • NO = SY-MSGNO

  • V1 = SY-MSGV1

  • V2 = SY-MSGV2

  • V3 = SY-MSGV3

  • V4 = SY-MSGV4

IMPORTING

msg = msg

EXCEPTIONS

not_found = 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.

WRITE: 'message from system--->', msg.

CLEAR msg.

REFRESH bdcdata.

CLEAR itab1.

ENDLOOP.

SKIP.

WRITE: / 'Error records are----


>'.

LOOP AT erritab.

WRITE: / erritab-msector, erritab-munit, erritab-mtype, erritab-mdesc.

ENDLOOP.

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->FNAM text

  • -->FVAL text

----


FORM bdc_field USING fnam fval.

  • IF FVAL <> NODATA.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

  • ENDIF.

ENDFORM. "BDC_FIELD

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

&----


*& Report ZSESSION_BDC_M *

*& *

&----


*& *

*& *

&----


REPORT zsession_bdc_m .

DATA: BEGIN OF itab OCCURS 0 ,

msector(1) TYPE c,

munit(3) TYPE c,

mtype(4) TYPE c,

mdesc(40) TYPE c,

END OF itab.

DATA: BEGIN OF itab1 OCCURS 0 ,

msector(1) TYPE c,

munit(3) TYPE c,

mtype(4) TYPE c,

mdesc(40) TYPE c,

END OF itab1.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: msg(40) TYPE c.

PARAMETERS :fname LIKE rlgrap-filename,

ftype LIKE rlgrap-filetype.

DATA: fname1 TYPE string.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR fname.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

  • FIELD_NAME = ' '

IMPORTING

file_name = fname.

START-OF-SELECTION.

MOVE fname TO fname1.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = fname1

filetype = 'ASC'

  • HAS_FIELD_SEPARATOR = ' '

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • NO_AUTH_CHECK = ' '

  • 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.

OPEN DATASET 'text2.txt' FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT itab.

TRANSFER itab TO 'text2.txt'.

ENDLOOP.

CLOSE DATASET 'text2.txt'.

OPEN DATASET 'text2.txt' FOR INPUT IN TEXT MODE ENCODING DEFAULT.

DO.

READ DATASET 'text2.txt' INTO itab1.

IF sy-subrc EQ 0.

APPEND itab1.

CLEAR itab1.

ELSE.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET 'text2.txt'.

DELETE DATASET 'text2.txt'.

DATA: date LIKE sy-datum.

date = sy-datum - 1.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

  • CLIENT = SY-MANDT

  • DEST = FILLER8

group = 'SESSION'

holddate = date

keep = 'X'

user = sy-uname

  • RECORD = FILLER1

  • PROG = SY-CPROG

  • 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.

LOOP AT itab1.

  • PERFORM open_group.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MTART'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=AUSW'.

PERFORM bdc_field USING 'RMMG1-MBRSH'

itab1-msector.

PERFORM bdc_field USING 'RMMG1-MTART'

itab1-mtype.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP02'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab1-mdesc.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MEINS'.

PERFORM bdc_field USING 'MARA-MEINS'

itab1-munit.

PERFORM bdc_field USING 'MARA-MTPOS_MARA'

'NORM'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=BU'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

itab1-mdesc.

  • PERFORM close_group.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = 'MM01'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

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.

REFRESH bdcdata.

ENDLOOP.

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.

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->FNAM text

  • -->FVAL text

----


FORM bdc_field USING fnam fval.

  • IF FVAL <> NODATA.

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

  • ENDIF.

ENDFORM. "BDC_FIELD

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM . "bdc_dynpro

Rewards if useful....................

Minal

Read only

Former Member
0 Likes
476

Hi,

<b><i>1.For doing any BDC, u have to first do recording.

2.For recording the tcode is SHDB.

3.Click new recording button.

4.For example if u r going to do BDC for item PROPOSAL tocde VA51, then give ur recording name as ZVA51. and tcode as VA51.

5.Give the entries in the tcode.

6.Finally click save button.

7.Then automatically coding will be done by default.

8.Click program and go in to the program.</i></b>

I have done a BDC for creating item Proposal.

From the default code, u have to make slight changes.

The BDC I have attached along with this after correcting. Please gothrough it.

REPORT ztest_proposals.

TYPES : BEGIN OF ty_tab_va51,

stype(1) TYPE c,

auart TYPE auart,

vkorg TYPE vkorg,

vtweg TYPE vtweg,

spart TYPE spart,

ktext TYPE ktext_v,

guebg(10) TYPE c,

gueen(10) TYPE c,

mabnr TYPE matnr,

zmeng(5) TYPE c,

END OF ty_tab_va51.

DATA : lv_count TYPE i,

lv_matnr TYPE string,

lv_qty TYPE string,

lv_count_str TYPE string.

INCLUDE bdcrecx1.

START-OF-SELECTION.

DATA: it_itab TYPE STANDARD TABLE OF ty_tab_va51,

wa_itab LIKE LINE OF it_itab,

lv_auart TYPE auart,

lv_vkorg TYPE vkorg,

lv_vtweg TYPE vtweg,

lv_spart TYPE spart,

lv_ktext TYPE ktext_v,

lv_guebg(10) TYPE c,

lv_gueen(10) TYPE c.

START-OF-SELECTION.

CALL FUNCTION 'UPLOAD'

EXPORTING

filetype = 'DAT'

TABLES

data_tab = it_itab

EXCEPTIONS

conversion_error = 1

invalid_table_width = 2

invalid_type = 3

no_batch = 4

unknown_error = 5

gui_refuse_filetransfer = 6

OTHERS = 7.

PERFORM open_group.

DATA : lv_index TYPE i.

LOOP AT it_itab INTO wa_itab.

IF wa_itab-stype EQ 'H'.

  • AT NEW stype.

IF sy-index NE 1.

PERFORM bdc_field USING 'BDC_OKCODE' '=SICH'.

PERFORM bdc_transaction USING 'VA51'.

  • clear lv_index.

ENDIF.

PERFORM bdc_dynpro USING 'SAPMV45A' '0101'.

PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-AUART'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_field USING 'VBAK-AUART' wa_itab-auart.

PERFORM bdc_field USING 'VBAK-VKORG' wa_itab-vkorg.

PERFORM bdc_field USING 'VBAK-VTWEG' wa_itab-vtweg.

PERFORM bdc_field USING 'VBAK-SPART' wa_itab-spart.

PERFORM bdc_dynpro USING 'SAPMV45A' '0412'.

PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-GUEEN'.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_field USING 'VBAK-KTEXT' wa_itab-ktext.

PERFORM bdc_field USING 'VBAK-GUEBG' wa_itab-guebg.

PERFORM bdc_field USING 'VBAK-GUEEN' wa_itab-gueen.

CLEAR lv_count.

  • ENDAT.

  • IF lv_index ne 2 and sy-index ne 1.

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

  • PERFORM bdc_transaction USING 'VA51'.

  • clear lv_index.

  • ENDIF.

  • PERFORM bdc_dynpro USING 'SAPMV45A' '0101'.

  • PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-AUART'.

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

  • PERFORM bdc_field USING 'VBAK-AUART' wa_itab-auart.

  • PERFORM bdc_field USING 'VBAK-VKORG' wa_itab-vkorg.

  • PERFORM bdc_field USING 'VBAK-VTWEG' wa_itab-vtweg.

  • PERFORM bdc_field USING 'VBAK-SPART' wa_itab-spart.

  • PERFORM bdc_dynpro USING 'SAPMV45A' '0412'.

  • PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-GUEEN'.

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

  • PERFORM bdc_field USING 'VBAK-KTEXT' wa_itab-ktext.

  • PERFORM bdc_field USING 'VBAK-GUEBG' wa_itab-guebg.

  • PERFORM bdc_field USING 'VBAK-GUEEN' wa_itab-gueen.

  • CLEAR lv_count.

ENDIF.

lv_count = lv_count + 1.

CLEAR : lv_matnr,lv_qty,lv_count_str.

IF lv_count LT 10.

lv_count_str = lv_count.

CONCATENATE '0' lv_count_str INTO lv_count_str.

ELSE.

lv_count_str = lv_count.

ENDIF.

CONCATENATE 'RV45A-MABNR(' lv_count_str ')' INTO lv_matnr.

CONCATENATE 'VBAP-ZMENG(' lv_count_str ')' INTO lv_qty.

PERFORM bdc_field USING lv_matnr wa_itab-mabnr.

PERFORM bdc_field USING lv_qty wa_itab-zmeng.

PERFORM bdc_dynpro USING 'SAPMV45A' '0412'.

PERFORM bdc_field USING 'BDC_CURSOR' lv_matnr.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

PERFORM bdc_dynpro USING 'SAPMV45A' '0412'.

PERFORM bdc_field USING 'BDC_CURSOR' lv_qty.

PERFORM bdc_field USING 'BDC_OKCODE' '/00'.

  • IF wa_itab-stype EQ 'L'.

  • AT END OF stype.

  • CLEAR lv_index.

  • lv_index = 2.

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

  • PERFORM bdc_transaction USING 'VA51'.

  • ENDAT.

  • ENDIF.

ENDLOOP.

PERFORM close_group.

Reward if useful.

Read only

0 Likes
476

HI,

Just go to Expert Forums » ABAP Development » Data transfers

In search field enter "BDC new " . u can get lot of infomations and materials.

Before post ur question just search in forums.

Thanks.

Senthil kumar

Read only

Former Member
0 Likes
476

<b>SESSION METHOD</b>

WE USE 3 FUNCTION MODULES IN THIS SESSION METHOD.

1) BDC_OPEN_GROUP

USER NAME: USER NAME

GROUP: NAME OF THE SESSION

LOCK DATE: THE DATE ON WHICH YOU WANT TO PROCESS THE SESSION.

KEEP: THIS PARAMETER IS PASSED AS ‘X’ WHEN YOU WANT TO RETAIN SESSION AFTER PROCESSING IT OR ‘ ‘ TO DELETE IT AFTER PROCESSING.

THIS CREATES A SESSION

2) BDC_INSERT

TCODE: TRANSACTION NAME

DYNPROTAB: BDC DATA

THIS CREATES A SEESION AND DATA IS TRANSFERRED O SESSION.

3) BDC_CLOSE_GROUP – THIS CLOSES THE BDC GROUP.

ONLY ONE SESSION CAN BE CREATED USING BDC_OPEN_GROUP. BUT MULTIPLE TRANSACTIONS CAN BE PROCESSED USING BDC_INSERT.

<b>CALL TRANSACTION</b>

<i>CALL TRANSACTION <TCODE> USING <BDCTAB>

MODE <A/N/E>

UPDATE <S/A>

MESSAGES INTO <MSGTAB>.</i>

A – ALL SCREEN MODE. ALL THE SCREEN OF THE TRANSACTION ARE DISPLAYED.

N – NO SCREEN MODE. NO SCREEN IS DISPLAYED WHEN YOU EXECUTE THE TRANSACTION.

E – ERROR SCREEN. IF THE SCREEN HAS ERROR RECORD, THEN THAT SCREEN WILL BE DISPLAYED.

S - IF YOU CHANGE DATA OF ONE TABLE THEN ALL THE RELATED TABLES GETS UPDATED. AND SY-SUBRC IS RETURNED I.E., SY-SUBRC IS RETURNED FOR ONCE AND ALL.

A - WHEN YOU CHANGE DATA OF ONE TABLE, THE SY-SUBRC IS RETURNED. AND THEN UPDATING OF OTHER AFFECTED TABLES TAKES PLACE. SO IF SYSTEM FAILS TO UPDATE OTHER TABLES, STILL SY-SUBRC RETURNED IS 0 (I.E., WHEN FIRST TABLE GETS UPDATED

Read only

Former Member
0 Likes
476

<b>SESSION METHOD</b>

WE USE 3 FUNCTION MODULES IN THIS SESSION METHOD.

1) BDC_OPEN_GROUP

USER NAME: USER NAME

GROUP: NAME OF THE SESSION

LOCK DATE: THE DATE ON WHICH YOU WANT TO PROCESS THE SESSION.

KEEP: THIS PARAMETER IS PASSED AS ‘X’ WHEN YOU WANT TO RETAIN SESSION AFTER PROCESSING IT OR ‘ ‘ TO DELETE IT AFTER PROCESSING.

THIS CREATES A SESSION

2) BDC_INSERT

TCODE: TRANSACTION NAME

DYNPROTAB: BDC DATA

THIS CREATES A SEESION AND DATA IS TRANSFERRED O SESSION.

3) BDC_CLOSE_GROUP – THIS CLOSES THE BDC GROUP.

ONLY ONE SESSION CAN BE CREATED USING BDC_OPEN_GROUP. BUT MULTIPLE TRANSACTIONS CAN BE PROCESSED USING BDC_INSERT.

<b>CALL TRANSACTION</b>

<i>CALL TRANSACTION <TCODE> USING <BDCTAB>

MODE <A/N/E>

UPDATE <S/A>

MESSAGES INTO <MSGTAB>.</i>

A – ALL SCREEN MODE. ALL THE SCREEN OF THE TRANSACTION ARE DISPLAYED.

N – NO SCREEN MODE. NO SCREEN IS DISPLAYED WHEN YOU EXECUTE THE TRANSACTION.

E – ERROR SCREEN. IF THE SCREEN HAS ERROR RECORD, THEN THAT SCREEN WILL BE DISPLAYED.

S - IF YOU CHANGE DATA OF ONE TABLE THEN ALL THE RELATED TABLES GETS UPDATED. AND SY-SUBRC IS RETURNED I.E., SY-SUBRC IS RETURNED FOR ONCE AND ALL.

A - WHEN YOU CHANGE DATA OF ONE TABLE, THE SY-SUBRC IS RETURNED. AND THEN UPDATING OF OTHER AFFECTED TABLES TAKES PLACE. SO IF SYSTEM FAILS TO UPDATE OTHER TABLES, STILL SY-SUBRC RETURNED IS 0 (I.E., WHEN FIRST TABLE GETS UPDATED

Please reward if helpful.