<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How can I selectively rollback while committing in mass using ABAP Objects? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325072#M1728712</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Alex, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess your post is a prime example of "Experience speaks for itself " &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1245/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;. I am humbled, it is well written and clearly explained, actually serves more like a&amp;nbsp; development guideline. I guess the OP has receieved more info than what he orignally intended to !..( well atleast I have ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Mar 2013 01:01:38 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2013-03-06T01:01:38Z</dc:date>
    <item>
      <title>How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325061#M1728701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As an example, my task is to create thousands of customers and contracts in our system. In order to completely create a customer, I must call a number of BAPIs. If a customer is incomplete because one of its BAPIs results in an error, then I must rollback the BAPI changes for only that customer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Currently, I solve this issue by committing and waiting (waiting is required so that I can then proceed to create the contracts) for each customer when it completes successfully, or rolling-back when it is unsuccessful. However, committing and waiting for each customer is time-consuming.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Therefore, I would like to know how I can only commit and wait every X number of customers, but still rollback an individual customer when it is not created completely. I would like to accomplish this using ABAP Objects, that is, using classes/methods rather than functions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Mar 2013 17:52:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325061#M1728701</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-02T17:52:15Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325062#M1728702</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Howdy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead of selectively rolling back, you might want to try an alternative like parallel processing.&amp;nbsp; If the data doesn't have to necessarily be processed sequentially then you can use tRFC or aRFC so that you can create multiple streams of work.&amp;nbsp; This will allow you to commit/rollback selectively but also increase your performance by processing multiple customers at once.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nwpi71/helpdata/en/22/042578488911d189490000e829fbbd/content.htm"&gt;http://help.sap.com/saphelp_nwpi71/helpdata/en/22/042578488911d189490000e829fbbd/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 02:14:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325062#M1728702</guid>
      <dc:creator>alex_cook</dc:creator>
      <dc:date>2013-03-04T02:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325063#M1728703</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another approach is to commit every 10 or 15 records (the number of records should be a parameter so you can easily adjust it later). This way, you are not committing every single record. At the same time, if you had to roll-back, you only lose the last 10 or 15 records and not everything.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 03:26:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325063#M1728703</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-04T03:26:07Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325064#M1728704</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Alex. I came across a similar approach during my initial research, but it appears to be limited to using functions. Since I'm using methods in classes, I'd like to avoid having to wrap them in function modules for this purpose.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 13:51:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325064#M1728704</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-04T13:51:19Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325065#M1728705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, Abdullah. I considered an approach like this, but if I were to get one error per 15 records (for example) then I'd end up having to process most records (the successful ones that were rolled-back) twice, which might end up negatively impacting performance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 15:23:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325065#M1728705</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-04T15:23:42Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325066#M1728706</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Brandon, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could use the ABAP transaction service for your requirement. Using the transaction service, you could create a sub transaction for every ,say 15 transactions,of which you could selectively decided to commit only 13 and roll back 2 etc. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your scenario, a transaction consists of 2 BAPI calls, a failure in one of them should stop that transaction, but however, you want to bundle the successful ones and perform a single commit.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a code snippet on how to achieve it. I tried this with persistent objects and it worked fine, so should not be any issue for BAPI's too ( Hopefuly! ). This is just a Pseudo code, you should do some more exception handling&amp;nbsp; as meeded.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;TYPE-POOLS&amp;nbsp; : oscon.&lt;/P&gt;&lt;P&gt;&amp;nbsp; DATA :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_tr_mgr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE REF TO if_os_transaction_manager,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE REF TO if_os_transaction,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_error&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE char1,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L_TABIX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE SY-TABIX,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_limit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type i value 15,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_create&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type char1,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans_sub&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE REF TO if_os_transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*INITIALIZATION.&lt;BR /&gt;&amp;nbsp; cl_os_system=&amp;gt;init_and_set_modes( i_external_commit = oscon_false " No Explicit Commit work, End method triggers it.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i_update_mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = oscon_dmode_update_task_sync )." COMMIT WORK AND WAIT&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;BR /&gt;&amp;nbsp; lr_tr_mgr = cl_os_system=&amp;gt;get_transaction_manager( ).&lt;/P&gt;&lt;P&gt;&amp;nbsp; TRY.&lt;BR /&gt;*Parent transaction.&lt;/P&gt;&lt;P&gt;*Check if the limit of trans need to be changed. We set the commit for every15 trans, but if there is less than 15,then we should &lt;/P&gt;&lt;P&gt;* set it to the number of lines of the itab.&lt;/P&gt;&lt;P&gt;IF&amp;nbsp;&amp;nbsp;&amp;nbsp; lines( lt_trans_tab ) LT l_limit. &lt;/P&gt;&lt;P&gt; l_limit = lines( lt_trans_tab ).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*LOOP over, all your data "L_TABIX = SY-TABIX, "At the 15th entry we commit the changes.&lt;/P&gt;&lt;P&gt;L_TABIX = SY-TABIX&lt;/P&gt;&lt;P&gt;IF l_create is initial . " ensure that the parent transaction is initialized when the limit is reached.(every 15 trans etc ).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans = lr_tr_mgr-&amp;gt;create_transaction( ).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans-&amp;gt;start( ).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Sub transaction&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; l_create = 'X'.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans_sub = lr_tr_mgr-&amp;gt;create_transaction( ).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans_sub-&amp;gt;start( ).&lt;/P&gt;&lt;P&gt;*Call your BAPI's.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "CALL funcion 'xxx'.&lt;BR /&gt;*check for return values from the function call for errors.l_error = 'X'.&lt;/P&gt;&lt;P&gt; "call function 'xxx'&lt;/P&gt;&lt;P&gt;*check for return values from the function call for errors.l_error = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*End of sub transaction.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF l_error IS NOT INITIAL."L_ERROR is set when there is a failure message from the bapi calls.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans_sub-&amp;gt;undo( ).&lt;/P&gt;&lt;P&gt;*End of sub transaction.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans_sub-&amp;gt;end( )." This does not commit.Commit happens only when the parent gets committed.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;/P&gt;&lt;P&gt;IF ( l_tabix mod l_limit ) eq 0.&lt;BR /&gt;*End of Parent transaction.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr_trans-&amp;gt;end( )." This would trigger commit work and wait.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clear L_create.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CATCH cx_os_transaction .&lt;/P&gt;&lt;P&gt;*Error handling...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE: 'Error Occured in transaction processing'.&lt;BR /&gt;&amp;nbsp; ENDTRY.&lt;/P&gt;&lt;P&gt;*End loop.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;For more Info you could refer to &lt;/P&gt;&lt;P&gt;&lt;A class="active_link" href="http://help.sap.com/saphelp_nw73ehp1/helpdata/en/49/e7975a988d088be10000000a421937/content.htm?frameset=/en/49/e7975a988d088be10000000a421937/frameset.htm"&gt;http://help.sap.com/saphelp_nw73ehp1/helpdata/en/49/e7975a988d088be10000000a421937/content.htm?frameset=/en/49/e7975a988d088be10000000a421937/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this Helps!. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Venkat Gowrishankar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Venkat Gowrishankar - Updated with exception scenario.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 15:26:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325066#M1728706</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-04T15:26:46Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325067#M1728707</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, Venkat. This approach sounds promising. I'll give it a try and reward accordingly. Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 18:16:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325067#M1728707</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-04T18:16:27Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325068#M1728708</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Brandon,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would go with the same idea that Alex proposed. Parallel processing in this context is a great way to speed up your logic in a scaleable way and solve your issue with the COMMITs.&lt;/P&gt;&lt;P&gt;Remember that you do not have to wrap each and every method call in a function module. It is just the part where you have all your data prepared and want to put it into the BAPIs. I think about something like a big LOOP statement where you first collect data and then call the RFC to commit the data. This can of cource be done using your ABAP Objects methods! The function module is just a wrapper.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers Carsten&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 04 Mar 2013 19:36:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325068#M1728708</guid>
      <dc:creator>CarstenKasper</dc:creator>
      <dc:date>2013-03-04T19:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325069#M1728709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Brandon,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Appreciate that you want to stick to the OO paradigm but for the gain in performance you'd get with parallel processing I think it is still worth considering - particularly if the volumes of customers are going to be in the thousands.&amp;nbsp; FMs aren't completely obselete as they're needed for functions like tRFC.&amp;nbsp; Don't be afraid to use every trick in your arsenal!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Mar 2013 00:19:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325069#M1728709</guid>
      <dc:creator>alex_cook</dc:creator>
      <dc:date>2013-03-05T00:19:25Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325070#M1728710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;P&gt;The performance gain is not necessarily true. The real issue is with the synchronous update aka COMMIT WORK AND WAIT. BG RFCs and aRFC are good in performance no doubts, as they support parallel processing. But if I execute a BAPI inside an aRFC how would I get the error messages returned by the BAPI; only by calling a registered method at the end of the ARFC function call, which in my opinion is more of a communication overhead as there is a switch between a batch process and dialog process. If the  whole process was asynchronous albeit COMMIT WORK, there could be some performance gains.If the messages from the BAPI were to be conveyed using other techniques such as an email, then I would totally agree with your solution.Also as much as you can create an ARFC call for thousands of FM executions not all of them are executed in parallel  at one instance, it depends on the number and the  availability of the batch and update work process and hence they might be stuck in a queue longer than expected.&lt;/P&gt;&lt;P&gt;Do correct me If I am missing anything here.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Venkat&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Mar 2013 05:16:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325070#M1728710</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-05T05:16:05Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325071#M1728711</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Howdy,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I agree with some of your points which is why I'd be more inclined to choose tRFC over aRFC - however there are still design questions about capturing the error messages, things like:&lt;/P&gt;&lt;P&gt;- How many error messages are you expecting, is it 1% or significantly less?&amp;nbsp; &lt;/P&gt;&lt;P&gt;- Is the number of error messages small enough that generating a single email notification per batch run is acceptable?&lt;/P&gt;&lt;P&gt;- Who would be addressing the error messages, technical people or business users?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These are questions which need to be answered regardless of the solution. &lt;/P&gt;&lt;P&gt;If you are expecting many error messages and cannot fix the errors upstream then I would consider using the application log for recording errors.&amp;nbsp; If you still want an email notification once all tRFC queues have been resolved then you can have a "master" job create the tRFC queues and then wait until all the queues have been processed, then pick up the application log and email it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Agree it is not possible for all messages to be processed at once (the number of queues to be created should be configurable or use a variant).&amp;nbsp; But also if you have multiple application servers then you can distribute the jobs across those servers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And you're correct that the design decision should include a review of the process distribution among application servers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this is not too OT - interested to see what the OP's final solution is.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;&lt;P&gt;Alex&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Mar 2013 23:57:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325071#M1728711</guid>
      <dc:creator>alex_cook</dc:creator>
      <dc:date>2013-03-05T23:57:21Z</dc:date>
    </item>
    <item>
      <title>Re: How can I selectively rollback while committing in mass using ABAP Objects?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325072#M1728712</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Alex, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess your post is a prime example of "Experience speaks for itself " &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1245/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;. I am humbled, it is well written and clearly explained, actually serves more like a&amp;nbsp; development guideline. I guess the OP has receieved more info than what he orignally intended to !..( well atleast I have ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, &lt;/P&gt;&lt;P&gt;Venkat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Mar 2013 01:01:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-can-i-selectively-rollback-while-committing-in-mass-using-abap-objects/m-p/9325072#M1728712</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-03-06T01:01:38Z</dc:date>
    </item>
  </channel>
</rss>

