Application Development 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: 

BAPI_TRANSCATION_COMMIT VS COMMIT WORK

former_member294729
Participant
0 Kudos

Does anybody know what's the difference between the two?

Regards,

10 REPLIES 10

suresh_datti
Active Contributor
0 Kudos

Hi Lin,

The BAPI executes a COMMIT WORK command. It is required for transactions developed externally to the R/3 System that change data in the R/3 System via BAPI calls.

When you call BAPIs in your program that change data in the R/3 System, afterwards you must call this method to write the changes to the database.

Essentially, they do the same.. the BAPI is like a wapaper to facilitate COMMIT WORK via external calls..

Regards,

Suresh Datti

0 Kudos

The BAPI is intended to be executed by calls from external systems. In the end, it does a simple COMMIT WORK.

The COMMIT WORK is intended for internal calls.

The BAPI is a "wrapper" function module for COMMIT WORK.

Reward points accordingly.

0 Kudos

Hi Suresh

>When you call BAPIs in your program that change data in >the R/3 System, afterwards you must call this method to >write the changes to the database

But there are some BAPI FMs themselves executed the commit

work command.It to say BAPIs had same purpose as an LUW or transaction....

rREGARDS

lI

former_member188685
Active Contributor
0 Kudos

Hi,

BAPI_TRANSACTION_COMMIT and COMMIT work both are same.

if you see in side the FM BAPI_TRANSACTION_COMMIT, you can see the commit work statement.

there is no difference.

Both can be used. no diff/.

regards

vijay

0 Kudos

Vijay,

I do not believe that your answer is completely true.

The BAPI concept was built by SAP for the specific intention of external systems calling into and using SAP business objects. The BAPI_TRANSACTION_COMMIT is a Remoted Enabled Function Module (RFC).

It is available for use inside of SAP programs AND programs OUTSIDE of SAP (for example, a VB program that creates sales orders in R/3). The VB program MUST call the BAPI to commit the order to the R/3. The VB program can not "naturally" execute a COMMIT WORK stmnt in SAP.

I believe that there is a difference, and the difference is quite large.

When writing ABAP only, there is no difference... agreed. When writing complex solutions with external tools, there is a big difference.

0 Kudos

Hi John,

i agree with you,

in SAP environment both are same.

but when you are working outside SAP environment commit work cannot be called explicitly, so for that purpose we have <b>BAPI_TRANSACTION_COMMIT</b>, for explicit commit work. Apart from this i don't see any difference.

regards

vijay

Former Member
0 Kudos

Hi Lin,

1. Practically No difference.

2. The only ADDITIONAL facility,

(which is much required,

to diagnose BAPI execution)

is the RETURN parameter,

which the BAPI populates and returns.

3. So,

we can still use simple COMMIT WORK,

but this BAPi is recommended,

so that we get the RETURN status

and other message to DIAGNOSE.

regards,

amit m.

timo_wendt
Explorer
0 Kudos

the function BAPI_TRANSACTION_COMMIT calls the function

'BUFFER_REFRESH_ALL' which clears the internal memory tables.

The BAPIs register the necessary delete function modules in the table GT_DELETEFUNCTIONS.

If you don´t use the function BAPI_TRANSACTION_COMMIT you can get problem with the internal memory tables of the function groups.

Former Member
0 Kudos

Lin,

Has your question been answered thoroughly?

If so, please award points accoridngly.

If not, please clarify the outstanding area(s).

former_member294729
Participant
0 Kudos

Hi everyone,

Reference by sap online help,

1)there are two kinds of bapis:synchronous and asynchronous;

2)there are two kinds of bapi transaction model,one is with commit,another is without commit,

who can tell me what concrete difference ?

ths

Best regrads