zoukankan      html  css  js  c++  java
  • 使用CSAP_MAT_BOM_MAINTAIN 批量修改BOM状态

    大多情况使用BDC批量修改 这次使用 CSAP_MAT_BOM_MAINTAIN 函数 进行批量修改

    TABLES:MAST,STKO,STZU.

    " 获取数据至内表 

    FORM FRM_GET_DATA .
      SELECT
         MATNR
         WERKS
         STLAN
         S~STLNR
         S~STLAL
         S~STLST
         S~BMEIN
         S~BMENG
         S~STKTX
         S~LABOR
         S~CADKZ
        FROM MAST AS M INNER JOIN STKO AS S
        ON S~STLNR = M~STLNR AND S~STLAL = M~STLAL
        INTO CORRESPONDING FIELDS OF TABLE GT_LIST
        WHERE MATNR IN S_MATNR
        AND WERKS = P_WERKS
        AND S~STLTY = 'M' AND S~STLST = '02'." AND S~STLNR IN S_STLNR.

      SELECT * FROM STZU INTO TABLE GT_STZU FOR ALL ENTRIES IN GT_LIST
        WHERE STLTY = 'M' AND STLNR = GT_LIST-STLNR.
    ENDFORM.

    " 更改BOM状态 注意传入的日期使用函数中的类型 

    FORM FRM_CHANGE_DATA .
      DATA: L_STKO TYPE  STKO_API01. 

           DATA: L_WARNING TYPE TABLE OF CAPIFLAG-FLWARNING WITH HEADER LINE,
           LT_STKO2 TYPE TABLE OF STKO_API02 WITH HEADER LINE,
           L_DATE   TYPE CSAP_MBOM-DATUV. 

      DATA: L_RETURN(50) TYPE C.
      LOOP AT GT_LIST INTO GS_LIST WHERE SEL = 'X'.
          CLEAR L_DATE.
        READ TABLE GT_STZU INTO GS_STZU WITH KEY STLNR = GS_LIST-STLNR.
          IF SY-SUBRC = 0.
              CLEAR:L_STKO.
            L_STKO-BASE_QUAN  = GS_LIST-BMENG.
    *         L_STKO-BASE_UNIT  = GS_LIST-BMEIN.    "此为错误行 不能修改单位 传入则报错
            L_STKO-BOM_STATUS = '01'.
            L_STKO-ALT_TEXT   = GS_LIST-STKTX.
            L_STKO-LABORATORY = GS_LIST-LABOR.
            L_STKO-BOM_TEXT   = GS_STZU-ZTEXT.
            L_STKO-BOM_GROUP  = GS_STZU-EXSTL.
            L_STKO-AUTH_GROUP = GS_STZU-STLBE.
            L_STKO-CAD_IND    = GS_LIST-CADKZ.
         ENDIF.
        L_DATE = SY-DATUM.
        CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
        EXPORTING
          MATERIAL           = GS_LIST-MATNR
          PLANT                 = GS_LIST-WERKS
          BOM_USAGE       = GS_LIST-STLAN
              ALTERNATIVE       = GS_LIST-STLAL
              VALID_FROM        = L_DATE

               I_STKO                    =  L_STKO

               FL_COMMIT_AND_WAIT        'X'
               FL_DEFAULT_VALUES  = 'X'
         IMPORTING
           FL_WARNING  = L_WARNING
            O_STKO    = LT_STKO2.
        CLEAR L_RETURN.
        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
         EXPORTING
           msgid               = sy-msgid
           msgnr               = sy-msgno
           msgv1               = sy-msgv1
           msgv2               = sy-msgv2
           msgv3               = sy-msgv3
           msgv4               = sy-msgv4
         IMPORTING
           message_text_output = L_return.
         IF SY-SUBRC <> 0.
        CONCATENATE 状态更改失败!' L_return INTO GS_LIST-MESSAGE .
        ELSE.
           GS_LIST-STLST = '01'.
           GS_LIST-MESSAGE =   '激活成功'.
        ENDIF.
        MODIFY GT_LIST FROM GS_LIST  .
      ENDLOOP.
    ENDFORM.

  • 相关阅读:
    diy_markdown 的 html 显示
    根据 vuex 的 this.$store.dispatch() 返回值 处理逻辑
    vue 项目配置: 局域网 ip 发布
    vue-markdown 之 markdown-it, 以及 table of content 的实现:markdown-it-toc-and-anchor
    程序员面试金典-面试题 08.05. 递归乘法
    程序员面试金典-面试题 08.04. 幂集
    程序员面试金典-面试题 08.03. 魔术索引
    程序员面试金典-面试题 08.02. 迷路的机器人
    程序员面试金典-面试题 08.01. 三步问题
    程序员面试金典-面试题 05.08. 绘制直线
  • 原文地址:https://www.cnblogs.com/WACBZWY/p/11139748.html
Copyright © 2011-2022 走看看