‎2007 May 15 7:32 AM
Hi ,
This is vijay...
can anyone help me plz
Hi,
Iam uploading data using call transaction.Tcode is ff67.In this TCode we have the begining balance(ssald) and ending balance(esald).The new record we are uploading will take the begining balance as the previous record ending balance, if we give the begining balance wrong then the record does not saved it will show error(the begining balance does not match with the prior ending balance).
while uploading the data using MODE A iam able to get the desired output but by using the MODE N iam not able to get the desired output i,e if there is any error in the begining balance also the record is being saved iam not getting the error message.
Iam attaching the code below..please help me
report Z_BRS_BDC no standard page heading line-size 255.
&----
INTERNAL TABLES DECLARATIONS
&----
DATA : BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA : END OF bdcdata.
DATA: LV_OUT TYPE STRING.
DATA : iopt LIKE ctu_params.
DATA : wa_rec_err TYPE i.
DATA : wa_rec_wri TYPE i.
DATA : wa_tot_rec TYPE i.
DATA : amt(16) type c.
DATA : BEGIN OF gu_upload OCCURS 0,
hbkid LIKE febmka-hbkid,
hktid LIKE febmka-hktid,
aznum LIKE febmka-aznum,
azdat LIKE febmka-azdat,
ssald LIKE amt,
esald LIKE amt,
budtm LIKE febmka-budtm,
mnam1 LIKE febmka-mnam1,
jname LIKE febmka-jname,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF gu_upload.
DATA:GU_DOWNLOAD LIKE GU_UPLOAD OCCURS 0 WITH HEADER LINE.
kishi*********************************
DATA: BEGIN OF itab OCCURS 0,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF itab.
kishi)(_()00-8-09
DATA: BEGIN OF messtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
DATA: BEGIN OF messtab1 OCCURS 0.
INCLUDE STRUCTURE messtab.
DATA: END OF messtab1.
DATA : BEGIN OF int_count OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA : END OF int_count.
DATA: c_tcode LIKE sy-tcode VALUE 'FF67',
c_upd LIKE ctu_params-updmode VALUE 'S',
c_def_size LIKE ctu_params-defsize VALUE 'X'.
*VALUES FOR STARTING COLUMNS AND ROWS IN THE EXCEL SHEET
DATA : c_begcol TYPE i VALUE '1',
c_begrow TYPE i VALUE '1',
*DATA IS ENDED AT THE 13TH COLUMN IN THE EXCELSHEET
c_endcol TYPE i VALUE '13',
*LAST ROW IN THE EXCEL SHEET
c_endrow TYPE i VALUE '65536',
c_path(3) TYPE c VALUE 'C:\'.
*Field Symbols
FIELD-SYMBOLS: <fs>.
&----
SELECTION SCREEN PARAMETERS
&----
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file LIKE rlgrap-filename DEFAULT
'C:\ ',
*This is the path for downloading file
P_FNAME2 LIKE RLGRAP-FILENAME ,
c_mode LIKE ctu_params-dismode DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK b1.
&----
AT SELECTION-SCREEN.
&----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*F4 HELP FOR FILE SELECTION
PERFORM validate_input_file.
&----
START-OF-SELECTION.
&----
CLEAR gu_upload.
REFRESH gu_upload.
&----
UPLOAD THE DATA FROM FLAT FILE TO INTERNAL TABLE
&----
PERFORM file_upload.
iopt-dismode = c_mode.
iopt-updmode = c_upd.
iopt-defsize = c_def_size.
&----
POPULATE THE DATA THROUGHSCREENS
&----
PERFORM bdc_upload.
&----
END-OF-SELECTION.
&----
*DISPLY THE ERROR RECORDS
PERFORM DISPLAY-DATA.
----
FORM file_upload *
----
FORM file_upload.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = c_begcol
i_begin_row = c_begrow
i_end_col = c_endcol
i_end_row = c_endrow
TABLES
intern = int_count
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
LOOP AT int_count.
ASSIGN COMPONENT int_count-col OF STRUCTURE gu_upload TO <fs>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
<fs> = int_count-value.
AT END OF row.
APPEND gu_upload.
CLEAR gu_upload.
ENDAT.
ENDLOOP.
*kishhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
LOOP AT gu_upload.
itab-vgman = gu_upload-vgman.
itab-valut = gu_upload-valut.
itab-kwbtr = gu_upload-kwbtr.
itab-chect_kf = gu_upload-chect_kf.
APPEND itab.
ENDLOOP.
*kishiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
ENDFORM. "file_upload
&----
*& Form BDC_UPLOAD
&----
FORM bdc_upload.
LOOP AT gu_upload.
CLEAR bdcdata.
REFRESH bdcdata.
&----
*& POPULATE THE DATA FOR FIRST SCREEN
&----
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-JNAME'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
&----
*& POPULATE THE DATA FOR SECOND SCREEN
&----
DATA : fnam(20) TYPE c,
idx TYPE c.
MOVE 1 TO idx.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF40K' '8000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'FEBMKK-CHECT_KF(03)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'FEBMKA-VGMAN(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam
itab-vgman.
CONCATENATE 'FEBEP-VALUT(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-valut.
CONCATENATE 'FEBMKA-KWBTR(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-kwbtr.
CONCATENATE 'FEBMKK-CHECT_KF(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-chect_kf.
idx = idx + 1.
ENDLOOP.
*perform bdc_dynpro using 'SAPMF40K' '8000'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
*perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'FEBMKA-VGMAN(01)'
'z001'.
*perform bdc_field using 'FEBEP-VALUT(01)'
'2007/04/26'.
*perform bdc_field using 'FEBMKA-KWBTR(01)'
' 5000-'.
*perform bdc_field using 'FEBMKK-CHECT_KF(01)'
'1122'.
perform bdc_dynpro using 'SAPMF40K' '8000'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
&----
*& POPULATE THE DATA FOR FOURTH SCREEN
&----
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_field using 'BDC_OKCODE'
'=BUCH'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
*perform bdc_dynpro using 'SAPMF40K' '0101'.
*perform bdc_field using 'BDC_OKCODE'
'/EENDE'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_OKCODE'
'/EABBR'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
&----
*& USING THE CALL TRANSACTION
&----
PERFORM call_transaction.
CLEAR BDCDATA. "<--- Add here
REFRESH BDCDATA. "<--- Add here
*
ENDLOOP.
ENDFORM. " BDC_UPLOAD
&----
*& Form VALIDATE_INPUT_FILE
&----
FORM validate_input_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = ' c:\ '
mask = ',.txt,.*.'
mode = 'O'
title = 'Upload '
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
IF sy-subrc <> 0 AND sy-subrc <> 3.
MESSAGE e100(zm) WITH text-007.
ENDIF.
ENDFORM. " VALIDATE_INPUT_FILE
----
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
----
Insert field *
----
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "bdc_field
&----
*& Form CALL_TRANSACTION
&----
FORM call_transaction.
DATA: l_index LIKE sy-tabix.
CALL TRANSACTION c_tcode USING bdcdata
MODE c_mode
MESSAGES INTO messtab.
*POPULATE THE ERROR RECORDS INTO INTERNAL TABLE
IF SY-SUBRC NE 0.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.
GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.
GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.
GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.
GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.
GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.
GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.
GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.
GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.
GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.
GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.
GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.
APPEND GU_DOWNLOAD.
*DISPLAY THE PROGRESS OF PROCESS
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = 'Downloading is in process'.
.
*DOWNLOADING THE ERROR RECORD
LV_OUT = P_FNAME2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = LV_OUT
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = GU_DOWNLOAD.
ENDIF.
IF NOT messtab[] IS INITIAL.
PERFORM format_message.
ENDIF.
ENDFORM. " CALL_TRANSACTION
&----
*& Form DISPLAY-DATA
&----
FORM display-data.
SKIP.
WRITE: 'SY-SUBRC' , sy-subrc.
ENDFORM. " DISPLAY-DATA
----
FORM FORMAT_MESSAGE *
----
FORM format_message.
DATA: l_msg(100),
l_index LIKE sy-tabix.
LOOP AT messtab.
READ TABLE gu_upload INDEX l_index.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab-msgid
lang = sy-langu
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
IMPORTING
msg = l_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:/ l_msg.
ENDLOOP.
WRITE:/ l_msg.
ENDFORM.
Message was edited by:
vijayd duvvada
‎2007 May 15 8:06 AM
Hi,
First , keep the mode "E" and check the debugger , you can exactly see where the error is and let me know, what error and where it is stoping.
By your coding, i suppose to think that, its proble in the amount (currency). When ever you are try to pass the value, and value is not there in upload file or data is mismatch, the call transaction will fail in mode 'A' and succesful in mode 'N'.
In that situation use this before the currecny field.
IF NOT FEBMKA-SSALD IS INTIAL.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
ENDIF.
tHANKS
Manju
‎2007 May 15 1:04 PM
‎2007 May 15 1:08 PM
Hi,
Have you tired with the logical i have provided/
Try it.
Thanks
Manju.
‎2007 May 15 2:07 PM
Hi Manju,
I have tried it ..
Iam uploading the data with error begining balance so it must show the error message
but in Mode A it is showing the error message but in Mode N it is not showing the error msg
and the list being posted..
‎2007 May 15 2:20 PM
Hi,
First try in mode'E'. Then you can understand.
Give me your contact.
Thanks
Manju.
‎2007 May 16 5:57 AM
Hi Manju,
These are my contact details
mail id dvijays@gmail.com
and my number +91 9999332417