Anda di halaman 1dari 5

6/21/2014 Update Techniques-Asynchronous and Synchronous Update | SAP ABAP

http://sapient.wordpress.com/2007/09/19/update-techniques-asynchronous-and-synchronous-update/ 1/5
SAP ABAP
Entries (RSS) Comments (RSS)
Update Techniques-Asynchronous and
Synchronous Update
Posted by: amitkhari on: September 19, 2007
In: BDC 5 Comments
The main update technique for bundling database changes in a single database LUW is to use CALL
FUNCTION IN UPDATE TASK. This section describes various ways of updating the database.
A program can send an update request using COMMIT WORK
To the update work process, where it is processed asynchronously. The program does not wait for the
work process to finish the update ( Asynchronous Update).
For asynchronous processing in two steps ( Updating Asynchronously in Steps.)
To the update work process, where it is processed synchronously. The program waits for the work
process to finish the update ( Synchronous Update).
To its own work process locally. In this case, of course, the program has to wait until the update is
finished ( Local Update.)
Asynchronous Update
A typical R/3 installation contains dialog work processes and at least one update work process. The
update work processes are responsible for updating the database. When an ABAP program reaches a
COMMIT WORK statement, any function modules from CALL FUNCTION IN UPDATE TASK
statements are released for processing in an update work process. The dialog process does not wait for
the update to finish. This kind of update is called asynchronous update.
6/21/2014 Update Techniques-Asynchronous and Synchronous Update | SAP ABAP
http://sapient.wordpress.com/2007/09/19/update-techniques-asynchronous-and-synchronous-update/ 2/5
The following diagram shows a typical asynchronous update :
For example, suppose a user wants to change an entry in a database table, or add a new one. He or she
enters the necessary data, and then starts the update process by choosing Save. This starts the following
procedure in the ABAP program:
Firstly, the program locks the database entry against other users, using the enqueue work process (or
the message server in the case of a distributed system). This generates an entry in the lock table. The
user is informed whether the update was successful, or whether the lock could not be set because of
other users.
If the lock is set, the program reads the entry that is to be changed and modifies it. If the user has
created a new entry, the program checks whether a record with the same key values already exists.
In the current dialog work process, the program calls a function module using CALL FUNCTION
IN UPDATE TASK, and this writes the change details as an entry in table VBLOG.
When the program is finished (maybe after further dialog steps), a COMMIT WORK statement starts
the final part of the SAP LUW. The work process that is processing the current dialog step starts an
update work process.
Based on the information passed to it from the dialog work process, the update work process reads the
log entries belonging to the SAP LUW from table VBLOG.
The update work process passes this data to the database for updating, and analyzes the return
message from the database. If the update was successful, the update work process triggers a database
commit after the last database change and deletes the log entries from table VBLOG. If an error
occurred, the update work process triggers a database rollback, leaves the log entries in table VBLOG,
6/21/2014 Update Techniques-Asynchronous and Synchronous Update | SAP ABAP
http://sapient.wordpress.com/2007/09/19/update-techniques-asynchronous-and-synchronous-update/ 3/5
flags them as containing errors, and sends a SAPoffice message to the user, who should then inform the
system administrator.
The corresponding entries in the lock table are reset by the update work process.
Asynchronous update is useful when response time from the transaction is critical, and the database
updates themselves are so complex that they justify the extra system load of logging them in VBLOG.
If you are running a transaction in a background work process, asynchronous update offers no
advantages.
Updating Asynchronously in Steps
When you process a VBLOG entry asynchronously, you can do it in two update steps. This allows you
to divide the contents of the update into primary and secondary steps. The primary step is called V1,
the secondary step V2. The V1 and V2 steps of a log entry are processed in separate database LUWs.
The entries in the lock table are usually deleted once the V1 step has been processed. There is no locking
for the V2 step. Dividing up the update process allows you to separate time-critical updates that require
database locks from less critical data updates that do not need locks. V2 steps receive lower priority
from the dispatcher than V1 steps. This ensures that the time- and lock-critical updates are processed
quickly, even when the system is busy.
If an error occurs during the V1 processing, the database rollback applies to all V1 steps in the log
entry. The entire entry is replaced in table VBLOG. If an error occurs during V2 processing, all of the
V2 steps in the log entry are replaced in table VBLOG, but the V1 updates are not reversed.
The system marks rolled-back function modules as error functions in the update task log. The error can
then be corrected and the function restarted later. To access the update task log, choose Tools
Administration Monitoring Update. For further information about update administration, see the
Managing Updating section of the BC System Services documentation.
Synchronous Update
In synchronous update, you do not submit an update request using CALL FUNCTION IN UPDATE
TASK. Instead, you use the ABAP statement COMMIT WORK AND WAIT. When the update is
finished, control passes back to the program. Synchronous update works in the same way as bundling
update requests in a subroutine (PERFORM ON COMMIT). This kind of update is useful when you
want to use both asynchronous and synchronous processing without having to program the bundles in
two separate ways. The following diagram illustrates the synchronous update process:
6/21/2014 Update Techniques-Asynchronous and Synchronous Update | SAP ABAP
http://sapient.wordpress.com/2007/09/19/update-techniques-asynchronous-and-synchronous-update/ 4/5
Use this type of update whenever the changed data is required immediately. For example, you may
want to link SAP LUWs together where one LUW depends on the results of the previous one.
Local Update
In a local update, the update program is run by the same work process that processed the request. The
dialog user has to wait for the update to finish before entering further data. This kind of update is useful
when you want to reduce the amount of access to the database. The disadvantage of local updates is
their parallel nature. The updates can be processed by many different work processes, unlike
asynchronous or synchronous update, where the update is serialized due to the fact that there are fewer
update work processes (and maybe only one).
You switch to local update using the ABAP statement SET UPDATE TASK LOCAL. This statement
sets a local update switch. When it is set, the system interprets CALL FUNCTION IN UPDATE
TASK as a request for local update. The update is processed in the same work process as the dialog step
containing the COMMIT WORK. The transaction waits for the update to finish before continuing.
As an example, suppose you have a program that uses asynchronous update that you normally run in
dialog mode. However, this time you want to run it in the background. Since the system response time
is irrelevant when you are running the program in the background, and you only want the program to
continue processing when the update has actually finished, you can set the SET UPDATE TASK
LOCAL switch in the program. You can then use a system variable to check at runtime whether the
program is currently running in the background.
By default, the local update switch is not set, and it is reset after each COMMIT WORK or ROLLBACK
WORK. You therefore need to include a SET UPDATE TASK LOCAL statement at the beginning of
each SAP LUW.If you reset data within the local update, the ROLLBACK WORK statement applies to
both the dialog and the update part of the transaction, since no new SAP LUW is started for the update
You May Like
1.
5 Responses to "Update Techniques-Asynchronous and
Synchronous Update"
About these ads
6/21/2014 Update Techniques-Asynchronous and Synchronous Update | SAP ABAP
http://sapient.wordpress.com/2007/09/19/update-techniques-asynchronous-and-synchronous-update/ 5/5
1 | RJ
December 9, 2009 at 7:02 pm
SAP ABAP FM Update task V1 V2 VBLOG
Reply
2 | Bbq sauce coupon
March 11, 2013 at 8:30 am
Wow, marvelous blog layout! How lengthy have you ever been blogging for?
you make running a blog glance easy. The whole glance
of your website is wonderful, as well as the content!
Reply
3 | Aarons rental coupons
March 13, 2013 at 3:30 pm
Very quickly this web site will be famous amid all blog visitors, due to its fastidious articles
Reply
4 | Stephaine
March 14, 2013 at 6:01 pm
This piece of writing gives clear idea in support of the new
users of blogging, that in fact how to do running a blog.
Reply
5 | John
May 2, 2013 at 12:09 am
Hi Dear, are you truly visiting this web page daily, if so
afterward you will absolutely get pleasant knowledge.
Reply
Create a free website or blog at WordPress.com.
The Albeo Theme.
Follow
Follow SAP ABAP
Powered by WordPress.com

Anda mungkin juga menyukai