ABAP:ENQUEUE_E_TABLE

①テーブルデータのロック

CONCATENATE sy-mandt lv_matnr INTO lv_mara_key. 

" Lock object 

CALL FUNCTION 'ENQUEUE_E_TABLE' 

    EXPORTING 

     MODE_RSTABLE = 'E' 

     tabname  = 'MARA' 

     varkey   = lv_mara_key 

    EXCEPTIONS 

      foreign_lock = 1  

  system_failure = 2  

  OTHERS = 3. 

IF SY-SUBRC <> 0.

   LW_MSGV1= SY-MSGV1.

  LW_MSGV2= SY-MSGV2.

  MESSAGE XXX WITH SY-REPID LW_MSGV1 LW_MSGV2

   DISPLAY LIKE 'E'.

  " &1はユーザ&2によりロックされています(キー:&3)

  LEAVE LIST-PROCESSING.

ENDIF.


" Unlock object 

CALL FUNCTION 'DEQUEUE_E_TABLE' 

    EXPORTING 

     MODE_RSTABLE = 'E' 

     tabname  = 'MARA' 

     varkey   = lv_mara_key 

    EXCEPTIONS 

     foreign_lock = 1  system_failure = 2  OTHERS = 3. 


②処理のロック

lv_varkey  = 'XXX'     "XXXは処理ID

CALL FUNCTION 'ENQUEUE_E_TABLE' 

    EXPORTING 

     MODE_RSTABLE = 'X' 

     varkey   = lv_varkey 

    EXCEPTIONS 

      foreign_lock = 1  

  system_failure = 2  

  OTHERS = 3. 

③ファイルダウンロード場合、排他ロック処理
  
 CALL FUNCTION 'ENQUEUE_E_TABLE'
    EXPORTING
      MODE_RSTABLE   = 'X'
      TABNAME        =
      VARKEY         =   "ファイル名
    EXCEPTIONS
      FOREIGN_LOCK   = 1
      SYSTEM_FAILURE = 2
      OTHERS         = 3.

このブログの人気の投稿

ABAP:データファイルのアップロードとダウンロード

ABAPSE12 更新ビュー作成手順

ABAP:]バックグラウンドジョブDEBUG