메뉴 건너뛰기

SAP 한국 커뮤니티

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

양키 2011.01.18 10:01 조회 수 : 8269 추천: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 Second index 생성시 MANDT 필드 필요 없다. [2] 모포 2012.05.08 6742
386 자주 사용하는 시스템변수 [8] 열공아밥 2009.12.20 6705
385 특수 문자 표현 [8] ecbase 2006.12.02 6677
384 BAPI_PR_CREATE 구매요청 생성시에 사용하세요. 이렇게도 쓸 수 있군요. [1] 노름마치 2007.12.10 6674
383 유용한 Abap Sample Package [2] 양키(이경환) 2014.03.31 6673
382 TABLE INDEX 추가 및 후속작업 [16] file 루베루베루베룹 2009.04.22 6653
381 LIKE (% _)의 사용법 [8] ecbase 2006.12.02 6646
380 Buffer Bypass 방법 [4] sapjoy 2010.05.20 6615
379 [Tip] Explorer 8.0 & SAP GUI 7.2 fancky 2011.05.19 6603
378 <img src=d.gif>[Function]Edit 팝업창을 뛰워보자[추천:e-abap] [19] file 양키 2010.09.28 6600
377 [Function]금액(숫자)를 영문철자로 바꿔보자 [3] file 양키 2010.09.28 6549
376 테이블 구조 다운로드 DD03L 테이블 조회 [1] sapjoy 2006.12.12 6540
375 SAP Icon 출력 [3] 홍성현 2007.08.09 6538
374 Nested loops Tunning [3] sapjoy 2012.03.13 6499
373 (-) 부호 값 앞에 붙이기 [6] 권장원 2009.11.06 6473
372 SAP의 On-line Program에서 Double Click Event 잡는 법 [8] Delight 2008.04.30 6455
371 특정프로그램 내에서 프린터로 직접 프린트하는 함수 [8] 미쓰조 2010.03.17 6432
370 Internal Table Read performance [4] file sapjoy 2012.03.12 6431
369 add 구문 [3] sapjoy 2006.12.02 6430
368 업로드할 엑셀 파일을 TXT 파일(탭으로 분리된)로 내리지 않고 엑셀파일로 꿀단지 2011.10.11 6374