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

call session

Former Member
0 Likes
1,052

hi friends,

while working with call session i wan unable to upload more than one record... iam getting last record only. i kept loop at bdc_insert and i used refresh jtab and closed loop after bdc_insert....

plz help me.........

8 REPLIES 8
Read only

Former Member
0 Likes
1,019

can u post ur code?

Read only

Former Member
0 Likes
1,019

Hi,

See the sample BDC code and correct the error.

REPORT ZMMBDC1_1 NO STANDARD PAGE HEADING MESSAGE-ID ZT.

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

  • Declaration of internal tables

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

  • internal table for selecting data from flat file

DATA : BEGIN OF IT_DATA OCCURS 0,

MBRSH, " Industry sector

MTART(4), " Material type

KZSEL, " Checkbox

MAKTX(40), " Material description

MEINS(3), " Base unit of measure

MATKL(9), " Material group

BISMT(18), " Old material number

END OF IT_DATA.

  • internal table for bdcdata

DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  • internal table to handle messages

DATA : IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

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

  • Variables & Flag declaration

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

  • variables declaration

DATA : V_MESG(50).

  • flag declaration

DATA : FG_BDC,

FG_FLAG1 TYPE I.

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

  • selection screen

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

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.

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

  • parameter

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

PARAMETERS : P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.

SELECTION-SCREEN END OF BLOCK BLK1.

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

  • initialization

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

INITIALIZATION.

  • peform to initialize parameter

PERFORM INIT_PARM.

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

  • start of selection

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

start-of-selection.

  • perform to upload it_data

PERFORM UP_LOAD_IT_DATA.

  • perform transfer data

PERFORM TRANSFER_DATA.

  • end of selection

END-OF-SELECTION.

&----


*& Form INIT_PARM

&----


  • Initializing parameter

----


FORM INIT_PARM.

P_FILE = 'C:\'.

ENDFORM. " INIT_PARM

&----


*& Form UP_LOAD_IT_DATA

&----


  • Transfering data from file to internal table

----


FORM UP_LOAD_IT_DATA.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

FILENAME = P_FILE

FILETYPE = 'ASC'

TABLES

DATA_TAB = IT_DATA

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TABLE_WIDTH = 4

INVALID_TYPE = 5

NO_BATCH = 6

UNKNOWN_ERROR = 7

GUI_REFUSE_FILETRANSFER = 8

OTHERS = 9.

IF SY-SUBRC = 2 .

FG_FLAG1 = 1.

MESSAGE I001.

ENDIF.

ENDFORM. " UP_LOAD_IT_DATA

&----


*& Form TRANSFER_DATA

&----


  • Processing the data

----


FORM TRANSFER_DATA.

FG_BDC = 'N'.

LOOP AT IT_DATA.

  • perform to fill it_bdcdata.

PERFORM FILL_IT_BDCDATA.

CALL TRANSACTION 'MM01' USING IT_BDCDATA MODE 'N' UPDATE 'S'

MESSAGES INTO IT_MESSAGES.

IF SY-SUBRC <> 0.

FG_FLAG1 = 1.

  • if error occurs in transaction mode run bdc session for that data

PERFORM BDC_PROCESS.

ENDIF.

  • Handles error messages

PERFORM ERROR_MESSAGES.

CLEAR : IT_BDCDATA,IT_DATA,IT_MESSAGES.

REFRESH : IT_BDCDATA,IT_MESSAGES.

ENDLOOP.

IF FG_FLAG1 = 0.

MESSAGE I003.

ENDIF.

IF FG_BDC = 'O'.

  • close bdc if it is open

PERFORM CLOSE_BDC.

ENDIF.

ENDFORM. " TRANSFER_DATA

&----


*& Form FILL_IT_BDCDATA

&----


  • Filling Bdcdata structure with it_data

  • Some fields have been commented for future updations

----


FORM FILL_IT_BDCDATA.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0060'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '/00',

: 'BDC_CURSOR' 'RMMG1_REF-MATNR',

: 'RMMG1-MBRSH' IT_DATA-MBRSH,

: 'RMMG1-MTART' IT_DATA-MTART.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=RESA'.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '0070'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=ENTR',

: 'MSICHTAUSW-KZSEL(01)' IT_DATA-KZSEL.

PERFORM BDC_DYNPRO USING : 'SAPLMGMM' '4000'.

PERFORM BDC_FIELD USING : 'BDC_OKCODE' '=BU',

: 'BDC_SUBSCR' 'SAPLMGMM' & ' 2000TABFRA1',

: 'BDC_SUBSCR' 'SAPLMGD1' & ' 1002SUB1',

: 'BDC_CURSOR' 'MAKT-MAKTX',

: 'MAKT-MAKTX' IT_DATA-MAKTX,

: 'BDC_SUBSCR' 'SAPLMGD1' & ' 2001SUB2',

: 'MARA-MEINS' IT_DATA-MEINS,

: 'MARA-MATKL' IT_DATA-MATKL,

: 'MARA-BISMT' IT_DATA-BISMT,

: 'BDC_OKCODE' '=BU'.

*perform bdc_field using 'MARA-EXTWG' ''.

*perform bdc_field using 'MARA-LABOR' ''.

*perform bdc_field using 'MARA-KOSCH' ''.

*perform bdc_field using 'MARA-MSTAE' ''.

*perform bdc_field using 'MARA-MSTDE' ''.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2561SUB3'.

*perform bdc_field using 'MARA-BEGRU' ''.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2007SUB4'.

*perform bdc_field using 'MARA-NTGEW' ''.

*perform bdc_field using 'MARA-BRGEW' ''.

*perform bdc_field using 'MARA-GEWEI' ''.

*perform bdc_field using 'MARA-VOLUM' ''.

*perform bdc_field using 'MARA-VOLEH' ''.

*PERFORM BDC_FIELD USING 'MARA-GROES' ''.

*perform bdc_field using 'MARA-EAN11' ''.

*perform bdc_field using 'MARA-NUMTP' ''.

*PERFORM BDC_FIELD USING 'BDC_SUBSCR' 'SAPLMGD1' & ' 2005SUB5'.

*perform bdc_field using 'BDC_SUBSCR' 'SAPLMGD1' & ' 2011SUB6'.

*perform bdc_field using 'MARA-MAGRV' ''.

ENDFORM. " FILL_IT_BDCDATA

&----


*& Form BDC_DYNPRO

&----


  • Filling the it_bdcdata table with program name & screen number

----


FORM BDC_DYNPRO USING PROGRAM LIKE BDCDATA-PROGRAM

DYNPRO LIKE BDCDATA-DYNPRO.

IT_BDCDATA-PROGRAM = PROGRAM.

IT_BDCDATA-DYNPRO = DYNPRO.

IT_BDCDATA-DYNBEGIN = 'X'.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " BDC_DYNPRO

&----


*& Form BDC_FIELD

&----


  • Filling it_bdcdata with field name and field value

----


FORM BDC_FIELD USING FNAM LIKE BDCDATA-FNAM

FVAL.

IT_BDCDATA-FNAM = FNAM.

IT_BDCDATA-FVAL = FVAL.

APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.

ENDFORM. " BDC_FIELD

&----


*& Form ERROR_MESSAGES

&----


  • Displaying error messages

----


FORM ERROR_MESSAGES.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = SY-MSGID

LANG = '-D'

IMPORTING

MSG = V_MESG

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

LOOP AT IT_MESSAGES WHERE MSGTYP = 'E'.

WRITE : / 'Message :'(I06) ,V_MESG.

CLEAR IT_MESSAGES.

ENDLOOP.

ENDFORM. " ERROR_MESSAGES

&----


*& Form BDC_PROCESS

&----


  • Open bdc session if call transaction fails

----


FORM BDC_PROCESS.

IF FG_BDC = 'N'.

  • open bdc session

PERFORM OPEN_BDC.

FG_BDC = 'O'.

ENDIF.

IF FG_BDC = 'O'.

  • insert data into bdc session

PERFORM INSERT_BDC.

ENDIF.

ENDFORM. " BDC_PROCESS

&----


*& Form OPEN_BDC

&----


  • Calling function module to open bdc session

----


FORM OPEN_BDC.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'SMM1'

KEEP = 'X'

USER = SY-UNAME

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.

ENDFORM. " OPEN_BDC

&----


*& Form INSERT_BDC

&----


  • Insert it_bdcdata into bdc by calling function module bdc_insert

----


FORM INSERT_BDC.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

TABLES

DYNPROTAB = IT_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7.

ENDFORM. " INSERT_BDC

&----


*& Form CLOSE_BDC

&----


  • Closing bdc session

----


FORM CLOSE_BDC.

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

ENDFORM. " CLOSE_BDC

reward points if useful

regards,

ANJI

Read only

0 Likes
1,019

HI FRIENS, MY PROBLEM IS NOT SLOVED... STILL.......

here iam sending u my code...

if i keep loop at itab before bdc_open_group and close it after bdc_insert is giving error......

if i keep loop at itab befor bdc_insert and close it after bdc_insert it is not giving any error but its taking only last record in flat file...

plz undersatnd my problem clearly n answer it..

i am waiting form yesterday..............

DATA : BEGIN OF ITAB OCCURS 0,

MATNR LIKE RMMG1-MATNR,

MBRSH LIKE RMMG1-MBRSH,

MTART LIKE RMMG1-MTART,

MAKTX LIKE MAKT-MAKTX,

MEINS LIKE MARA-MEINS,

MATKL LIKE MARA-MATKL,

END OF ITAB,

JTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'UPLOAD'

EXPORTING

FILETYPE = 'DAT'

TABLES

DATA_TAB = ITAB

.

  • FIRST SCREEN

PERFORM SCREEN USING 'SAPLMGMM' '60'.

PERFORM FIELD USING 'RMMG1-MATNR' ITAB-MATNR.

PERFORM FIELD USING 'RMMG1-MBRSH' ITAB-MBRSH.

PERFORM FIELD USING 'RMMG1-MTART' ITAB-MTART.

PERFORM FIELD USING 'BDC_OKCODE' '/00'.

  • SECOND SCREEN

PERFORM SCREEN USING 'SAPLMGMM' '70'.

PERFORM FIELD USING 'MSICHTAUSW-KZSEL(01)' 'X'.

PERFORM FIELD USING 'BDC_OKCODE' 'ENTR'.

  • THIRD SCREEN

PERFORM SCREEN USING 'SAPLMGMM' '4004'.

PERFORM FIELD USING 'MAKT-MAKTX' itab-maktx.

PERFORM FIELD USING 'MARA-MEINS' ITAB-MEINS.

PERFORM FIELD USING 'MARA-MATKL' ITAB-MATKL.

PERFORM FIELD USING 'BDC_OKCODE' '/00'.

LOOP AT ITAB.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = '800'

  • DEST = FILLER8

GROUP = 'MADHU'

  • HOLDDATE = FILLER8

  • KEEP = FILLER1

USER = 'SAPUSER'

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

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MM01'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

TABLES

DYNPROTAB = JTAB

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

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 SCREEN USING PRO DYN.

JTAB-PROGRAM = PRO.

JTAB-DYNPRO = DYN.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

CLEAR JTAB.

ENDFORM.

FORM FIELD USING FNAM FVAL.

jtab-fnam = FNAM.

jtab-fval = FVAL.

APPEND JTAB.

CLEAR JTAB.

ENDFORM.

Read only

Former Member
0 Likes
1,019

Hi Sateesh,

May you are REFRESHing the intenral inside the LOOP...ENDLOOP.

Place the REFRESH itab outside the LOOP...ENDLOOP.

Thanks,

Vinay

Read only

Former Member
0 Likes
1,019

hi check this sample code this may help

Follwing sample code is for session method.

HEre the T-code is fD01.

&----


*& Report ZFICP_CUST_MASTER *

*& *

&----


*& *

*& *

&----


REPORT ZFICP_CUST_MASTER MESSAGE-ID ZFI

NO STANDARD PAGE HEADING

LINE-SIZE 225

LINE-COUNT 55.

----


  • FUNCTION MODULES USED------------------------------------------------*

----


  • WS_FILENAME_GET To select file from Presentation Server

  • GUI_UPLOAD To move data from text file to internal table

----


  • INTERNAL TABLES------------------------------------------------------*

----


Data: Begin of i_tab_data occurs 0,

kunnr like kna1-kunnr, "Customer Code

bukrs like knb1-bukrs, "Company Code

ktokd like kna1-ktokd, "Account Group

anred like kna1-anred, "Title

name1 like kna1-name1, "Name1

name2 like kna1-name2, "Name2

name3 like kna1-name3, "Name3

name4 like kna1-name4, "Name4

stras like kna1-stras, "Street

ort01 like kna1-ort01, "City

pstlz like kna1-pstlz, "Postal Code

ort02 like kna1-ort02, "District

land1 like kna1-land1, "Country

sortl like kna1-sortl, "Sort field

spras like KNA1-SPRAS, "Communication Language

akont like knb1-akont, "Reconciliation Account

zuawa like knb1-zuawa, "Sort key

zterm like knb1-zterm, "Payment Term

mahna like KNB5-MAHNA, "Dunning Procedure

xausz like KNB1-XAUSZ, "Indicator for Periodic acct statmnt

End of i_tab_data.

DATA: v_file type string.

----


  • Batchinputdata of single transaction

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  • messages of call transaction

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

  • error session opened (' ' or 'X')

DATA: E_GROUP_OPENED.

  • message texts

TABLES: T100.

----


  • SELECTION SCREEN-----------------------------------------------------*

----


SELECTION-SCREEN: BEGIN OF BLOCK A with FRAME.

PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY.

PARAMETERS GROUP(12). "group name of session

PARAMETERS: USER(12) DEFAULT SY-UNAME no-display.

"user for session in batch

PARAMETERS: KEEP DEFAULT 'X' no-display.

"' ' = delete session if finished

"'X' = keep session if finished

PARAMETERS: HOLDDATE LIKE SY-DATUM no-display.

PARAMETERS: NODATA DEFAULT '/' LOWER CASE no-display. "nodata

SELECTION-SCREEN: END OF BLOCK A.

----


  • at selection screen *

----


AT SELECTION-SCREEN.

  • group and user must be filled for create session

IF GROUP = SPACE.

MESSAGE E101.

ENDIF.

----


  • AT SELECTION SCREEN on value request --------------------------------*

----


  • to select the file from selection screen

at selection-screen on value-request for P_FILE.

PERFORM F_FILE_SELECT.

start-of-selection.

perform f_upload_data.

perform f_upload_fd01.

perform f_upload_report.

&----


*& Form F_FILE_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form F_FILE_SELECT .

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

  • DEF_FILENAME = 'getfile'

DEF_PATH = 'C:\'

MASK = ',.,..'

IMPORTING

FILENAME = P_FILE

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

MESSAGE I115.

ENDIF.

endform. " F_FILE_SELECT

&----


*& Form f_upload_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_data .

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = p_file

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = i_tab_data

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

NO_AUTHORITY = 10

OTHERS = 11.

IF sy-subrc <> 0.

message e116 with p_file.

ENDIF.

endform. " f_upload_data

&----


*& Form f_upload_fd01

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_fd01 .

perform open_group.

Loop at i_tab_data.

perform bdc_dynpro using 'SAPMF02D' '0105'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-KTOKD'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

i_tab_data-kunnr.

  • 'FYRC4'.

perform bdc_field using 'RF02D-BUKRS'

i_tab_data-bukrs.

  • '5111'.

perform bdc_field using 'RF02D-KTOKD'

i_tab_data-ktokd.

  • 'Z003'.

perform bdc_dynpro using 'SAPMF02D' '0110'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-SPRAS'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNA1-ANRED'

i_tab_data-anred.

  • 'Mr'.

perform bdc_field using 'KNA1-NAME1'

i_tab_data-name1.

  • 'name1'.

perform bdc_field using 'KNA1-NAME2'

i_tab_data-name2.

  • 'name2'.

perform bdc_field using 'KNA1-NAME3'

i_tab_data-name3.

  • 'name3'.

perform bdc_field using 'KNA1-NAME4'

i_tab_data-name4.

  • 'name4'.

perform bdc_field using 'KNA1-STRAS'

i_tab_data-stras.

  • 'Street'.

perform bdc_field using 'KNA1-ORT01'

i_tab_data-ort01.

  • 'City'.

perform bdc_field using 'KNA1-PSTLZ'

i_tab_data-pstlz.

  • '123456'.

perform bdc_field using 'KNA1-ORT02'

i_tab_data-ort02.

  • 'District'.

perform bdc_field using 'KNA1-LAND1'

i_tab_data-land1.

  • 'CN'.

perform bdc_field using 'KNA1-SORTL'

i_tab_data-sortl.

  • 'NM'.

perform bdc_field using 'KNA1-SPRAS'

i_tab_data-spras.

  • 'EN'.

perform bdc_dynpro using 'SAPMF02D' '0120'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-LIFNR'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_dynpro using 'SAPMF02D' '0130'.

perform bdc_field using 'BDC_CURSOR'

'KNBK-BANKS(01)'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_dynpro using 'SAPMF02D' '0210'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-ZUAWA'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNB1-AKONT'

i_tab_data-akont.

  • '111100000'.

perform bdc_field using 'KNB1-ZUAWA'

i_tab_data-zuawa.

  • '000'.

perform bdc_dynpro using 'SAPMF02D' '0215'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-ZTERM'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNB1-ZTERM'

i_tab_data-zterm.

  • '0001'.

perform bdc_dynpro using 'SAPMF02D' '0220'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-XAUSZ'.

perform bdc_field using 'BDC_OKCODE'

'=UPDA'.

perform bdc_field using 'KNB5-MAHNA'

i_tab_data-mahna.

  • 'Z001'.

perform bdc_field using 'KNB1-XAUSZ'

i_tab_data-xausz.

  • '2'.

perform bdc_transaction using 'FD01'.

endloop.

perform close_group.

endform. " f_upload_fd01

&----


*& Form f_upload_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_report .

format color COL_TOTAL.

WRITE:/'Report:', sy-repid.

WRITE:40 ' Group Chart of accounts',

80 'Page No:',SY-PAGNO.

WRITE:/'User Id:',sy-uname.

WRITE: 55 'System date/Time:',SY-DATUM,'/',SY-UZEIT.

SKIP 2.

FORMAT COLOR COL_NORMAL.

write:/'Session Name: ',group.

endform. " f_upload_report

----


  • create batchinput session *

  • (not for call transaction using...) *

----


FORM OPEN_GROUP.

  • open batchinput group

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING CLIENT = SY-MANDT

GROUP = GROUP

USER = USER

KEEP = KEEP

HOLDDATE = HOLDDATE.

ENDFORM.

----


  • end batchinput session *

  • (call transaction using...: error session) *

----


FORM CLOSE_GROUP.

  • close batchinput group

CALL FUNCTION 'BDC_CLOSE_GROUP'.

WRITE: /(30) 'BDC_CLOSE_GROUP',

(12) 'returncode:',

SY-SUBRC.

ENDFORM.

----


  • Start new transaction according to parameters *

----


FORM BDC_TRANSACTION USING TCODE.

  • batch input session

CALL FUNCTION 'BDC_INSERT'

EXPORTING TCODE = TCODE

TABLES DYNPROTAB = BDCDATA.

REFRESH BDCDATA.

ENDFORM.

----


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

regards

navjot

Read only

Former Member
0 Likes
1,019

..

Read only

Former Member
0 Likes
1,019

Hi,

Try this.

Open BDC session.

Loop at the uploaded internal table.

populate the BDC data table.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = 'VA01' " use ypur transaction

TABLES

dynprotab = i_bdcdata. " This is BDC data table

refresh i_bdcdata.

Endloop.

Close BDC session.

I'm sure. this will help you. And don't forgat the points if it helps.

Read only

Former Member
0 Likes
1,019

Hi,

Please try it this way...

<b> PERFORM upload_data</b>.

PERFORM create_group.

<b> PERFORM bdc_routines.</b>

PERFORM close_group.

in PERFORM upload_data-->

<i>CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = l_file

filetype = 'DAT'

IMPORTING

filelength = t1_filesize

TABLES

data_tab = itab.

append itab.

clear itab.</i>

after this: in perform BDC_ROUTINES:

loop at itab.

do the bdc processing here.

Endloop.

Hope this helps you.