ZCMM01-15

*&------------------------------------------------
*&      Module  get_document_data  INPUT
*&------------------------------------------------
MODULE GET_DOCUMENT_DATA INPUT.
  DATA: L_SGTXT LIKE ZCM04-SGTXT.
*   DATA: L_CNT TYPE I.
  SELECT * FROM ZCM03 WHERE DOCNUMBER EQ ZCM03-DOCNUMBER
  AND DOCYEAR = ZCM03-DOCYEAR.
    EXIT.
  ENDSELECT.

  IF SY-SUBRC NE 0.
    MESSAGE E000 WITH 'Document number' ZCM03-DOCNUMBER
    '  does not exist'.
  ENDIF.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE ZCM04TAB FROM
  ZCM04
  WHERE DOCNUMBER EQ ZCM03-DOCNUMBER.
****mark by liuchun 20070925****
*  SORT ZCM04TAB BY MATNR .    "Elven 20070403
  LOOP AT ZCM04TAB.
    ZCM04TAB-PERSISTENT = 'X'.
    MODIFY ZCM04TAB INDEX SY-TABIX TRANSPORTING PERSISTENT.
    LASTDOCITEM = ZCM04TAB-DOCITEM.
  ENDLOOP.

  IF  ZCM03-DOCSTAS EQ '0'.
*nancy add 0618 for lock table zcm03 document sn
    DATA: ENQH LIKE SEQG3 OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'ENQUEUE_EZ_ZCM03'
         EXPORTING
              MODE_SFLIGHT   = 'E'
              MANDT          = SY-MANDT
              DOCNUMBER      = ZCM03-DOCNUMBER
              _SCOPE         = 2
         EXCEPTIONS
              FOREIGN_LOCK   = 01
              SYSTEM_FAILURE = 02.
    IF SY-SUBRC <> 0.

      CALL FUNCTION 'ENQUEUE_READ'
           EXPORTING
                GCLIENT                = SY-MANDT
                GNAME                  = 'ZCM03'
                GARG                   = ''
                GUNAME                 = SPACE
           TABLES
                ENQ                    = ENQH
           EXCEPTIONS
                FCOMMUNICATION_FAILURE = 1
                SYSTEM_FAILURE         = 2.
      IF NOT ENQH[]  IS INITIAL.
        READ TABLE ENQH WITH KEY GARG+3(10) = ZCM03-DOCNUMBER.
        IF SY-SUBRC = 0.
       MESSAGE E000  WITH  ZCM03-DOCNUMBER 'locked by user' ENQH-GUNAME.
        ENDIF.
      ENDIF.
    ENDIF.
*nancy add 0618 for lock table zcm03 document en

***LBG20080411.ADD.SN
    IF G_OBJECT EQ SPACE.
      CONCATENATE 'DOCTYPE' ZCM03-DOCTYPE INTO G_OBJECT.
      CONDENSE G_OBJECT.
    ENDIF.
    L_CNT = 0.
    CLEAR L_PLANT.
    SELECT SINGLE WERKS INTO L_PLANT FROM ZCM04
    WHERE DOCNUMBER = ZCM03-DOCNUMBER AND
    DOCYEAR = ZCM03-DOCYEAR.
    SELECT COUNT(*) INTO L_CNT FROM ZMM048
    WHERE WERKS = L_PLANT AND BJECT = G_OBJECT
    AND VALUE = 'ACTIVE'.
    IF L_CNT > 0 AND ZCM03-RELSTATUS NE SPACE.
*   ECHO20081120.ADD.SN  FOR EPDV electronic approve.
      IF ZCM03-RELSTATUS NE 'R'.
        MESSAGE S000 WITH 'Document number' ZCM03-DOCNUMBER
        'Has realeased or is realeasing,can not MODIFY!'.
      ENDIF.
*   ECHO20081120.ADD.EN
    ENDIF.
***LBG20080411.ADD.EN

***LBG20080331.ADD.EN
    SELECT SINGLE SGTXT INTO L_SGTXT FROM ZCM04 WHERE
    DOCNUMBER EQ ZCM03-DOCNUMBER
    AND SGTXT = 'Auto Generate'.
    IF SY-SUBRC NE 0.
      IF P_WERKS NE SPACE AND ZCM03-DOCTYPE ='4'.
        TRANSACTION = 'D'.
      ELSE.
        TRANSACTION = 'U'.
      ENDIF.
    ENDIF.
    IF SY-SUBRC EQ 0.
      TRANSACTION = 'D'.
      MESSAGE S000 WITH 'Document number' ZCM03-DOCNUMBER
      '  can not be changed.'.
    ENDIF.
*    ENDIF.
  ELSE.
    TRANSACTION = 'D'.
    MESSAGE S000 WITH 'Document number' ZCM03-DOCNUMBER
    '  can not be changed.'.
  ENDIF.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14397246/viewspace-666167/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14397246/viewspace-666167/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值