物料主数据工厂视图扩充

物料主数据业务视图扩充

BAPI:BAPI_MATERIAL_SAVEDATA

FORM frm_view_ex
  USING
    uv_beskz  TYPE beskz
    ut_xchpf  TYPE typ_t_xchpf
    us_werks  TYPE werks_d
    us_matnr  TYPE matnr.

  DATA:
    ls_plantdata    TYPE bapi_marc,
    ls_plantdatax   TYPE bapi_marcx,
    ls_zexten       LIKE bapi_te_marc,
    ls_zextenx      LIKE bapi_te_marcx,
    lt_extensionin  TYPE TABLE OF bapiparex,
    ls_extensionin  TYPE bapiparex,
    lt_extensioninx TYPE TABLE OF bapiparexx,
    ls_extensioninx TYPE bapiparexx,
    ls_return       TYPE bapiret2,               "用来判断返回情况
    ls_header       TYPE bapimathead.            "带有控制信息的表头段,也就是各视图

* 采购视图
  ls_header-purchase_view = 'X'.
* 存储视图
  ls_header-storage_view = 'X'.

* 基本视图
  ls_header-material   = us_matnr.           "物料编码

  ls_plantdata-plant   = us_werks.           "工厂
  ls_plantdatax-plant  = us_werks.           "工厂
  ls_plantdata-pur_status   = 'Z0'.          "工厂特定的物料状态
  ls_plantdatax-pur_status  = 'X '.          "工厂特定的物料状态
  ls_plantdata-pvalidfrom   = sy-datum.      "工厂特定物料状态有效的起始日期
  ls_plantdatax-pvalidfrom  = 'X '.

  READ TABLE ut_xchpf TRANSPORTING NO FIELDS
    WITH KEY matnr = us_matnr
             xchpf = 'X'.
  IF sy-subrc = 0.
    ls_plantdata-batch_mgmt   = 'X'.         "批次管理需求的标识
    ls_plantdatax-batch_mgmt  = 'X '.
  ENDIF.

* 基本数据视图2
  ls_zexten-plant            = us_werks.            "需要修改的物料编码
  ls_zexten-zzbeskz          = uv_beskz. "采购类型
*  LS_ZEXTEN-ZZSOBSL          = US_ZTMDG000D-SOBSL. "特殊采购类型
  ls_extensionin-structure   = 'BAPI_TE_MARC'.
  ls_extensionin-valuepart1  = ls_zexten.
  APPEND ls_extensionin TO lt_extensionin.
  CLEAR ls_extensionin.
  ls_extensionin-valuepart1  = ls_zexten.
  ls_zextenx-plant           = us_werks.           "需要修改的物料编码
  ls_zextenx-zzbeskz         = 'X'  .              "采购类型
*  LS_ZEXTENX-ZZSOBSL         = 'X'  .              "特殊采购类型
  ls_extensioninx-structure  = 'BAPI_TE_MARCX'.
  ls_extensioninx-valuepart1 = ls_zextenx.
  APPEND ls_extensioninx TO lt_extensioninx.
  CLEAR ls_extensioninx.
  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
      headdata     = ls_header
      plantdata    = ls_plantdata
      plantdatax   = ls_plantdatax
    IMPORTING
      return       = ls_return
    TABLES
      extensionin  = lt_extensionin
      extensioninx = lt_extensioninx.

  IF ls_return-type = 'E' OR ls_return-type = 'A'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    sy-subrc = 4.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.
  ENDIF.

  CLEAR:
    ls_return,
    ls_header,
    ls_plantdata    ,
    ls_plantdatax   .

ENDFORM.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值