메뉴 건너뛰기

SAP 한국 커뮤니티



안녕하세요. 이런경우가 반드시 있을건데...검색해보니까 제가 못찾는건지...고수님들 답변 부탁드립니다.

 

(1) 먼저 테이블 전체 LOCK를 거는 경우 로직 구성.

 

  <style type="text/css"> SPAN { font-family: "Fixedsys"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; }</style>   CALL FUNCTION 'ENQUEUE_E_TABLE'
   EXPORTING
     mode_rstable         = 'E'
     tabname              = 'SFLIGHT'
   EXCEPTIONS
     foreign_lock         = 1
     system_failure       = 2
     OTHERS               = 3.

 

테스트는 SE11에서 SFLIGHT로 들어가서 "수정"버튼을 클릭하는 순간, 이런 메세지를 확인하여.

테이블 전체 Lock은 잠긴걸 확인했습니다.

 

제가 지금 하려고 하는것, 그리고 아직 해결 못한건...

테이블 전체가 아닌 레코드별로 락을 거는 건데...ㅠㅠ

 

(2) 테이블 Records 별로 Lock를 거는 로직.

  <style type="text/css"> SPAN { font-family: "Fixedsys"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; }</style> LOOP AT lt_sflight INTO ls_sflight.
  <style type="text/css"> SPAN { font-family: "Fixedsys"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; }</style>   CALL FUNCTION 'ENQUEUE_ESFLIGHT'
    EXPORTING
      mandt          = sy-mandt
      carrid         = ls_sflight-carrid
      connid         = ls_sflight-connid
      fldate         = ls_sflight-fldate
      x_carrid       = ' '
      x_connid       = ' '
      x_fldate       = ' '
      _scope         = '2'
      _wait          = ' '
      _collect       = ' '
    EXCEPTIONS
      foreign_lock   = 1
      system_failure = 2
      OTHERS         = 3.

  <style type="text/css"> SPAN { font-family: "Fixedsys"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; }</style>  ENDLOOP.

그리고 실행한후, T-code : SM12 로 가서 조회해보니 아래와 락이 걸린 것 같이 나오네요.

 

근데 여기서 제가 한숨이 나오는 이유가...

SFLIGHT테이블의 KEY인 carrid, connid, fldate로 LOCK OBJCT를 맞게 구성했는데...

왜? 왜? 왜?

 

SE11에서 SFLIGHT로 들어가서 "수정"버튼을 클릭하는 순간,

아무런 꺼리낌(?)없이 잘 들어가지고...

수정후에도 "저장"버튼을 눌러도 아무 이상없이 저장이 잘 되고,

se11을 빠져나갔다가 재조회를 해봐도 수정된 사항이 잘 조회된다는 겁니다.

 

제발 테이블에서 레코드 단위로 테이블 키로 잡아서 LOCK거는 법좀 알려주세요.