BAPI_MATERIAL_SAVEDATA - ooxxvv/MySAPnotes GitHub Wiki

PageOutline

BAPI_MATERIAL_SAVEDATA

  • 新增或修改 Material Master 。
  • 當 Material 不存在時新增,存在時將資料覆蓋 。
  • 可參考系統中的文件。
  • Classification 需用 BAPI_OBJCL_CHANGE

EXPORTING

IMPORTING

TABLES

EXCEPTIONS

Attributes

Methods

Code

{{{#!abap DATA: lt_headdata LIKE bapimathead, lt_clientdata LIKE bapi_mara, lt_clientdatax LIKE bapi_marax, lt_materialdescription LIKE bapi_makt OCCURS 0 WITH HEADER LINE, lt_materiallongtext LIKE bapi_mltx OCCURS 0 WITH HEADER LINE. FIELD-SYMBOLS <text_line> TYPE ANY. DATA: ls_return LIKE bapiret2, l_msg LIKE zpmara-msg, l_text_line(17) TYPE c.

CLEAR p_err. *------------Insert material master lt_headdata-material =lw_zpmara-matnr. "物料號碼 lt_headdata-ind_sector ='M'. "產業領域 lt_headdata-matl_type =lw_zpmara-mtart. "物料類型 lt_headdata-basic_view ='X'. "基本資料檢視

  • lt_headdata-sales_view =space. "銷售檢視
  • lt_headdata-purchase_view =space. "採購檢視
  • lt_headdata-mrp_view =space. "物料需求計畫 (MRP) 檢視
  • lt_headdata-forecast_view =space. "預測檢視
  • lt_headdata-work_sched_view=space. "工作排程檢視
  • lt_headdata-prt_view =space. "生產資源 / 工具 (PRT) 檢視
  • lt_headdata-storage_view =space. "儲存檢視
  • lt_headdata-warehouse_view=space. "倉庫管理檢視
  • lt_headdata-quality_view =space. "品質管理檢視
  • lt_headdata-account_view =space. "會計檢視
  • lt_headdata-cost_view =space . "成本計算檢視

基本資料******** *填入所需的資料 lt_clientdata-matl_group=lw_zpmara-matkl. *如果此資料要修改,則也要加上flag,否則不會有動作 lt_clientdatax-matl_group='X'. lt_clientdata-old_mat_no=lw_zpmara-bismt. lt_clientdatax-old_mat_no='X'. lt_clientdata-base_uom=lw_zpmara-meins. lt_clientdatax-base_uom='X'. lt_clientdata-pur_status=lw_zpmara-mstae. lt_clientdatax-pur_status='X'. lt_clientdata-division=lw_zpmara-spart. lt_clientdatax-division='X'. lt_clientdata-extmatlgrp=lw_zpmara-extwg. lt_clientdatax-extmatlgrp='X'.

基本資料內文***** CLEAR lt_materialdescription[]. lt_materialdescription-langu='E'. lt_materialdescription-matl_desc=lw_zpmara-maktx. APPEND lt_materialdescription. lt_materialdescription-langu='M'. APPEND lt_materialdescription.

寫EN語言內文********** CLEAR lt_materiallongtext[]. l_text_line='lw_zpmara-bdtxt00'. lt_materiallongtext-applobject='MATERIAL'. lt_materiallongtext-text_name=lw_zpmara-matnr. lt_materiallongtext-text_id='GRUN'. lt_materiallongtext-langu='E'. 換行符號 lt_materiallongtext-format_col=''.

DO 10 TIMES. l_text_line+15=sy-index. ASSIGN (l_text_line) TO <text_line>. IF sy-subrc EQ 0. lt_materiallongtext-text_line=<text_line>. APPEND lt_materiallongtext. ENDIF. ENDDO.

寫ZF語言內文*************** l_text_line='lw_zpmara-bdtxt00'. lt_materiallongtext-langu='M'. DO 10 TIMES. l_text_line+15=sy-index. ASSIGN (l_text_line) TO <text_line>. IF sy-subrc EQ 0. lt_materiallongtext-text_line=<text_line>. APPEND lt_materiallongtext. ENDIF. ENDDO.

CLEAR ls_return.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING headdata =lt_headdata clientdata =lt_clientdata clientdatax =lt_clientdatax IMPORTING return =ls_return TABLES materialdescription=lt_materialdescription materiallongtext =lt_materiallongtext.

****************check error & save message & commit & rollback IF ls_return-type EQ 'S' . lw_zpmara-msg=space. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. WAIT UP TO 5 SECONDS. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CLEAR l_msg. CONCATENATE '(' ls_return-type ')' ls_return-message INTO l_msg. CONDENSE l_msg. ENDIF. }}}

{{{#!comment -------------------- 以下的部份是固定的,不要變動 ----- }}}

⚠️ **GitHub.com Fallback** ⚠️