zoukankan      html  css  js  c++  java
  • 工单组件更改BAPI

    2018.06.02 看见群里有人发的代码。 拷贝下来,修改下~~~~~~

    REPORT YTEST_VL02N.
    
    
     TYPES:
        BEGIN OF TY_OUT,
          MATNR    TYPE MARA-MATNR ,
          MAKTX    TYPE MAKT-MAKTX,
          MAKTX_Z  TYPE MAKT-MAKTX,
          POSNR    TYPE RESB-RSPOS,
          IDNRK    TYPE MARA-MATNR,
          MEINS    TYPE MEINS     ,
          MENGE    TYPE MENGE_D   ,
          AUFNR    TYPE AFKO-AUFNR,
          LGORT    TYPE MARC-LGPRO,
          TEXT     TYPE CHAR100   ,
          END OF TY_OUT.
    
      DATA LT_DATA TYPE STANDARD TABLE OF TY_OUT WITH HEADER LINE .
    
        LT_DATA-MATNR =  '000000000089006103'.
        LT_DATA-IDNRK =  '000000000029005001'.
        LT_DATA-POSNR =  '0010' .
        LT_DATA-MEINS = 'KG'.
        LT_DATA-MENGE = '6000' .
        LT_DATA-AUFNR = '000010003033'.
        LT_DATA-LGORT = '1501' .
      APPEND LT_DATA .
    
    
      DATA L_MSG TYPE STRING.
      DATA:L_NUMBER                    LIKE BAPI_NETWORK_LIST-NETWORK,
           RETURN                      LIKE BAPIRET2,
           LI_COMPONENTS_CHANGE        LIKE TABLE OF BAPI_NETWORK_COMP_CHANGE,
           LW_COMPONENTS_CHANGE        LIKE BAPI_NETWORK_COMP_CHANGE,
           LI_COMPONENTS_CHANGE_UPDATE LIKE TABLE OF BAPI_NETWORK_COMP_CNG_UPD,
           LW_COMPONENTS_CHANGE_UPDATE LIKE  BAPI_NETWORK_COMP_CNG_UPD,
           E_MESSAGE_TABLE             LIKE TABLE OF BAPI_METH_MESSAGE,
           W_MESSAGE_TABLE             LIKE BAPI_METH_MESSAGE.
      DATA:LI_COMPONENTS_DETAIL LIKE TABLE OF BAPI_NETWORK_COMP_DETAIL .
      DATA:LW_COMPONENTS_DETAIL LIKE  BAPI_NETWORK_COMP_DETAIL .
    
    
      LOOP AT LT_DATA .
    
        SELECT SINGLE MAKTX INTO LT_DATA-MAKTX FROM MAKT WHERE MATNR = LT_DATA-MATNR .
        SELECT SINGLE MAKTX INTO LT_DATA-MAKTX_Z FROM MAKT WHERE MATNR = LT_DATA-IDNRK .
    
        CLEAR:LI_COMPONENTS_DETAIL,LI_COMPONENTS_DETAIL[],LI_COMPONENTS_CHANGE,LI_COMPONENTS_CHANGE[]
        ,LI_COMPONENTS_CHANGE_UPDATE,LI_COMPONENTS_CHANGE_UPDATE[],E_MESSAGE_TABLE,E_MESSAGE_TABLE[].
        CALL FUNCTION 'BAPI_NETWORK_COMP_GETDETAIL'
          EXPORTING
            NUMBER              = LT_DATA-AUFNR
          TABLES
            E_COMPONENTS_DETAIL = LI_COMPONENTS_DETAIL.
    
    
        LOOP AT LI_COMPONENTS_DETAIL INTO LW_COMPONENTS_DETAIL WHERE ITEM_NUMBER = LT_DATA-POSNR AND MATERIAL = LT_DATA-IDNRK.
          LW_COMPONENTS_CHANGE-COMPONENT = LW_COMPONENTS_DETAIL-COMPONENT.
          LW_COMPONENTS_CHANGE-ENTRY_QUANTITY = LT_DATA-MENGE.
    *      lw_components_change-base_uom = lt_data-meins.
          CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
            EXPORTING
              INPUT  = LT_DATA-MEINS
            IMPORTING
              OUTPUT = LW_COMPONENTS_CHANGE-BASE_UOM.
          LW_COMPONENTS_CHANGE-STGE_LOC = LT_DATA-LGORT.
          APPEND LW_COMPONENTS_CHANGE TO LI_COMPONENTS_CHANGE .
    
    
          LW_COMPONENTS_CHANGE_UPDATE-COMPONENT = LW_COMPONENTS_DETAIL-COMPONENT.
          IF LT_DATA-MENGE IS NOT INITIAL .
            LW_COMPONENTS_CHANGE_UPDATE-ENTRY_QUANTITY = 'X'.
          ENDIF .
          IF LT_DATA-MEINS IS NOT INITIAL .
            LW_COMPONENTS_CHANGE_UPDATE-BASE_UOM = 'X'.
          ENDIF .
          IF LT_DATA-LGORT IS NOT INITIAL .
            LW_COMPONENTS_CHANGE_UPDATE-STGE_LOC = 'X'.
          ENDIF .
          APPEND LW_COMPONENTS_CHANGE_UPDATE TO LI_COMPONENTS_CHANGE_UPDATE .
    
    
          CALL FUNCTION 'BAPI_NETWORK_COMP_CHANGE'
            EXPORTING
              NUMBER                     = LT_DATA-AUFNR
            IMPORTING
              RETURN                     = RETURN
            TABLES
              I_COMPONENTS_CHANGE        = LI_COMPONENTS_CHANGE
              I_COMPONENTS_CHANGE_UPDATE = LI_COMPONENTS_CHANGE_UPDATE
              E_MESSAGE_TABLE            = E_MESSAGE_TABLE.
    
    
          LOOP AT E_MESSAGE_TABLE INTO W_MESSAGE_TABLE WHERE MESSAGE_TYPE = 'E'.
            CONCATENATE LT_DATA-AUFNR '-' LT_DATA-MATNR '-' LT_DATA-IDNRK '  bom组件更改失败!' W_MESSAGE_TABLE-MESSAGE_TEXT
            INTO LT_DATA-TEXT.
    *        lt_data-zicon = '@5C@'.
            MODIFY LT_DATA.
          ENDLOOP .
          IF E_MESSAGE_TABLE[] IS INITIAL .
    
          CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
            EXPORTING
              WAIT = 'X'.
    
    
            LT_DATA-TEXT = '更改成功!'.
    *        lt_data-zicon = '@5B@'.
            MODIFY LT_DATA.
          ENDIF .
    
          CLEAR LW_COMPONENTS_CHANGE.
          CLEAR LW_COMPONENTS_CHANGE_UPDATE .
          CLEAR E_MESSAGE_TABLE .
          CLEAR E_MESSAGE_TABLE[].
    
        ENDLOOP.
    
        IF SY-SUBRC <> 0 .
          CONCATENATE LT_DATA-AUFNR '-' LT_DATA-MATNR '-' LT_DATA-IDNRK '   bom组件更改失败!' '原因:BOM单中未发现该组件!'
          INTO LT_DATA-TEXT.
    *      lt_data-zicon = '@5C@'.
          MODIFY LT_DATA.
        ENDIF .
    
      ENDLOOP .
  • 相关阅读:
    [LeetCode] Trips and Users 旅行和用户
    [LeetCode] Rising Temperature 上升温度
    [LeetCode] Delete Duplicate Emails 删除重复邮箱
    [LeetCode] Department Top Three Salaries 系里前三高薪水
    Spring boot Jackson基本演绎法&devtools热部署
    使用spring tool suite(STS)工具创建spring boot项目和出现错误后的处理
    Spring Boot 2.0官方文档之 Actuator
    springboot 使用webflux响应式开发教程(二)
    SpringBoot在自定义类中调用service层等Spring其他层
    springBoot单元测试-模拟MVC测试
  • 原文地址:https://www.cnblogs.com/hdchen/p/9125236.html
Copyright © 2011-2022 走看看