Handling error records in LSMW
Hi All,
How to handle error records in LSMW.
Out 20 records had, I had 4 record and 10 record captured in error log.
How to process them?
Thanks
Sonali
Hi Sonali,
You have to re-run LSMW for those records which were recorded in error log. Make sure that the new flat file is error free.
There is no other alternative to this.
Hope this solves your problem.
Regards,
Brajvir
Similar Messages
-
In call transaction how can we handle error records.
hai..tellme how can we handle error records in call transaction..we can get error records into one flatfile ok...then we have to execute the same bdc program with dat flat file (error records) once again...is it wright ..
Hi,
check this program u will get idea
seee this prog. its will help u .
copy and run this prog.
TYPES : BEGIN OF t_disp ,
vendorno(9),
compcc(13),
purchorg(14),
accgroup(15),
title(7),
name(5),
country(8),
ordcurr(14),
END OF t_disp.
TYPES : BEGIN OF t_err,
msgtyp LIKE bdcmsgcoll-msgtyp,
l_mstring(250),
END OF t_err.
DATA: i_disp TYPE STANDARD TABLE OF t_disp,
wa_disp TYPE t_disp,
i_err TYPE STANDARD TABLE OF t_err,
wa_err TYPE t_err.
data definition
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.
PARAMETER : p_file1 LIKE ibipparms-path,
p_cmode LIKE ctu_params-dismode DEFAULT 'N'.
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
*selction screen.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file1.
AT SELECTION-SCREEN ON p_file1.
IF p_file1 IS INITIAL.
MESSAGE 'FILE IS NOT FOUND' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
PERFORM f_disp_file1.
END-OF-SELECTION.
PERFORM f_disp_errs.
*& Form F_DISP_FILE1
text
--> p1 text
<-- p2 text
FORM f_disp_file1 .
DATA: l_filename1 TYPE string.
MOVE p_file1 TO l_filename1.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_filename1
filetype = 'ASC'
has_field_separator = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = i_disp
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.
*? prepare BDC data
DELETE i_disp INDEX 1.
LOOP AT i_disp INTO wa_disp .
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
wa_disp-vendorno.
'ztest_1'.
PERFORM bdc_field USING 'RF02K-BUKRS'
wa_disp-compcc.
'0001'.
PERFORM bdc_field USING 'RF02K-EKORG'
wa_disp-purchorg.
'0001'.
PERFORM bdc_field USING 'RF02K-KTOKK'
wa_disp-accgroup.
'0001'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'LFA1-ANRED'
wa_disp-title.
'Mr.'.
PERFORM bdc_field USING 'LFA1-NAME1'
wa_disp-name.
'test name'.
PERFORM bdc_field USING 'LFA1-SORTL'
'TEST NAME'.
PERFORM bdc_field USING 'LFA1-LAND1'
wa_disp-country.
'in'.
PERFORM bdc_field USING 'LFA1-SPRAS'
'en'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-AKONT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZTERM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-MAHNA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFM1-WAERS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFM1-WAERS'
wa_disp-ordcurr.
'inr'.
PERFORM bdc_transaction USING 'XK01'.
WRITE:/ WA_DISP-VendorNo,
WA_DISP-COMPCC,
WA_DISP-PURCHORG,
WA_DISP-ACCGROUP,
WA_DISP-title,
WA_DISP-name,
WA_DISP-country,
WA_DISP-ORDCURR.
CLEAR: wa_disp.
REFRESH bdcdata.
ENDLOOP.
ENDFORM. " F_DISP_FILE1
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.
IF FVAL NODATA.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form bdc_transaction
text
-->P_0322 text
FORM bdc_transaction USING tcode.
DATA: l_mstring(480),
l_subrc LIKE sy-subrc.
REFRESH messtab.
CALL TRANSACTION tcode USING bdcdata
MODE p_cmode
UPDATE 'L'
MESSAGES INTO messtab.
l_subrc = sy-subrc.
IF SMALLLOG 'X'.
WRITE: / 'CALL_TRANSACTION',
TCODE,
'returncode:'(I05),
L_SUBRC,
'RECORD:',
SY-INDEX.
LOOP AT messtab.
SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
AND arbgb = messtab-msgid
AND msgnr = messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
WRITE: / messtab-msgtyp, l_mstring(250).
*? Send this errors to err internal table
wa_err-msgtyp = messtab-msgtyp.
wa_err-l_mstring = l_mstring.
APPEND wa_err TO i_err.
ELSE.
WRITE: / messtab.
ENDIF.
CLEAR: messtab, wa_err.
ENDLOOP.
SKIP.
ENDIF.
ENDFORM. " bdc_transaction
*& Form f_disp_errs
text
--> p1 text
<-- p2 text
FORM f_disp_errs .
SORT i_err BY msgtyp.
LOOP AT i_err INTO wa_err.
AT FIRST.
WRITE : / text-002.
ULINE.
ENDAT.
AT NEW msgtyp.
IF wa_err-msgtyp = 'S'.
WRITE : / text-003.
ULINE.
ELSEIF wa_err-msgtyp = 'E'.
WRITE : / text-001.
ULINE.
ENDIF.
ENDAT.
WRITE : / wa_err-msgtyp, wa_err-l_mstring.
CLEAR wa_err.
ENDLOOP.
ENDFORM. " f_disp_errs
Regards -
Hi,
Where do we find error records in lsmw?Naveen...
Its is not specific...
If you are doing any kind of validations in the programs.... i.e. if u added some logic in the field mapping and conversion step and if any of the records fails due to those validations u can catch those in convert data step...
If the error related to process then once u process the batch session u can find the errors in the session over view log..... -
HOW TO DOWNLOAD ERROR RECORDS IN LSMW
hi abap gurus ,
i have 2 queries .
1) first of all how to identify error records while running in background while using predefined progrmmes .
2) if there are any error records how to download those error records , can any one give the logic to download the error records while handling LSMW with predefined programmes or
bapis .
regards ,
dinesh .1) first of all how to identify error records while running in background while using predefined progrmmes .
If there is a session for that u can moniter the session in SM35 for the error records.....
2) if there are any error records how to download those error records , can any one give the logic to download the error records while handling LSMW with predefined programmes or
bapis .
Hi,
In the field mappings and conversion rules,
in the global section,define an internal table.
data : begin of it_errors occurs 0,
desc type string,
end of it_errors.
and where ever you have wrong or empty values for the fields,populate error there to the internal table.
for example, if Material no is blank,i have to give err msg
IF NOT MATMAS_MRPVIEW-MATNR IS INITIAL.
BMM00-MATNR = MATMAS_MRPVIEW-MATNR.
else.
IT_ERROR-DESC = 'Material no is empty'.
append it_error.
SKIP_RECORD. "to skip further processing of this error record.
ENDIF.
like this you populate all the error records to that IT_ERRORS internal table.
and finally download it using GUI_DOWNLOAD in the event
'__END_OF_PROCESSING__'
there is another way also, you can create a Session in the LSMW, and record the error records in the session then process the error records in the session
Hope you got it
~~Guduri -
How to handle Error Records in BDC
Dear All,
I have 100 records in flat file but 10 records have error record.
Use on the BDC method, error records should be move to session and remaining process through call Transaction .
Any one help to me.
With Regards,
BaskaranHi,
Do it like this:
Loop at itab into wa.
gv_flag = 'N'.
If gv_flag = 'N'.
Perform...
wa_opts-dismode = 'N'. "for background
wa_opts-updmode ='S'.
wa_opts-defsize = 'X'.
wa_opts-nobinpt = 'X'.
Where wa_opts TYPE ctu_params.
*Call transaction
CALL TRANSACTION 'PA30' USING gi_bdcdata
OPTIONS FROM wa_opts
MESSAGES INTO gi_messtab.
IF sy-subrc EQ 0.
COMMIT WORK.
ELSE.
IF NOT gi_messtab[] IS INITIAL.
LOOP AT gi_messtab INTO wa_messtab.
IF wa_messtab-msgtyp EQ 'E' OR
wa_messtab-msgtyp EQ 'A' OR
wa_messtab-msgtyp EQ 'X' OR
wa_messtab-msgid EQ 'PBAS_SERVICE'.
CLEAR gv_msg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = wa_messtab-msgid
lang = sy-langu
no = wa_messtab-msgnr
v1 = wa_messtab-msgv1
v2 = wa_messtab-msgv2
v3 = wa_messtab-msgv3
v4 = wa_messtab-msgv4
IMPORTING
msg = gv_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
*In case of no error message returned by BDC
IF sy-subrc = 0.
Sending errors stating which infotypes are not updated.
gv_error_flag = 'Y'.
do th required proccesing here.
ELSE.
gv_error_flag = 'Y'.
statements.
ENDIF.
ENDIF.
CLEAR wa_messtab.
ENDLOOP.
endloop.
Regards,
Rajesh Kumar
Edited by: Rajesh Kumar on Sep 17, 2009 7:58 AM -
Updating error records in seession method
error records in session method
Posted: Jan 15, 2008 9:52 AM Edit E-mail this message Reply
hai anybody tell me how can we handle error records in session method ..we have a logfile ok...how can we update those error records in online..Hi,
If there are not too many errors you can process the session in Error mode & correct the errors online. Else you have to check the cause of error taking inputs from the log file. & repeat the steps.
Best Regards, Murugesh -
Error records handling using lsmw
Hi All,
Could you please tell me how can report error records in updating database useing lsmw and related infromation .
email: [email protected]
Thanks,
krishna.in the field mappings and conversion rules,
in the global section,define an internal table.
data : begin of it_errors occurs 0,
desc type string,
end of it_errors.
and where ever you have wrong or empty values for the fields,populate error there to the internal table.
for example, if Material no is blank,i have to give err msg
IF NOT MATMAS_MRPVIEW-MATNR IS INITIAL.
BMM00-MATNR = MATMAS_MRPVIEW-MATNR.
else.
IT_ERROR-DESC = 'Material no is empty'.
append it_error.
SKIP_RECORD. "to skip further processing of this error record.
ENDIF.
like this you populate all the error records to that IT_ERRORS internal table.
and finally download it using GUI_DOWNLOAD in the <b>event
'__END_OF_PROCESSING__'</b>
Hope you got it.
Regards,
Srikanth -
Errors record handling in LSMW
Hai,
Could u please tell me, How can I process error record during uploading by using LSMW.
Thanking You
muraliHi,
In the field mappings and conversion rules,
in the global section,define an internal table.
data : begin of it_errors occurs 0,
desc type string,
end of it_errors.
and where ever you have wrong or empty values for the fields,populate error there to the internal table.
for example, if Material no is blank,i have to give err msg
IF NOT MATMAS_MRPVIEW-MATNR IS INITIAL.
BMM00-MATNR = MATMAS_MRPVIEW-MATNR.
else.
IT_ERROR-DESC = 'Material no is empty'.
append it_error.
SKIP_RECORD. "to skip further processing of this error record.
ENDIF.
like this you populate all the error records to that IT_ERRORS internal table.
and finally download it using GUI_DOWNLOAD in the event
'__END_OF_PROCESSING__'
there is another way also, you can create a Session in the LSMW, and record the error records in the session then process the error records in the session
Hope you got it
Regards
Sudheer -
LSMW - How to handle delimited records?
Greetings everyone,
I want to change infotype records with LSMW. I've done this with the use of a batch input recording.
This works, but only when the record is not delimited. Otherwise, the first record is modified but an error is given for subsequent records saying no batch input could be found.
I don't know how to handle this problem. Can anyone please help me?The txt file is tab delimited but that is not the problem.
I'm talking about another kind of delimit
The problem lies with the database records that I want to change. This works, but the moment the infotype record is delimited (or split), the recording isn't valid anymore (because it doesn't expect another screen).
So then I get an error saying no batch input can be found, and it skips the record(s) and continues with the next pernr. -
How to get the index of the error record when uploaded using standard LSMW
Hi Experts,
When uploading data using lsmw standard batch input method which creates an error session if any errors,how can we able to find the index of the error record
eg: If 3rd record in input file is incorrect then error session is getting created with the error and index as 1.But I want to know that 3rd record in my input file is incorrect.
Please help me out.Srinivas,
In global data, i've written like this.
TYPES: BEGIN OF TYPE_ERROR,
INDEX TYPE I,
END OF TYPE_ERROR.
DATA: GT_ERROR TYPE TABLE OF TYPE_ERROR,
GS_ERROR TYPE TYPE_ERROR,
GV_TOTAL_COUNT TYPE I, GV_INDEX TYPE I,
GV_STRING TYPE STRING,
GV_FILE TYPE STRING VALUE '/usr/sap/interfaces/LSMW/Asseterror
In Begin of transaction,
GV_TOTAL_COUNT = GV_TOTAL_COUNT + 1.
In End of processing,
OPEN DATASET GV_FILE FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC = 0.
CLEAR GS_ERROR.
LOOP AT GT_ERROR INTO GS_ERROR.
CONCATENATE 'INDEX OF THE ERROR RECORD IS:' GS_ERROR INTO GV_STRING.
TRANSFER GV_STRING TO GV_FILE.
CLEAR: GV_STRING, GS_ERROR.
ENDLOOP.
ENDIF.
How and where will I be assigning error count and append it to the internal table.
Please help me out. -
How to handle table control in lsmw recording method
hi expert please tell me the procedure for how to handle table control in lsmw recording method
Locked for same reason as how to upload data for me01 using LSMW BDC METHOD
Edited by: Matt on May 9, 2011 8:52 AMSri,
just search in SDN search box by giving table control in lsmw you will get hell lot of threads for same.
Amit. -
Hi,
One basic doubt..when we use LSMW for conversion of huge amount of any data.For e.g if we have 1000 Customer Master records in the input file. After running the LSMW, if many posted successfully and if few fail due to data error, how will trace the error records? How can we get those error records alone, to send it back to the Legacy system, for them to correct and resend those records again?
And how else can we avoid duplication?
Thanks
Swetha.You can use the Report RSBDC_PROTOCOL to get the log of the session.
One thing you can do is, run the same session again with the mode "Error only". System will stop at the errors. Correct those errors manually.
Regards,
Naimesh Patel -
Handle With Error Records In Bapi
Hello Gurus,
I am Working with Bapi(bapi_goodsmvt_create)
i need how to handle with errors.
i should collect all the Error records into one custom table.
which record produced Error.
Regards,
NarenThe Return parameter may be based on the following reference structures:
BAPIRET2
You must use this reference structure when developing new BAPIS.
BAPIRET1, BAPIRETURN
These reference structures are still partly used in old BAPIs.
http://help.sap.com/saphelp_nw04/helpdata/en/a5/3ec9f74ac011d1894e0000e829fbbd/frameset.htm -
Hi, Freinds
I m getting error while doing LSMW.
In the step <b>Convert Data</b> it gives the following error <i>'Syntax error in program /icadmc/sap_lsmw_conv_0000027
line 27
for type 'C' a maximum length specification of 65535 is allowed'</i>
Please Help
Its Urgent
RegardsHello,
Try to convert the same file in the development server. May be some records get wired in your file.
Regards,
Naimesh -
Hi,
I want to display the error records that did not get updated thru the transaction, using the LSMW tool... Please tell me how can I display where & in which record the error has occured...
Thank You,
Seema.Hi Seema,
As Rick pointed out, it all depends on which method you chose and in most cases, you may not have a direct link between the errors and records in your file that caused it.
In LSMW, you will pick a method(BAPI, IDOC, call transaction, Batch Input, Direct Input etc). All LSMW does is to convert your input file data into a format that is used by the method you used. As you may be aware of, your input file will be stored first as 'READ' file and then as a 'CONVERSION' file. It is this 'CONVERTED' file that is used by the method you use.
After the file is being processed by the method, if error occurs, it goes into whatever error logging mechanism that is available with the method you chose. For instance, if Batch Input program is chosen, then your error log may in the SM35 session log, or if a IDOC is chosen, then it may be in the IDOC status records.
If you give us what you are doing in LSMW, a more direct solution may be found.
Srinivas
Maybe you are looking for
-
SharePoint Online / Office 365 -- Client Object Model
Hello, i try to get some Data from the SharePoint Online "Office365" Beta with the Client Object Model. I use an Sample from the MSDN but i always get the Error "Server was unable to process request. ---> The server was unable to process the request
-
Albums & Events sync from Aperture - why?
I transfer photos via Aperture, where they are contained in Projects and Albums. Most of the time, under the Picture app on the iPad, they are on a page listed as Albums. Sometimes, though, they are listed under a page called Events. Does anyone know
-
Website Owner having new issues with Clients and Windows 8
I own a website that has a home-programmed chat. We've been in business about 12 years without any issues with compatibility. The chat is programmed in C and runs in a standard browser. Lately I've had a few users (3 or 4) that have upgraded their ma
-
JITO1 show "cannot be executed"
Hi experts, We need to use JIT calls and I run JITO1. The error message return "transaction code JITO1 cannot be executed". I have checked SFW5 and enable enterprise_functions & enterprise_bussiness_functions. I found it's very strange. Sometimes I
-
Yosemite upgrade - Bluetooth now won't recognize LG Tone
Yosemite upgrade - Bluetooth now won't recognize LG Tone, won't appear on discover list, what now...?