BOM修改

DATA T_STPO TYPE TABLE OF STPO_API02.

*      Open BOM
DATA VALID_FROM TYPE  CSAP_MBOM-DATUV.
VALID_FROM = SY-DATUM.

CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
  EXPORTING
    MATERIAL    = '8G210002'
    PLANT       = '1001'
    BOM_USAGE   = '1'
    ALTERNATIVE = '10'
    VALID_FROM  = VALID_FROM "此处比较坑,不能直接用系统变量
*   CHANGE_NO   =
*   REVISION_LEVEL         =
*   FL_NO_CHANGE_DOC       = ' '
*     IMPORTING
*   O_STKO      =
*   FL_WARNING  =
  TABLES
    T_STPO      = T_STPO
*   T_DEP_DATA  =
*   T_DEP_DESCR =
*   T_DEP_ORDER =
*   T_DEP_SOURCE           =
*   T_DEP_DOC   =
  EXCEPTIONS
    ERROR       = 1
    OTHERS      = 2.

LOOP AT T_STPO ASSIGNING FIELD-SYMBOL(<FS_STPO>) WHERE ITEM_NO EQ 10.

*  CLEAR:<FS_STPO>-AI_GROUP,<FS_STPO>-AI_STRATEG,<FS_STPO>-AI_PRIO,<FS_STPO>-USAGE_PROB.

  <FS_STPO>-FLDELETE = 'X'."删除标识
*      维护BOM
  CALL FUNCTION 'CSAP_BOM_ITEM_MAINTAIN'
    EXPORTING
      I_STPO = <FS_STPO> "Headline
*     FL_DEP_ALE_CONFORM       = ' '
*         IMPORTING
*     O_STPO =
*     FL_WARNING               =
*       TABLES
*     T_DEP_DATA               =
*     T_DEP_DESCR              =
*     T_DEP_ORDER              =
*     T_DEP_SOURCE             =
*     T_DEP_DOC                =
    EXCEPTIONS
      ERROR  = 1
      OTHERS = 2.
  IF SY-SUBRC = 1.
    WRITE: /'BOM 更改失败。',
            50 '组件 异常'.

  ELSEIF SY-SUBRC = 2.

    WRITE: /'BOM 更改失败。',
            50 '异常'.

  ENDIF.

*      关闭BOM
  CALL FUNCTION 'CSAP_MAT_BOM_CLOSE'
*       EXPORTING
*         FL_COMMIT_AND_WAIT       = 'X'
*       IMPORTING
*         FL_WARNING               =
    EXCEPTIONS
      ERROR  = 1
      OTHERS = 2.
  IF SY-SUBRC = 0.
*        WRITE: /'S:','BOM ',g_matnr-matnr, '更改己更新。'.
    WRITE: /'BOM 更改己更新。'.
*        scounter = scounter + 1.
    ULINE.
  ENDIF.
ENDLOOP.


关键词: ABAP PP

网友评论

发表评论