Skip to Content
author's profile photo Former Member
Former Member

BDC- efficient method

hi all,

I wanted to know Out of Session and Call transaction methods which one is more efficient for data transfer?

and why?

Please help me here

Thank you,

Kelly.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • Best Answer
    Posted on Feb 25, 2005 at 05:31 PM

    Hi Kelly,

    I agree with Charles that BAPI is the best way to perform a data tranfer, if there is one available.

    But if you have only batch input or call transaction as the only options, then you need to look at how each of them are handle and decide. Both of them, however, use screen processing.

    A BDC, as the name implies is a batch process, which means that the posting of the transaction is asynchronous. Sessions are created first and then they are processed.

    <u>Advantages</u>:

    You can keep the sessions until all the transactions are processed. You will get the statistics and logs without having to code it yourself. You can run the sessions in error mode to identify where in a transaction, your data is failing and then correct it either in the source file or in the program or online while you are processing the session.

    Also, if you are doing large data transfers, it makes sense to do them in batches rather than online. You can even use program RSBDCSUB to process your sessions in the background.

    <u>Disadvatages</u>:

    You will not be able to react from within the program if an error occurs and you want to handle it immediately. Error handling and notification from within the program will not be possible.

    <u>Call Transaction</u> can also be processed in the background or online or error mode and also in synchronous or asynchronous mode. The <u>advantage</u> with this is that you can code in your program for error handling and error notification and also any statistics that you want to create from within the program. <u>Disadvantage</u> is that you have to code for storing the data that has errored out, so that it can be reprocessed.

    What I usually prefer to do is best of both the worlds. I will first do a call transaction and if the call transaction fails, then I will put that same BDC data into a session, so that we store the error transaction data and will be able to reprocess it later. But if the number of errors are huge and if the error is data related, it may make sense to correct the data on the source file and execute the program again, in which case your error handling would be to write out the error records to another file.

    Depending on your requirement, you can use any or all of the above approaches.

    Srinivas

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Feb 25, 2005 at 05:00 PM

    The most efficient technique would be a BAPI since it does not involve screen processing overhead. By avoiding screen details you are also much more likely to be compatible with the next release you install.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.