메뉴 건너뛰기

SAP 한국 커뮤니티

<img src=d.gif>테이블 Lock & UnLock function[추천:e-abap]

양키 2011.01.18 10:01 조회 수 : 8268 추천:2

실무에 적용된 소스이며, 재밌는 예제인것같습니다. 
( 자재 실사처리시 MARD테이블 Lock처리해서 이중실사처리하지 못하도록 할경우 사용)


 


===================================================================


MARD 테이블 Lock


===================================================================


 

FUNCTION ENQUEUE_EZ_MARD.

DATA: __seqta_tab TYPE SEQTA OCCURS 01 WITH HEADER LINE,
      __scope TYPE DDENQSCOPE,
      __wait TYPE DDENQWAIT.
__wait = _wait.
__scope = _scope.


DATA: BEGIN OF %a_MARD,
*       테이블 MARD 에 대한 잠금인수
            MANDT TYPE MARD-MANDT,
            MATNR TYPE MARD-MATNR,
            WERKS TYPE MARD-WERKS,
            LGORT TYPE MARD-LGORT,
      END OF %a_MARD.
* 잠금인수 초기화:
CALL 'C_ENQ_WILDCARD' ID 'HEX0' FIELD %a_MARD.


* 잠금필드에 잠금매개변수 지정:

IF NOT MANDT IS INITIAL.
   MOVE MANDT TO:
        %a_MARD-MANDT.
ENDIF.

IF NOT MATNR IS INITIAL OR
   NOT x_MATNR IS INITIAL.
   MOVE MATNR TO:
        %a_MARD-MATNR.
ENDIF.

IF NOT WERKS IS INITIAL OR
   NOT x_WERKS IS INITIAL.
   MOVE WERKS TO:
        %a_MARD-WERKS.
ENDIF.

IF NOT LGORT IS INITIAL OR
   NOT x_LGORT IS INITIAL.
   MOVE LGORT TO:
        %a_MARD-LGORT.
ENDIF.


* 잠금테이블채우기:
__seqta_tab-gname = 'MARD'.
__seqta_tab-gmode = MODE_MARD.
__seqta_tab-garg = %a_MARD.
APPEND __seqta_tab.


* 잠금 지정:
PERFORM send_enqueue(saplsena)
        TABLES __seqta_tab
        USING '1' __scope __wait ' ' 'EZ_MARD' _collect.

ENDFUNCTION.


===================================================================


MARD 테이블 UnLock


===================================================================


 

FUNCTION DEQUEUE_EZ_MARD.

DATA: __seqta_tab TYPE SEQTA OCCURS 01 WITH HEADER LINE,
      __scope TYPE DDENQSCOPE,
      __synchron TYPE DDENQSYNC.
__synchron = _synchron.
__scope = _scope.


DATA: BEGIN OF %a_MARD,
*       테이블 MARD 에 대한 잠금인수
            MANDT TYPE MARD-MANDT,
            MATNR TYPE MARD-MATNR,
            WERKS TYPE MARD-WERKS,
            LGORT TYPE MARD-LGORT,
      END OF %a_MARD.
* 잠금인수 초기화:
CALL 'C_ENQ_WILDCARD' ID 'HEX0' FIELD %a_MARD.


* 잠금필드에 잠금매개변수 지정:
IF NOT MANDT IS INITIAL.
   MOVE MANDT TO:
        %a_MARD-MANDT.
ENDIF.

IF NOT MATNR IS INITIAL OR
   NOT x_MATNR IS INITIAL.
   MOVE MATNR TO:
        %a_MARD-MATNR.
ENDIF.

IF NOT WERKS IS INITIAL OR
   NOT x_WERKS IS INITIAL.
   MOVE WERKS TO:
        %a_MARD-WERKS.
ENDIF.

IF NOT LGORT IS INITIAL OR
   NOT x_LGORT IS INITIAL.
   MOVE LGORT TO:
        %a_MARD-LGORT.
ENDIF.


* 잠금테이블채우기:
__seqta_tab-gname = 'MARD'.
__seqta_tab-gmode = MODE_MARD.
__seqta_tab-garg = %a_MARD.
APPEND __seqta_tab.


* 잠금 지정:
PERFORM send_enqueue(saplsena)
        TABLES __seqta_tab
        USING '2' __scope ' ' __synchron 'EZ_MARD' _collect.

ENDFUNCTION.


번호 제목 글쓴이 날짜 조회 수
387 문자열에 있는 값이 숫자만으로 되어있는지 문자가 포함됐는지 체크하는 함수 [3] 꿀단지 2011.10.11 19881
386 CALL FUNCTION 'STRING_REPLACE' [1] 꿀단지 2011.10.11 5526
385 SAP 오피스의 메일박스에 메일 전송하는 함수 꿀단지 2011.10.11 5760
384 업로드할 엑셀 파일을 TXT 파일(탭으로 분리된)로 내리지 않고 엑셀파일로 꿀단지 2011.10.11 6373
383 ALV 색상 번호와 사용 목적 꿀단지 2011.10.11 4960
382 CS_BOM [1] 꿀단지 2011.10.11 5571
381 바피사용이유 [18] 꿀단지 2011.10.11 8372
380 ▲123,456' 으로 표시하게 한다 [3] 꿀단지 2011.10.11 5695
379 Mac Notebook을 쓰는 사람들을 위한 조그만 팁. [2] Bigbrother 2011.09.21 5037
378 Do Varying 간단한 예제 및 설명입니다^^ [6] file JJB 2011.08.30 6083
377 Word Wrab 기능을사용해보자. [2] file 양키 2011.07.19 5597
376 Area 메뉴 일괄 다운로드 하기 [5] file 고담 2011.06.15 8274
375 시분초를 가져오는 구문 [8] 양키 2011.05.26 8545
374 한글 자음 분석해보기. [5] file 공백 2011.05.19 7257
373 [Tip] Explorer 8.0 & SAP GUI 7.2 fancky 2011.05.19 6603
372 Automated Note Search & Customer Code Detection 소주와 막걸리 2011.04.27 6352
371 SAP Notes Viewer for iPad/iPhone [4] D.Y.Kim 2011.04.21 6219
370 where 조건을 상황에따라 바꿔볼까? [8] 양키 2011.04.14 8738
369 간단한 계산공식은 Macro를 사용하자 [5] 양키 2011.04.14 9528
368 Batch JOB이 수행중인지 여부체크 [5] deepbluesea 2011.04.05 11392