SAP BAPI 批量修改物料主數據增強字段

通過屏幕增強,我在MM01中增強兩個字段


image.png
  • 數據定義
* BAPI數據聲明
DATA: CLIDAINP  LIKE BAPI_MARA_GA, "客戶端層次物料數據
      CLIDAOUT  LIKE  BAPI_MARA,    "客戶端層次物料數據
      CLIDAOUTX LIKE  BAPI_MARAX,  "BAPI_MARA 的復選框結構
      HEADDATA  LIKE  BAPIMATHEAD,  "帶有控制信息的表頭段
      RETURN    LIKE  BAPIRET2,     "返回參數
      RETURNMES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE.
DATA:LT_EXTENSION  TYPE STANDARD TABLE OF BAPIPAREX , "參考結構
     LS_EXTENSION  TYPE BAPIPAREX,
     LT_EXTENSIONX TYPE STANDARD TABLE OF BAPIPAREXX , "參考結構
     LS_EXTENSIONX TYPE BAPIPAREXX.
DATA:WA_ZEXTEN  LIKE BAPI_TE_MARA,
     WA_ZEXTENX LIKE BAPI_TE_MARAX.
  • 讀取物料數據
      CALL FUNCTION 'BAPI_MATERIAL_GET_ALL'
        EXPORTING
          MATERIAL   = GS_TAB-MATNR
        IMPORTING
          CLIENTDATA = CLIDAINP
        TABLES
          RETURN     = RETURNMES.
      IF SY-SUBRC EQ 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
      ENDIF.

BAPI_MATERIAL_GET_ALL 這個FUNCTION可以取出該物料下的基礎數據

  • 抬頭數據 ,物料和視圖維護
      HEADDATA-MATERIAL    = GS_TAB-MATNR.
      HEADDATA-BASIC_VIEW  = 'X'.

      WA_ZEXTEN-MATERIAL    = GS_TAB-MATNR.
      "物料是必須要給的,不然報S類型的消息,但是不更新MARA表
      WA_ZEXTEN-ZJPAUDIT = GS_TAB-JPAUDIT.
      "要更新的字段
      LS_EXTENSION-STRUCTURE = 'BAPI_TE_MARA'.
     "擴展結構是系統(tǒng)標準的(敲重點)
      LS_EXTENSION-VALUEPART1 = WA_ZEXTEN.
      APPEND LS_EXTENSION TO LT_EXTENSION.
      CLEAR LS_EXTENSION.

      *給更新字段打上啊X標識
     WA_ZEXTENX-MATERIAL    = GS_TAB-MATNR.
      WA_ZEXTENX-ZJPAUDIT = 'X'.
      LS_EXTENSIONX-STRUCTURE = 'BAPI_TE_MARAX'.
      LS_EXTENSIONX-VALUEPART1 = WA_ZEXTENX.
      APPEND LS_EXTENSIONX TO LT_EXTENSIONX.
      CLEAR LS_EXTENSIONX.

附加結構參考


image.png
image.png

自己往標準結構,表里面插入數據,一般通過附加結構,新建一個結構插入,插入的結構不可以提前建好引用,我的理解是你通過點擊結構的附加結構按鈕,建立的會出現(xiàn)某種勾稽關系吧。

  • CallBAPI
      CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
        EXPORTING
          HEADDATA       = HEADDATA
          CLIENTDATA     = CLIDAOUT
          CLIENTDATAX    = CLIDAOUTX
        IMPORTING
          RETURN         = RETURN
        TABLES
          RETURNMESSAGES = RETURNMES
          EXTENSIONIN    = LT_EXTENSION "敲重點
          EXTENSIONINX   = LT_EXTENSIONX."敲重點
      IF RETURN-TYPE = 'E'.
        GS_TAB-TYPE = 'E'.
        GS_TAB-MESS = RETURN-MESSAGE.
        ROLLBACK WORK.
      ELSE.
        GS_TAB-MESS = TEXT-011.
        GS_TAB-TYPE = 'S'.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
      ENDIF.
      MODIFY GT_TAB FROM GS_TAB.
      CLEAR GS_TAB.
      MESSAGE TEXT-011 TYPE 'S'.
    ELSE.
      GS_TAB-TYPE = 'E'.
      GS_TAB-MESS = TEXT-012 .
      MODIFY GT_TAB FROM GS_TAB.
      CLEAR GS_TAB.
    ENDIF.

先確定自己的前臺可以跑通,在測試bapi

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 32,292評論 2 89
  • 業(yè)務背景介紹 UF公司其產成品會根據客戶需求進行細節(jié)上零件變更,每次都需新增物料主數據以及搭建新的BOM和對應的工...
    圖逗閱讀 11,817評論 1 5
  • 4原則 原則1、聚焦最重要目標 從根本上來說,一個人想做的約到,他最終能完成的越少。想到在《聚焦,決定你企業(yè)的未來...
    heliee閱讀 473評論 0 1
  • 今天不忙 晚上來輛別克 訂球籠套 換兩個 我們分工明確 沒耽誤多少時間 換完試完車 沒問題 客戶今天晚上要 ...
    不夠窮沒有野心閱讀 157評論 0 0
  • 我跟鵝是高中同學,算是閨蜜吧。 剛上大學那會兒,微信還沒普及,我們每周都給彼此打電話,聊聊近況,有時候會眉飛色舞地...
    卷毛張Z閱讀 600評論 0 1

友情鏈接更多精彩內容