天天看點

SAP CO02 User Exit

*&---------------------------------------------------------------------*

*&  Include           ZXCO1U18

*&---------------------------------------------------------------------*

* Add control to production order changed , Lisa wong 02/05/2013

*

IF SY-BINPT = ''.

  DATA:BEGIN OF T_AFVV OCCURS 0,

      LMNGA LIKE AFVV-LMNGA,

      XMNGA LIKE AFVV-XMNGA,

    END OF T_AFVV.

  DATA: L_LMNGA1 LIKE AFVV-LMNGA,

        L_LMNGA_MAX LIKE AFVV-LMNGA.

  SELECT LMNGA XMNGA INTO TABLE T_AFVV

    FROM AFVV

    WHERE AFVV~AUFPL = IS_HEADER_OLD-AUFPL.

  LOOP AT T_AFVV.

    L_LMNGA1 = T_AFVV-LMNGA + T_AFVV-XMNGA.

    IF L_LMNGA_MAX < L_LMNGA1.

      L_LMNGA_MAX = L_LMNGA1.

    ENDIF.

  ENDLOOP.

  IF IS_HEADER_OLD-AUART+3(1) = '1' AND  IS_HEADER_NEW-GAMNG < L_LMNGA_MAX.

    IF NOT IS_HEADER_OLD-FTRMI IS INITIAL.

      MESSAGE E007(BS) WITH 'Released order' 'change'.

      RAISE NO_CHANGES_ALLOWED.

    ENDIF.

  ENDIF.

  ENDIF.

*&---------------------------------------------------------------------*

*&  Include           ZXCO1U23

*&---------------------------------------------------------------------*

* Add control to production order changed Add by Lisa wong 02/05/2013

* Order type = PPX1,if status is released,not allowed to change component

* Order type <> PPX1, require qty could not smaller than withdraw qty

check sy-uname+(1) = 'M'.

IF SY-BINPT = ''.             "Skip BDC program

  IF IS_HEADER-AUART+3(1) = '1'.

    IF NOT IS_HEADER-FTRMI IS INITIAL.

      MESSAGE E007(BS) WITH 'Released order' 'change'.

      RAISE NO_CHANGES_ALLOWED.

    ENDIF.

  ENDIF.

  IF IS_COMPONENT-BDMNG < IS_COMPONENT-ENMNG.

    MESSAGE E752(CN) WITH IS_COMPONENT-MATNR IS_COMPONENT-BDMNG IS_COMPONENT-ENMNG.

    RAISE NO_CHANGES_ALLOWED.

  ENDIF.

ENDIF.

繼續閱讀