<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Lock object code in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597964#M595172</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:&lt;/P&gt;&lt;P&gt;1. enque_lockobject&lt;/P&gt;&lt;P&gt;1. deque_lockobject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    For your requirement of Employee,&lt;/P&gt;&lt;P&gt;use the FM.&lt;/P&gt;&lt;P&gt;HR_EMPLOYEE_ENQUEUE&lt;/P&gt;&lt;P&gt;HR_EMPLOYEE_DEQUEUE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. &lt;/P&gt;&lt;P&gt;DATA : ret LIKE bapireturn1.&lt;/P&gt;&lt;P&gt;DATA : locking_user LIKE sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; For Enque&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF react = 'E'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;number = ptab-pernr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;return = ret&lt;/P&gt;&lt;P&gt;locking_user = locking_user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. In case of VIEW,&lt;/P&gt;&lt;P&gt;do not enque.&lt;/P&gt;&lt;P&gt;In case of edit, Yes, enqueue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. This FM is standard SAP.&lt;/P&gt;&lt;P&gt;Hence, it will take care of other sap &lt;/P&gt;&lt;P&gt;trnascations like pa30 etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 28 Jul 2007 06:29:54 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-28T06:29:54Z</dc:date>
    <item>
      <title>Lock object code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597961#M595169</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;anyone have lockobject sample code for any transaction, i just want to see how to use.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Jul 2007 05:13:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597961#M595169</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-28T05:13:36Z</dc:date>
    </item>
    <item>
      <title>Re: Lock object code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597962#M595170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the below program and i am using planned order transaction lock&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;tables : mara,&lt;/P&gt;&lt;P&gt;         aufk,&lt;/P&gt;&lt;P&gt;         afpo,&lt;/P&gt;&lt;P&gt;         afko,&lt;/P&gt;&lt;P&gt;         jest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;constants : c_werks(4) type c value '1000',&lt;/P&gt;&lt;P&gt;            c_mode(1) type c value 'N',&lt;/P&gt;&lt;P&gt;            c_update(1) type c value 'S',&lt;/P&gt;&lt;P&gt;            c_auart(4) type c value 'PP01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : w_cm61w         LIKE cm61w,&lt;/P&gt;&lt;P&gt;       w_msg_log_imp   LIKE msg_log,&lt;/P&gt;&lt;P&gt;       w_msg_text_exp  LIKE msg_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of i_porders occurs 0,&lt;/P&gt;&lt;P&gt;       aufnr like aufk-aufnr,&lt;/P&gt;&lt;P&gt;       objnr like aufk-objnr,&lt;/P&gt;&lt;P&gt;       matnr like afpo-matnr,&lt;/P&gt;&lt;P&gt;       end of i_porders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for Planned order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data i_plaf like plaf occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Error Handling&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF i_error OCCURS 0,&lt;/P&gt;&lt;P&gt;        order(20) type c,&lt;/P&gt;&lt;P&gt;        messg(100) TYPE c,&lt;/P&gt;&lt;P&gt;        val(1) type c,&lt;/P&gt;&lt;P&gt;      END OF i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for bdcdata and bdcmsgcoll.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : i_bdcdata like bdcdata occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       i_msg like bdcmsgcoll occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL TABLE FOR MATERIAL #&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : BEGIN OF I_MATNR OCCURS 0,&lt;/P&gt;&lt;P&gt;       MATNR LIKE MARA-MATNR,&lt;/P&gt;&lt;P&gt;       END OF I_MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for Planned Order Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of i_plnum occurs 0,&lt;/P&gt;&lt;P&gt;       plnum like plaf-plnum,&lt;/P&gt;&lt;P&gt;       end of i_plnum.&lt;/P&gt;&lt;P&gt;DATA V1(255) TYPE C.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for JEST ( Production Order Status )&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: t_jstat LIKE jstat  OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="14" type="ul"&gt;&lt;P&gt;S E L E C T I O N  S C R E E N    ***********************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block blk with frame title text-001.&lt;/P&gt;&lt;P&gt;selection-screen: skip 1.&lt;/P&gt;&lt;P&gt;select-options : s_matnr for mara-matnr obligatory no intervals.&lt;/P&gt;&lt;P&gt;parameters : p_date like sy-datum obligatory.&lt;/P&gt;&lt;P&gt;selection-screen: skip 1.&lt;/P&gt;&lt;P&gt;selection-screen : end of block blk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="14" type="ul"&gt;&lt;P&gt;S T A R T - O F - S E L E C T I O N   *******************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initiliaze the data .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform initilize_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Keep the Material # into Internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM prepare_material_internal_tabl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do the Validation against on Prod Order tables and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Planned Order Table and Create the Production Order.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform Validation_Create.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Displays the error Log.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; loop at i_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if i_error-val = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     format color 4 on.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write:/20 i_error-order,65 i_error-messg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     format color 4 off.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     format color 6 on.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     write:/20 i_error-order,65 i_error-messg.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     format color 6 off.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endloop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;submit zfd_check_production_orders&lt;/P&gt;&lt;P&gt;        WITH p_werks  EQ c_werks&lt;/P&gt;&lt;P&gt;        WITH p_vdatu  EQ p_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="19" type="ul"&gt;&lt;P&gt;T O P  -  O F  -  P A G E  ************************&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  format color 5 on.&lt;/P&gt;&lt;P&gt;  Write:/45 'FreshDirect Production Validation Error Handling Tool'.&lt;/P&gt;&lt;P&gt;  Skip 1 .&lt;/P&gt;&lt;P&gt;  Write:/20 'Material Number' ,65 'Log Message'.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  format color 5 off.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  initilize_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Clear the all fields and Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM initilize_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : i_matnr,&lt;/P&gt;&lt;P&gt;          i_bdcdata,&lt;/P&gt;&lt;P&gt;          i_plaf,&lt;/P&gt;&lt;P&gt;          i_porders,&lt;/P&gt;&lt;P&gt;          i_error,&lt;/P&gt;&lt;P&gt;          w_cm61w,&lt;/P&gt;&lt;P&gt;          w_msg_log_imp,&lt;/P&gt;&lt;P&gt;          w_msg_text_exp,&lt;/P&gt;&lt;P&gt;          i_plnum,&lt;/P&gt;&lt;P&gt;          i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh : i_matnr,&lt;/P&gt;&lt;P&gt;            i_bdcdata,&lt;/P&gt;&lt;P&gt;            i_plaf,&lt;/P&gt;&lt;P&gt;            i_porders,&lt;/P&gt;&lt;P&gt;            i_error,&lt;/P&gt;&lt;P&gt;            i_plnum,&lt;/P&gt;&lt;P&gt;            i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " initilize_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  PREPARE_MATERIAL_INTERNAL_TABL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PREPARE_MATERIAL_INTERNAL_TABL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT S_MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE S_MATNR-LOW TO I_MATNR-MATNR.&lt;/P&gt;&lt;P&gt;    APPEND I_MATNR.&lt;/P&gt;&lt;P&gt;    clear i_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PREPARE_MATERIAL_INTERNAL_TABL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  Validation_Create&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Creation of Production Order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM Validation_Create.&lt;/P&gt;&lt;P&gt;  sort i_matnr by matnr.&lt;/P&gt;&lt;P&gt;  loop at i_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First Check the Production order is available for Given Material and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    refresh : i_porders.&lt;/P&gt;&lt;P&gt;    clear   : i_porders.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Prod Orders data as per given condition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select a~aufnr a~objnr c~matnr into table i_porders&lt;/P&gt;&lt;P&gt;               from aufk as a inner join afko as b on a~aufnr = b~aufnr&lt;/P&gt;&lt;P&gt;                   inner join afpo as c on c~aufnr = a~aufnr&lt;/P&gt;&lt;P&gt;                                           and c~matnr = b~plnbez&lt;/P&gt;&lt;P&gt;                   where c~matnr = i_matnr-matnr&lt;/P&gt;&lt;P&gt;                   and   b~gstrp = p_date&lt;/P&gt;&lt;P&gt;                   and   b~plnbez = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      perform change_status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check the Planned Order Number available for Given Materil and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Deleivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    refresh : i_plaf.&lt;/P&gt;&lt;P&gt;    clear   : i_plaf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from plaf into table i_plaf&lt;/P&gt;&lt;P&gt;                   where matnr = i_matnr-matnr&lt;/P&gt;&lt;P&gt;                   and   psttr = p_date&lt;/P&gt;&lt;P&gt;                   and  plwrk = c_werks.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Delete the Planned Order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform delete_planned_order.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Run MRP Transaction MD02&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform run_mrp_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;No data at Plaf and then no need to go Production order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if i_plnum[] is initial.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Convert New Planned Orders to Production Order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform convert_planned_orders.&lt;/P&gt;&lt;P&gt;    cleaR : I_MATNR.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " Validation_Create&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  change_status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Change the Production Order Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM change_status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_porders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get status of production order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR  : t_jstat.&lt;/P&gt;&lt;P&gt;    REFRESH: t_jstat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'STATUS_READ'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              client           = sy-mandt&lt;/P&gt;&lt;P&gt;              objnr            = i_porders-objnr&lt;/P&gt;&lt;P&gt;              only_active      = 'X'&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              status           = t_jstat&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              object_not_found = 1&lt;/P&gt;&lt;P&gt;              OTHERS           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ignore orders flagged for deletion&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Statuses "Deletion indicator" and "Deleted" are not relevant here and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;so need not be checked!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      READ TABLE t_jstat WITH KEY stat = 'I0076'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if production order has CNF (confirmed) status. If so, ignore&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        READ TABLE t_jstat WITH KEY stat = 'I0009'.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if order has PCNF (partially confirmed) status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          READ TABLE t_jstat WITH KEY stat = 'I0010'.&lt;/P&gt;&lt;P&gt;          IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is not in CNF or PCNF status, as per the spec, it must be in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REL status. Change status of the order from REL to TECO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            READ TABLE t_jstat WITH KEY stat = 'I0002'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Status change that we effect using this function does not cancel the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;requirement (MD04) even though the status is changed. Revert to BDC!&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              PERFORM change_order_teco.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " change_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  change_order_teco&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Change the Order Status into 'TECO'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM change_order_teco.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  : i_bdcdata, i_msg.&lt;/P&gt;&lt;P&gt;  REFRESH: i_bdcdata, i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform bdc_dynpro      using 'SAPLCOKO1' '0110'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'CAUFVD-AUFNR'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'CAUFVD-AUFNR'&lt;/P&gt;&lt;P&gt;                                 i_porders-aufnr.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'R62CLORD-FLG_OVIEW'&lt;/P&gt;&lt;P&gt;                                'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform bdc_dynpro      using 'SAPLCOKO1' '0115'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=TABS'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'CAUFVD-GAMNG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform bdc_dynpro      using 'SAPLCOKO1' '0115'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=BU'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'CAUFVD-GAMNG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'CO02' USING i_bdcdata&lt;/P&gt;&lt;P&gt;                          mode c_mode&lt;/P&gt;&lt;P&gt;                          update c_update&lt;/P&gt;&lt;P&gt;                          MESSAGES INTO i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP BDC Message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR : V1.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            ID        = SY-MSGID&lt;/P&gt;&lt;P&gt;            LANG      = '-E'&lt;/P&gt;&lt;P&gt;            NO        = SY-MSGNO&lt;/P&gt;&lt;P&gt;            V1        = SY-MSGV1&lt;/P&gt;&lt;P&gt;            V2        = SY-MSGV2&lt;/P&gt;&lt;P&gt;            V3        = SY-MSGV3&lt;/P&gt;&lt;P&gt;            V4        = SY-MSGV4&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            MSG       = V1&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-msgty = 'W' OR  sy-msgty = 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    i_error-order = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;    i_error-messg = V1.&lt;/P&gt;&lt;P&gt;    i_error-val = 'S'.&lt;/P&gt;&lt;P&gt;    append i_error.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    i_error-order = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;    i_error-messg = V1.&lt;/P&gt;&lt;P&gt;    i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;    append i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " change_order_teco&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_bdcdata&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Fill the BDCDATA Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_1640   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_1641   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_1642   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_bdcdata USING    p_fnam&lt;/P&gt;&lt;P&gt;                          p_fval&lt;/P&gt;&lt;P&gt;                          p_dynb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR i_bdcdata.&lt;/P&gt;&lt;P&gt;  IF p_dynb IS INITIAL.&lt;/P&gt;&lt;P&gt;    i_bdcdata-fnam = p_fnam.&lt;/P&gt;&lt;P&gt;    i_bdcdata-fval = p_fval.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    i_bdcdata-program  = p_fnam.&lt;/P&gt;&lt;P&gt;    i_bdcdata-dynpro   = p_fval.&lt;/P&gt;&lt;P&gt;    i_bdcdata-dynbegin = p_dynb.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_bdcdata&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  delete_planned_order&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Delete The Planned Order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM delete_planned_order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_plaf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Partially confirmed planned order cannot be deleted&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_plaf-wemng &amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MOVE: i_plaf-plnum TO i_error-order,&lt;/P&gt;&lt;P&gt;            text-010     TO i_error-messg.&lt;/P&gt;&lt;P&gt;      i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;      APPEND i_error.&lt;/P&gt;&lt;P&gt;      CLEAR  i_error.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Lock planned order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'ENQUEUE_EMPLAFE'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              plnum          = i_plaf-plnum&lt;/P&gt;&lt;P&gt;              _scope         = '3'&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              foreign_lock   = 2&lt;/P&gt;&lt;P&gt;              system_failure = 3.&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;      MOVE: i_plaf-plnum TO i_error-order,&lt;/P&gt;&lt;P&gt;            text-011     TO i_error-messg.&lt;/P&gt;&lt;P&gt;      i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND i_error.&lt;/P&gt;&lt;P&gt;      CLEAR  i_error.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : w_cm61w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get MRP control indicator at plant level&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'MD_READ_PLANT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              ewerks = i_plaf-plwrk&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              icm61w = w_cm61w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete planned order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'LOESCHEN_PLANAUFTRAG'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              ecm61w              = w_cm61w&lt;/P&gt;&lt;P&gt;              eplaf               = i_plaf&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              undefined_interface = 1&lt;/P&gt;&lt;P&gt;              OTHERS              = 2.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      COMMIT WORK.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MOVE: i_plaf-plnum TO i_error-order,&lt;/P&gt;&lt;P&gt;            text-012     TO i_error-messg.&lt;/P&gt;&lt;P&gt;      i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;      APPEND i_error.&lt;/P&gt;&lt;P&gt;      CLEAR  i_error.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Unlock planned order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'DEQUEUE_EMPLAFE'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              plnum = i_plaf-plnum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " delete_planned_order&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  run_mrp_bdc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      BDC for MRP Transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM run_mrp_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Clear : i_bdcdata,&lt;/P&gt;&lt;P&gt;          i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh : i_bdcdata,&lt;/P&gt;&lt;P&gt;            i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform bdc_dynpro      using 'SAPMM61X' '0150'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'RM61X-MATNR'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-MATNR'&lt;/P&gt;&lt;P&gt;                                 i_matnr-matnr.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-WERKS'&lt;/P&gt;&lt;P&gt;                                 c_werks.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-VERSL'&lt;/P&gt;&lt;P&gt;                                'NETCH'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-BANER'&lt;/P&gt;&lt;P&gt;                                '2'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-LIFKZ'&lt;/P&gt;&lt;P&gt;                                '3'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-DISER'&lt;/P&gt;&lt;P&gt;                                '1'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-PLMOD'&lt;/P&gt;&lt;P&gt;                                '1'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'RM61X-TRMPL'&lt;/P&gt;&lt;P&gt;                                '1'.&lt;/P&gt;&lt;P&gt;  perform bdc_dynpro      using 'SAPMSSY0' '0120'.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '=XBAC'.&lt;/P&gt;&lt;P&gt;  call transaction 'MD02' using i_bdcdata&lt;/P&gt;&lt;P&gt;                          mode c_mode&lt;/P&gt;&lt;P&gt;                          update  c_update&lt;/P&gt;&lt;P&gt;                          messages into i_msg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP BDC Message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR : V1.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            ID        = SY-MSGID&lt;/P&gt;&lt;P&gt;            LANG      = '-E'&lt;/P&gt;&lt;P&gt;            NO        = SY-MSGNO&lt;/P&gt;&lt;P&gt;            V1        = SY-MSGV1&lt;/P&gt;&lt;P&gt;            V2        = SY-MSGV2&lt;/P&gt;&lt;P&gt;            V3        = SY-MSGV3&lt;/P&gt;&lt;P&gt;            V4        = SY-MSGV4&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            MSG       = V1&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-msgty = 'W' OR  sy-msgty = 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    i_error-order = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;    i_error-messg = V1.&lt;/P&gt;&lt;P&gt;    i_error-val = 'S'.&lt;/P&gt;&lt;P&gt;    append i_error.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    i_error-order = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;    i_error-messg = V1.&lt;/P&gt;&lt;P&gt;    i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;    append i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh : i_plnum.&lt;/P&gt;&lt;P&gt;  clear : i_plnum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select plnum from plaf into table i_plnum&lt;/P&gt;&lt;P&gt;                         where matnr = i_matnr-matnr&lt;/P&gt;&lt;P&gt;                         and   psttr = p_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " run_mrp_bdc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      BDCDATA for Program and Screen Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro USING   p_prog&lt;/P&gt;&lt;P&gt;                        p_scrn.&lt;/P&gt;&lt;P&gt;  clear i_bdcdata .&lt;/P&gt;&lt;P&gt;  i_bdcdata-program = p_prog.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynpro = p_scrn.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  append i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     BDCDATA For Fieldvalue and Field name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field USING    p_fnam&lt;/P&gt;&lt;P&gt;                        p_fval.&lt;/P&gt;&lt;P&gt;  clear i_bdcdata.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fnam = p_fnam.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fval = p_fval.&lt;/P&gt;&lt;P&gt;  append i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_planned_orders&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Convering the Planned order to Production Order&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_planned_orders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: lv_orders  LIKE pla_tab OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; refresh : lv_orders.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; clear : lv_orders.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_plnum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*lv_orders-plnum = i_plnum-plnum.&lt;/P&gt;&lt;P&gt;*append lv_orders.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    Clear : i_bdcdata,&lt;/P&gt;&lt;P&gt;            i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    refresh : i_bdcdata,&lt;/P&gt;&lt;P&gt;              i_msg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CO40 First Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform bdc_dynpro      using 'SAPLCOKO1' '0150'.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'AFPOD-PLNUM'.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                   '/00'.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'AFPOD-PLNUM'&lt;/P&gt;&lt;P&gt;                                   i_plnum-plnum.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'AUFPAR-PP_AUFART'&lt;/P&gt;&lt;P&gt;                                   c_auart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform bdc_dynpro      using 'SAPLCOKO1' '0115'.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=BU'.&lt;/P&gt;&lt;P&gt;    perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'CAUFVD-GAMNG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'CO40' USING i_BDCDATA&lt;/P&gt;&lt;P&gt;                            MODE c_mode&lt;/P&gt;&lt;P&gt;                            UPDATE  c_update&lt;/P&gt;&lt;P&gt;                            MESSAGES INTO i_msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SAP BDC Message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR : V1.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              ID        = SY-MSGID&lt;/P&gt;&lt;P&gt;              LANG      = '-E'&lt;/P&gt;&lt;P&gt;              NO        = SY-MSGNO&lt;/P&gt;&lt;P&gt;              V1        = SY-MSGV1&lt;/P&gt;&lt;P&gt;              V2        = SY-MSGV2&lt;/P&gt;&lt;P&gt;              V3        = SY-MSGV3&lt;/P&gt;&lt;P&gt;              V4        = SY-MSGV4&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              MSG       = V1&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;              OTHERS    = 2.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Error Handling&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-msgty = 'W' OR  sy-msgty = 'S'.&lt;/P&gt;&lt;P&gt;      i_error-order  = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;      i_error-messg = V1.&lt;/P&gt;&lt;P&gt;      i_error-val = 'S'.&lt;/P&gt;&lt;P&gt;      append i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      i_error-order = i_matnr-matnr.&lt;/P&gt;&lt;P&gt;      i_error-messg = V1.&lt;/P&gt;&lt;P&gt;      i_error-val = 'E'.&lt;/P&gt;&lt;P&gt;      append i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_planned_orders&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Jul 2007 05:36:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597962#M595170</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-28T05:36:12Z</dc:date>
    </item>
    <item>
      <title>Re: Lock object code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597963#M595171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Lock objects are use in SAP to avoid the inconsistancy at the time of data is being insert/change into database. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SAP Provide three type of Lock objects. &lt;/P&gt;&lt;P&gt;- Read Lock(Shared Locked) &lt;/P&gt;&lt;P&gt;protects read access to an object. The read lock allows other transactions read access but not write access to &lt;/P&gt;&lt;P&gt;the locked area of the table &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Write Lock(exclusive lock) &lt;/P&gt;&lt;P&gt;protects write access to an object. The write lock allows other transactions neither read nor write access to &lt;/P&gt;&lt;P&gt;the locked area of the table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Enhanced write lock (exclusive lock without cumulating) &lt;/P&gt;&lt;P&gt;works like a write lock except that the enhanced write lock also protects from further accesses from the &lt;/P&gt;&lt;P&gt;same transaction. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can create a lock on a object of SAP thorugh transaction SE11 and enter any meaningful name start with EZ Example EZTEST_LOCK. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Technicaly: &lt;/P&gt;&lt;P&gt;When you create a lock object System automatically creat two function module. &lt;/P&gt;&lt;P&gt;1. ENQUEUE_&amp;lt;Lockobject name&amp;gt;. to insert the object in a queue. &lt;/P&gt;&lt;P&gt;2. DEQUEUE_&amp;lt;Lockobject name&amp;gt;. To remove the object is being queued through above FM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have to use these function module in your program. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this link for example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables:vbak.&lt;/P&gt;&lt;P&gt;call function 'ENQUEUE_EZLOCK3'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;mode_vbak = 'E'&lt;/P&gt;&lt;P&gt;mandt = sy-mandt&lt;/P&gt;&lt;P&gt;vbeln = vbak-vbeln&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;X_VBELN = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;_SCOPE = '2'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;_WAIT = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;_COLLECT = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FOREIGN_LOCK = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SYSTEM_FAILURE = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:&lt;/P&gt;&lt;P&gt;1. enque_lockobject&lt;/P&gt;&lt;P&gt;1. deque_lockobject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;GO TO SE11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Select the radio button "Lock object"..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Give the name starts with EZ or EY..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: EYTEST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Press Create button..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Give the short description..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: Lock object for table ZTABLE..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the tables tab..Give the table name..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example: ZTABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Save and generate..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your lock object is now created..You can see the LOCK MODULES..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the menu ..GOTO -&amp;gt; LOCK MODULES..There you can see the ENQUEUE and DEQUEUE function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lock objects: &lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm" target="test_blank"&gt;http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04s/helpdata/en/cf/21eea5446011d189700000e8322d00/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Match Code Objects:&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw2004s/helpdata/en/41/f6b237fec48c67e10000009b38f8cf/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/tip/0,289483,sid21_gci553386,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See this link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm" target="test_blank"&gt;http://www.sap-img.com/abap/type-and-uses-of-lock-objects-in-sap.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check these links -&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3036414"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="2912662"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3005172"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points for useful Answers&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Jul 2007 06:24:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597963#M595171</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-28T06:24:59Z</dc:date>
    </item>
    <item>
      <title>Re: Lock object code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597964#M595172</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Steps: first we create a loc object in se11 . Suppose for a table mara. It will create two functional module.:&lt;/P&gt;&lt;P&gt;1. enque_lockobject&lt;/P&gt;&lt;P&gt;1. deque_lockobject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    For your requirement of Employee,&lt;/P&gt;&lt;P&gt;use the FM.&lt;/P&gt;&lt;P&gt;HR_EMPLOYEE_ENQUEUE&lt;/P&gt;&lt;P&gt;HR_EMPLOYEE_DEQUEUE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2. &lt;/P&gt;&lt;P&gt;DATA : ret LIKE bapireturn1.&lt;/P&gt;&lt;P&gt;DATA : locking_user LIKE sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------" /&gt;&lt;P&gt; For Enque&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF react = 'E'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;number = ptab-pernr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;return = ret&lt;/P&gt;&lt;P&gt;locking_user = locking_user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3. In case of VIEW,&lt;/P&gt;&lt;P&gt;do not enque.&lt;/P&gt;&lt;P&gt;In case of edit, Yes, enqueue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. This FM is standard SAP.&lt;/P&gt;&lt;P&gt;Hence, it will take care of other sap &lt;/P&gt;&lt;P&gt;trnascations like pa30 etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 28 Jul 2007 06:29:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/lock-object-code/m-p/2597964#M595172</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-28T06:29:54Z</dc:date>
    </item>
  </channel>
</rss>

