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

P311729
Explorer
0 Likes
743

is it possible to have multiple BDC_INSERTS between a single open and close group

5 REPLIES 5
Read only

Former Member
0 Likes
712

To my knowledge No

Read only

P311729
Explorer
0 Likes
712

like what will be the problem if we have multiple inserts between a single open and close group

Read only

Former Member
0 Likes
712

Hi...

we can use as many BDC_INSETS between BDC_OPEN & BDC_CLOSE. That is the befefit of using CALL by SESSION method of BDC. Otherwise one can use BDC's CALL by Transaction method.

so u can use as many inserts as u want.

bbye tac care

Ashwani

Read only

0 Likes
712

hey,

I am sorry, you can use multiple BDC_INSERT

Check this program...

REPORT Zreport1.

DATA: I_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF RECORD OCCURS 0, " Declaration of the data that is to be uploaded from the file

LIFNR_001(016),

KTOKK_002(004),

NAME1_003(035),

SORTL_004(010),

LAND1_005(003),

SPRAS_006(002),

END OF RECORD.

START-OF-SELECTION.

PERFORM OPEN_GROUP.

*Uploading data from the local file C:\Vendor1.txt

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = 'C:\VENDOR1.TXT '

FILETYPE = 'DAT'

TABLES

DATA_TAB = RECORD.

IF SY-SUBRC <> 0.

WRITE 'ERROR IN UPLOAD'.

ENDIF.

LOOP AT RECORD. " Filling the BDC table with data

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0107'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RF02K-LIFNR'

RECORD-LIFNR_001.

PERFORM BDC_FIELD USING 'RF02K-KTOKK'

RECORD-KTOKK_002.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-SORTL'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'LFA1-NAME1'

RECORD-NAME1_003.

PERFORM BDC_FIELD USING 'LFA1-SORTL'

RECORD-SORTL_004.

PERFORM BDC_FIELD USING 'LFA1-LAND1'

RECORD-LAND1_005.

PERFORM BDC_FIELD USING 'LFA1-SPRAS'

RECORD-SPRAS_006.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

PERFORM BDC_TRANSACTION USING 'MK01'.

perform bdc_transaction using 'MK02'.

ENDLOOP.

PERFORM CLOSE_GROUP. " Closing the BDC session

FORM OPEN_GROUP.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'SESSION1'

USER = SY-UNAME

KEEP = 'X'.

IF SY-SUBRC <> 0.

WRITE 'ERROR IN OPEN_GROUP'.

ENDIF.

ENDFORM.

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR I_BDCDATA.

I_BDCDATA-PROGRAM = PROGRAM.

I_BDCDATA-DYNPRO = DYNPRO.

I_BDCDATA-DYNBEGIN = 'X'.

APPEND I_BDCDATA.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

CLEAR I_BDCDATA.

I_BDCDATA-FNAM = FNAM.

I_BDCDATA-FVAL = FVAL.

APPEND I_BDCDATA.

ENDFORM.

FORM BDC_TRANSACTION USING TCODE.

CALL FUNCTION 'BDC_INSERT'

EXPORTING TCODE = TCODE

TABLES DYNPROTAB = I_BDCDATA.

ENDFORM.

FORM CLOSE_GROUP.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDFORM. " CLOSE_GROUP

Read only

0 Likes
712

Hy, mark this as answered if your problem is solved.