cancel
Showing results for 
Search instead for 
Did you mean: 

Lock Objects

Former Member
0 Kudos

Is creating Lock objects,admin job or ABAPer job?

What is the ABAPer work regarding Lock objects?

Can ABAPer use the ENQUEUE and DEQUEUE function modules for locking and unlocking?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Lalita,

Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database.

SAP Provide three type of Lock objects.

Read Lock(Shared Locked)

protects read access to an object. The read lock allows other transactions read access but not write access to

the locked area of the table

Write Lock(exclusive lock)

protects write access to an object. The write lock allows other transactions neither read nor write access to

the locked area of the table.

Enhanced write lock (exclusive lock without cumulating)

works like a write lock except that the enhanced write lock also protects from further accesses from the

same transaction.

You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK.

Use: you can see in almost all transaction when you are open an object in Change mode SAP could not allow to any other user to open the same object in change mode.

Example: in HR when we are enter a personal number in master data maintainance screen SAP can't allow to any other user to use same personal number for changes.

Technicaly:

When you create a lock object System automatically creat two function module.

1. ENQUEUE_<Lockobject name>. to insert the object in a queue.

2. DEQUEUE_<Lockobject name>. To remove the object is being queued through above FM.

You have to use these function module in your program.

check this link for example.

http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm

tables:vbak.

call function 'ENQUEUE_EZLOCK3'

exporting

mode_vbak = 'E'

mandt = sy-mandt

vbeln = vbak-vbeln

X_VBELN = ' '

_SCOPE = '2'

_WAIT = ' '

_COLLECT = ' '

EXCEPTIONS

FOREIGN_LOCK = 1

SYSTEM_FAILURE = 2

OTHERS = 3

.

if sy-subrc 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

Normally ABAPers will create the Lock objects, because we know when to lock and how to lock and where to lock the Object then after completing our updations we unlock the Objects in the Tables

http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm

purpose: If multiple user try to access a database object, inconsistency may occer. To avoid that inconsistency and to let multiple user give the accessibility of the database objects the locking mechanism is used.

Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:

1. enque_lockobject

1. deque_lockobject

before updating any table first we lock the table by calling enque_lockobject fm and then after updating we release the lock by deque_lockobject.

http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm

GO TO SE11

Select the radio button "Lock object"..

Give the name starts with EZ or EY..

Example: EYTEST

Press Create button..

Give the short description..

Example: Lock object for table ZTABLE..

In the tables tab..Give the table name..

Example: ZTABLE

Save and generate..

Your lock object is now created..You can see the LOCK MODULES..

In the menu ..GOTO -> LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function

Lock objects:

http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm

http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm

Match Code Objects:

http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm

http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html

See this link:

http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm

Check these links -

If Found Help Full Do Reward.

Regards.

Eshwar.

Answers (7)

Answers (7)

Former Member
0 Kudos

Thank you.

Lalitha.

Former Member
0 Kudos

Hi Lalitha.

Answer 1: Locking can be done by an ABAP consultant.

Answer 2: An ABAP programmer has to follows important strategies:

1. Setting of Lock mode:

Status that determines whether a user has exclusive access to an object, or whether access is shared with other users.

The lock mode (either "Shared" or "Exclusive") is assigned to the tables of a lock object on definition.

2. Activation of lock object (Calling Function Modules):

Use of various function modules (ENQUEUE and DEQUEUE) to facilitate the locking and unlocking mechanisms.

I would like to show you some code where you can understand some basic locking and releasing mechanism for HR Infotype modifications :

tables:
  pa0001.

data:
  t_pa0001 like table of pa0001.

data:
  fs_pa0001 like p0001.

parameters:
  p_pernr like pa0001-pernr.

select single *
from pa0001
into  corresponding fields of fs_pa0001
where pernr = p_pernr.


fs_pa0001-gsber = '1000'.
fs_pa0001-infty = '0001'.


call function 'BAPI_EMPLOYEE_ENQUEUE'
  exporting
    number = p_pernr.

call function 'HR_INFOTYPE_OPERATION'
  exporting
    infty                  = '0001'
    number                 = p_pernr
*   SUBTYPE                =
*   OBJECTID               =
*   LOCKINDICATOR          =
   validityend            = '99991231'
   validitybegin          = '20080628'
*   RECORDNUMBER           =
    record                 = fs_pa0001
    operation              = 'MOD'
*   TCLAS                  = 'A'
*   DIALOG_MODE            = '0'
*   NOCOMMIT               =
*   VIEW_IDENTIFIER        =
*   SECONDARY_RECORD       =
* IMPORTING
*   return                 = return
*   KEY                    =
          .
          call function 'BAPI_TRANSACTION_COMMIT'
*           EXPORTING
*             WAIT          =
*           IMPORTING
*             RETURN        =
                    .


call function 'BAPI_EMPLOYEE_DEQUEUE'
  exporting
    number = p_pernr.

Reward Points if you find this information usefull.

Regards

Harsh

Former Member
0 Kudos

Hiii!

Creating lock objects is a job of ABAPer,

You can create your own lock object in se11

When the lock object is activated, the following function modules are generated from its definition:

ENQUEUE (set locks)

DEQUEUE (release locks)

These function modules can now be linked to ABAP programs.

Check out this link

http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm

Reward points, if useful

Regards

Abhijeet Kulshreshtha

Former Member
0 Kudos

yes this is the abaper job to create and use lock objects.

create it using SE11. and call it in the program using enque deque funciton.

reward if helpful.

Former Member
0 Kudos

Hi

Go through the link given below :

http://help.sap.com/saphelp_nw04/helpdata/en/41/7af4c5a79e11d1950f0000e82de14a/content.htm

Hope it will solve your problem.

Rewards Points if useful.

Thanks & Regards

Nikunj Shah

Former Member
0 Kudos

Yes,ABAPer can create lock object thr' SE11 and can use DEQUEUE and ENQUEUE for locking and unlocking purpose.

Regards,

Aparna Gaikwad

former_member182354
Contributor
0 Kudos

Lock objects are whole and sole responsibility of an Tech consultant.

Yes u have to use those Func modules that is the reason for you creating a lock object.

Raghav