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

来源:互联网 发布:macbookpro破解软件 编辑:程序博客网 时间:2024/05/03 15:45
*&---------------------------------------------------------------------*
*&  包括                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.
原创粉丝点击