1) Create lock object

2) Enter a table name and lock mode,next enter the lock parameters

3) Check the program

Delete the table level lock and put row level lock so that multiple users can maintain table at same time. Rows locked by one user will not be editable by other user.

REPORT  zrep_shuks3.

**Selection range for view maintenance

DATA:

  BEGIN OF selekttab OCCURS 1.         "Selektionsbereich

        INCLUDE STRUCTURE vimsellist.

DATA: END OF selekttab,

**Table of inactive CUA functions for view maintenance

BEGIN OF excl_cua_funct OCCURS 1.    "inaktive CUA-Fkt bei View-Pflege

        INCLUDE STRUCTURE vimexclfun.

DATA: END OF excl_cua_funct.

DATA: lt_enq_del TYPE STANDARD TABLE OF seqg3,

      lt_enq_read TYPE STANDARD TABLE OF seqg7,

      lw_enq_read TYPE seqg7,

      lw_enq_del TYPE seqg3,

      lv_subrc TYPE sy-subrc.

*Read all the lock details in system

CALL FUNCTION 'ENQUE_READ2'

  EXPORTING

    gclient = sy-mandt

    gname   = ' '

    guname  = '*'

  TABLES

    enq     = lt_enq_read.

*We will search entry for table level lock for our table

LOOP AT lt_enq_read INTO lw_enq_read

WHERE gname EQ 'RSTABLE'

AND   garg CS 'ZTEST_SHUKS3'.

  MOVE-CORRESPONDING lw_enq_read TO lw_enq_del.

  APPEND lw_enq_del TO lt_enq_del.

ENDLOOP.

*Delete table level lock entry for our table

CALL FUNCTION 'ENQUE_DELETE'

  EXPORTING

    check_upd_requests = 1

  IMPORTING

    subrc              = lv_subrc

  TABLES

    enq                = lt_enq_del.

*Now call the table maintenace generator.

CALL FUNCTION 'VIEW_MAINTENANCE_CALL'

  EXPORTING

    action               = 'U'

    view_name            = 'ZTEST_SHUKS3'

    show_selection_popup = 'X'

  TABLES

    dba_sellist          = selekttab

excl_cua_funct       = excl_cua_funct.

 

in this process befor output screen

write the code

Check the code below to be added in the module m_change_locking. 

MODULE m_change_locking OUTPUT.

*Call the function module corresponding to the lock object we created

  CALL FUNCTION 'ENQUEUE_EZTEST_SHUKS3'

    EXPORTING

      matnr          = ztest_shuks3-matnr

      werks          = ztest_shuks3-werks

    EXCEPTIONS

      foreign_lock   = 1

      system_failure = 2

      OTHERS         = 3.

  IF sy-subrc NE 0.

row is locked..hence gray..

    LOOP AT SCREEN.

      screen-input = 0.

      MODIFY SCREEN.

    ENDLOOP.

  ENDIF.

ENDMODULE.                 " m_change_locking  OUTPUT 

 

Reference: http://scn.sap.com/message/7827284#7827284

 

Software Factory 2