ZXM08U16

<< Click to Display Table of Contents >>

Navigation:  All About ABAP Technique > Indonesia > ABAP Tutorial > ABAP Workbench Tools  > Enhancement > Customer Exits > Contoh Customer Exits > Project ZFIWS001 > Funtions Exits > EXIT_SAPLMRMP_010 >

ZXM08U16

*&---------------------------------------------------------------------*
*&  Include           ZXM08U16                                         *
*&---------------------------------------------------------------------*
 
*break ABAP01.
DATA : zli_bkpf LIKE TABLE OF bkpf WITH HEADER LINE,
      zlw_bsak LIKE bsak,
      zlw_reverse LIKE bsak,
      zlv_found(1).
 
IF sy-mandt = '368'.
IF ( e_trbkpv-blart = 'RE' ) OR ( e_trbkpv-blart = 'KR' ) OR ( e_trbkpv-blart = 'KG' ).
  IF ( sy-tcode = 'MIRO' ) AND ( e_trbkpv-mwskz1 <> 'BN' ) AND ( e_trbkpv-mwskz1 <> 'B2' ).
    IF ( e_trbkpv-xblnr IS INITIAL ).
      MESSAGE e398(00) WITH 'Reference tidak boleh kosong !'.
    ELSE.
      SELECT belnr gjahr xblnr
        FROM bkpf
        INTO CORRESPONDING FIELDS OF TABLE zli_bkpf
        WHERE bukrs = e_trbkpv-bukrs AND
               bstat = space AND
               xblnr = e_trbkpv-xblnr AND
               blart IN ('RE', 'KR', 'KG').
 
      IF sy-subrc = 0.
         zlv_found = ' '.
        LOOP AT zli_bkpf.
*         Cari Nomor Clearing Document (AUGBL)
          CLEAR zlw_bsak.
          SELECT SINGLE bukrs lifnr augbl belnr gjahr
            FROM bsak
            INTO CORRESPONDING FIELDS OF zlw_bsak
            WHERE bukrs = e_trbkpv-bukrs AND
                   belnr = zli_bkpf-belnr AND
                   gjahr = zli_bkpf-gjahr.
 
          IF sy-subrc = 0.
*           Cari Nomor Reversal Document berdasarkan AUGBL
            SELECT SINGLE bukrs lifnr augbl belnr gjahr
              FROM bsak
              INTO CORRESPONDING FIELDS OF zlw_reverse
              WHERE bukrs = zlw_bsak-bukrs AND
                     lifnr = zlw_bsak-lifnr AND
                     augbl = zlw_bsak-augbl AND
                     blart = 'KX'.
 
*           Bila nomor reversal tidak ada, maka reference tidak boleh dipakai lagi
            IF sy-subrc <> 0.
               zlv_found = 'X'.
              EXIT.
            ENDIF.
          ELSE.
             zlv_found = 'X'.
            EXIT.
          ENDIF.
        ENDLOOP.
 
        IF zlv_found = 'X'.
          MESSAGE e398(00) WITH 'Reference telah digunakan di' zli_bkpf-belnr '/' zli_bkpf-gjahr.
        ENDIF.
      ENDIF.
    ENDIF.
  ENDIF.
ENDIF.
ENDIF.