BADI - 采购申请增强ME_PROCESS_REQ_CUST行项目增强PROCESS_ITEM

需求:如果行项目有文本,则修改行项目

实现步骤

  • 使用事务代码 SE19或SE18 为 BADI(ME_PROCESS_REQ_CUST )创建实现。
  • 单击方法PROCESS_ITEM
  • 使用方法 IF_LONGTEXTS_MM~GET_TEXTOBJECT 获取订单项文本对象 ID。
  • 使用方法 IF_LONGTEXTS_MM~GET_TYPES 获取订单项文本 ID 详细信息
  • 使用 IF_LONGTEXTS_MM~GET_TEXT 获取行项目长文本数据
  • 使用方法 IF_PURCHASE_REQUISITION_ITEM~GET_DATA 获取项目级别数据
  • 使用方法 IF_PURCHASE_REQUISITION_ITEM~SET_DATA 修改项目级别数据

示例代码

METHOD if_ex_me_process_req_cust~process_item.

  DATA : lv_tdobject  TYPE tdobject,
         lv_metafield TYPE mmpur_metafield,
         lt_texttypes TYPE mmpur_t_texttypes,
         ls_texttypes TYPE mmpur_texttypes,
         lt_textlines TYPE mmpur_t_textlines,
         ls_textlines TYPE mmpur_textlines.

** Get Text Object **
  CLEAR : lv_metafield, lv_tdobject.
  im_item->if_longtexts_mm~get_textobject(
        IMPORTING
          ex_tdobject = lv_tdobject
          ex_metafield = lv_metafield ).
** Get Text IDs **
  REFRESH : lt_texttypes.
  CLEAR   : ls_texttypes.
  im_item->if_longtexts_mm~get_types(
        IMPORTING
          ex_texttypes = lt_texttypes ).

** Reading Item Text **
  LOOP AT lt_texttypes INTO ls_texttypes WHERE tdid EQ 'B01'.
    im_item->if_longtexts_mm~get_text(
                            EXPORTING
                              im_tdid           = ls_texttypes-tdid
                              im_texttype       = ls_texttypes
                            IMPORTING
                              ex_textlines      = lt_textlines
                                     ).
  ENDLOOP.

  READ TABLE lt_textlines INTO ls_textlines INDEX 1.
  IF ls_textlines-tdline IS INITIAL.
    RETURN.
  ENDIF.

** Updating Item Data
  DATA(lw_item) = im_item->get_data( ).

  IF lw_item-bsart EQ 'NB' AND ( lw_item-werks EQ '2200' OR lw_item-werks EQ '1106' ).
    lw_item-fixkz = 'X'.

    im_item->set_data( im_data = lw_item ).

    DATA(lw_itemx) = im_item->get_datax( ).
    lw_itemx-fixkz = 'X'.
    im_item->set_datax( im_datax = lw_itemx ).
  ENDIF.

ENDMETHOD.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值