SD客户主数据的增强user-exit SAPMF02D

*&---------------------------------------------------------------------*
*&  包括                ZXF04U01
*&---------------------------------------------------------------------*
*校验客户信息唯一性 by zhanglin 20101013

DATA: ls_kna1  TYPE kna1.

DATA: l_name1  TYPE kna1-name1.

CHECK sy-tcode =  'XD01'  OR sy-tcode =  'XD02'.

l_name1 = i_kna1-name1.

SHIFT l_name1  LEFT DELETING  LEADING space.

IF sy-tcode =  'XD01'.
   IF l_name1  IS  NOT INITIAL.
     IF i_kna1-kunnr  IS  NOT INITIAL.
       SELECT  SINGLE INTO ls_kna1
       FROM kna1
       WHERE name1 = l_name1
         AND kunnr <> i_kna1-kunnr.
    ELSE.
       SELECT  SINGLE INTO ls_kna1
       FROM kna1
       WHERE name1 = l_name1.
    ENDIF.
     IF sy-subrc =  0.
       MESSAGE e000(zsdmsg)  WITH i_kna1-name1.
    ENDIF.
  ENDIF.

   IF i_kna1-stceg  IS  NOT INITIAL.
     IF i_kna1-kunnr  IS  NOT INITIAL.
       SELECT  SINGLE INTO ls_kna1
       FROM kna1
       WHERE stceg = i_kna1-stceg
         AND kunnr <> i_kna1-kunnr.
    ELSE.
       SELECT  SINGLE INTO ls_kna1
       FROM kna1
       WHERE stceg = i_kna1-stceg.
    ENDIF.
     IF sy-subrc =  0.
       MESSAGE e001(zsdmsg)  WITH i_kna1-stceg.
    ENDIF.
  ENDIF.
ELSE.
   IF l_name1  IS  NOT INITIAL.
     SELECT  SINGLE INTO ls_kna1
     FROM kna1
     WHERE name1 = l_name1
       AND kunnr <> i_kna1-kunnr.
     IF sy-subrc =  0.
       MESSAGE e000(zsdmsg)  WITH i_kna1-name1.
    ENDIF.
  ENDIF.

   IF i_kna1-stceg  IS  NOT INITIAL.
     SELECT  SINGLE INTO ls_kna1
     FROM kna1
     WHERE stceg = i_kna1-stceg
       AND kunnr <> i_kna1-kunnr.
     IF sy-subrc =  0.
       MESSAGE e001(zsdmsg)  WITH i_kna1-stceg.
    ENDIF.
  ENDIF.
ENDIF.

IF sy-tcode =  'XD01'  OR sy-tcode =  'XD02'.
   IF i_knvv-spart =  '01'  AND i_kna1-lzone  IS INITIAL.
     MESSAGE e005(zsdmsg).
  ENDIF.
ENDIF.

你可能感兴趣的:(SD客户主数据的增强user-exit SAPMF02D)