‎2007 Apr 11 11:30 AM
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.........
‎2007 Apr 11 11:32 AM
‎2007 Apr 11 11:33 AM
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
‎2007 Apr 12 6:46 AM
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.
‎2007 Apr 11 11:34 AM
Hi Sateesh,
May you are REFRESHing the intenral inside the LOOP...ENDLOOP.
Place the REFRESH itab outside the LOOP...ENDLOOP.
Thanks,
Vinay
‎2007 Apr 11 11:35 AM
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
‎2007 Apr 11 11:44 AM
‎2007 Apr 11 11:48 AM
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.
‎2007 Apr 12 6:56 AM
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.