無名经验总结与分享(SAP)            十年树木,百年树人

工程变更号的修改生效日期--实例

FUNCTION ZEPE00_CHANGE_ECN .
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(LEAD_CHANGE_NO) TYPE  /PLMB/AENNR OPTIONAL
*"     VALUE(LV_EFFECTIVE_DT) TYPE  CC_DATUV_BI OPTIONAL
*"  EXPORTING
*"     VALUE(EP_SUBRC) TYPE  SY-SUBRC
*"----------------------------------------------------------------------


  DATA:LS_CHANGE_HEADER     TYPE AENR_API01,
       LS_OBJECT_MAT        TYPE AENV_API01,
       LS_OBJECT_BOM_MAT    TYPE AENV_API01,
       LS_OBJECT_DOC        TYPE AENV_API01,
       LS_CHANGE_HEADER_CUS TYPE CCCI_AENR.
  DATA:LT_OBJMGREC LIKE AEOI_API01 OCCURS WITH HEADER LINE.
  DATA:CHANGE_HEADER02 TYPE AENR_API02.

*  DATA: LEAD_CHANGE_NO  TYPE  /PLMB/AENNR.


  "get EC header
  CALL FUNCTION 'CCAP_ECN_HEADER_READ'
    EXPORTING
      CHANGE_NO       = LEAD_CHANGE_NO
    IMPORTING
      CHANGE_HEADER   = CHANGE_HEADER02
    EXCEPTIONS
      NO_RECORD_FOUND 1
      ERROR           2
      OTHERS          3.

  MOVE SY-SUBRC TO EP_SUBRC.
  CHECK  EP_SUBRC .





  DATABEGIN OF LS_UOBJ,
          MATERIAL  TYPE MATNR,
          PLANT     TYPE WERKS_D,
          BOM_USAGE TYPE CC_STLAN,
        END OF LS_UOBJ.

  DATA: IT_AEOI LIKE AEOI OCCURS WITH   HEADER LINE.

  SELECT AENNR
        AETYP
        OBJKT
        USOBJ
  INTO CORRESPONDING FIELDS OF TABLE IT_AEOI
    FROM AEOI
    WHERE AENNR = LEAD_CHANGE_NO
    AND AETYP '02'.

  LOOP AT IT_AEOI.

    MOVE IT_AEOI-USOBJ TO LS_UOBJ.
    MOVE-CORRESPONDING LS_UOBJ TO  LT_OBJMGREC.
    LT_OBJMGREC-BOM_CAT = IT_AEOI-OBJKT+0(1).

    APPEND LT_OBJMGREC.

  ENDLOOP.



  MOVE-CORRESPONDING CHANGE_HEADER02 TO LS_CHANGE_HEADER.
*  LS_CHANGE_HEADER-STATUS       = '01'."#### ###
*  LS_CHANGE_HEADER-FUNCTION    = '1'."####
  LS_CHANGE_HEADER_CUS-XFLAG    'X'.
  LS_OBJECT_BOM_MAT-ACTIVE      'X'.
  LS_OBJECT_BOM_MAT-OBJ_REQU    'X'.
  LS_OBJECT_BOM_MAT-MGTREC_GEN  'X'.
*  LS_OBJECT_BOM_MAT-GEN_NEW    = 'X'.


  LS_OBJECT_MAT-ACTIVE          'X'.
  LS_OBJECT_MAT-OBJ_REQU        'X'.
  LS_OBJECT_MAT-MGTREC_GEN      'X'.

  LS_OBJECT_DOC-ACTIVE          'X'.
  LS_OBJECT_DOC-OBJ_REQU        'X'.
  LS_OBJECT_DOC-MGTREC_GEN      'X'.

  LS_CHANGE_HEADER-VALID_FROM    = LV_EFFECTIVE_DT.

*  CALL FUNCTION 'FORMAT_DATE_4_OUTPUT'
*    EXPORTING
*      DATIN  = LV_EFFECTIVE_DT
*      FORMAT = 'DDMMYYYY'
*    IMPORTING
*      DATEX  = LS_CHANGE_HEADER-VALID_FROM.

  CLEAR: LS_CHANGE_HEADER-INDATE_RULE,
         LS_CHANGE_HEADER-OUTDATE_RULE.

  "change date first and then change status to 2.
  CALL FUNCTION 'CCAP_ECN_MAINTAIN'
    EXPORTING
      CHANGE_HEADER      = LS_CHANGE_HEADER
      OBJECT_BOM_MAT     = LS_OBJECT_BOM_MAT
      OBJECT_MAT         = LS_OBJECT_MAT
      OBJECT_DOC         = LS_OBJECT_DOC
      FL_SYNCH           ' '
      FL_COMMIT_AND_WAIT 'X'
      FL_NO_COMMIT_WORK  ''
    TABLES
      OBJMGREC           = LT_OBJMGREC
    EXCEPTIONS
      ERROR              1
      OTHERS             2.

  MOVE SY-SUBRC TO EP_SUBRC.
  CHECK  EP_SUBRC .

ENDFUNCTION.

posted @ 2021-01-31 11:29  無名  阅读(539)  评论(0编辑  收藏  举报
Twttafku@163.com
十年树木,百年树人