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

BDCs

Former Member
0 Likes
1,416

Hi,

Suppose if i have 100 records which needs to be processed thru any method of our BDCs. While processing i have found the error in 20th row. Kindly advice whether remaining records will be processed or not? if so, how it is processed? and how can i rectify the error which was happened in the 20th record in both methods call transactions and session method. Please advice..

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,379

So long as you are using the session method. The batch input session will process all correct entries and put the incorrect ones into an error session. The errors can then be corrected by running through them in the foreground.

Rob

16 REPLIES 16
Read only

Former Member
0 Likes
1,380

So long as you are using the session method. The batch input session will process all correct entries and put the incorrect ones into an error session. The errors can then be corrected by running through them in the foreground.

Rob

Read only

0 Likes
1,379

Hi,

Thanks for the prompt response.

In Case of Call transaction method wht will happen?

As you said, if i use session method, then how can i rectify the error records in foreground? is there any specific transaction code for doing this process?

Read only

0 Likes
1,379

The problem with call transaction is that you cannot process errors. The session method is generally preferred.

To process the errors, just go to transaction SM35. The error session will be there ready to process. Select your session and press the process button. Set the processing mode to 'foreground' and press process.

Rob

Read only

0 Likes
1,379

Hi Rob,

First i would like to say very thankful to you.

As you said, by mistake if i am processing those records by using call transactions as we won't expect thst the error may raise in the specific record. am i correct?

We have processed half of the records.then error was occured? then what about other records? is it possible to process them? otherwise i need to start it again by using session method? Please clarify...

Read only

0 Likes
1,379

If you are using call transaction, you can't re-process, but you can stop at the first error. Then fix the problem and resubmit from the beginning. the problem then will be to nake sure that you aren't processing data that you already processed during the first run.

Are you using call transaction or session?

Rob

Read only

0 Likes
1,379

i am using the call transaction only.

Read only

0 Likes
1,379

What are your requirements that lead you to use call transaction?

If there is no pressing need for this method, it's not too difficult to convert to batch input.

Rob

Read only

0 Likes
1,379

As you said in your reply, i fixed the error and submitted again. is it processing from the first record or continue the process from where the error occured?

Read only

0 Likes
1,379

Unless you put in special logic, it starts again from the beginning.

Rob

Read only

0 Likes
1,379

Rob,

Then How can i avoid this situation? What type of logic i need to write? Can you suggest me.

Read only

0 Likes
1,379

I'm trying to suggest that you convert to the BDC session method.

It's not really possible to tell you the logic you would need to overcome the problems of reprocessing without knowing your requirements. And I think that would be a separate problem.

Rob

Read only

0 Likes
1,379

Thanks Much Rob.

Then what is the purpose of the BDCMSGCOLL IN CALL Trns?

Read only

0 Likes
1,379

It contains all of the messages that were returned by the call to the transaction. You would have to analyze them to determine if the transaction succeeded or failed.

Rob

Read only

0 Likes
1,379

Thank you very much for your clarifications.

Ramesh.

Read only

Former Member
0 Likes
1,379

Hi ramesh,

session method will process all the records and you can find the records which are failed during updation and you can process the error ones at latter as every one said.

in call transaction you can track the error records through sy-subrc and you can move the messages to bdcmsg call, but its very difficult to process only error records.

As you are using call transaction what i suggest is just use call transaction for all the records and whenever it fails just use session method(by bdc_insert fm and pass the same bdcdata) so that you can process all the failed records in sm35.

Read only

0 Likes
1,379

Yes - this is the best way of handling errors when using call transaction, but since you end up making a batch input session anyway, you have to have a good reason to use call transaction to start with.

In my experience, when processing multiple records the batch session handles over 95% of the cases.

Rob