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

Lock Objects

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?

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

8 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:09 AM

    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 -

    lock-objects

    lock-objects

    lock-objects

    If Found Help Full Do Reward.

    Regards.

    Eshwar.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:02 AM

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:02 AM

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

    Regards,

    Aparna Gaikwad

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:03 AM

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:03 AM

    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.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:06 AM

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:36 AM

    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

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jul 08, 2008 at 07:40 AM

    Thank you.

    Lalitha.

    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.