采购订单创建、修改、审批增强ME21N/ME22N/ME28/ME29N

1、采购订单保存增强

1.1、POST方法

BADI:ME_PROCESS_PO_CUST

 通过POST方法中的参数im_header,获取对应的数据

订单头

"--------------------@斌将军--------------------
*Get header
  CALL METHOD im_header->get_data
    RECEIVING
      re_data = header.
*获取长文本
  REFRESH ex_textlines.
  CALL METHOD im_header->if_longtexts_mm~get_text
    EXPORTING
      im_tdid      = im_tdid
    IMPORTING
      ex_textlines = ex_textlines.

im_header->set_data( header )."更新修改 
"--------------------@斌将军--------------------

订单行

"--------------------@斌将军--------------------
"获取行
*Get Item
  CALL METHOD im_header->get_items
    RECEIVING
      re_items = items_data.

LOOP AT items_data INTO item_data.
**  First get Item Object, Second fill item data
    "获取行对象
      item_obj = item_data-item.
    "获取行字段值
      CALL METHOD item_obj->get_data
        RECEIVING
          re_data = item.
    "获取行长文本
      REFRESH ex_textlines.
      CALL METHOD item_obj->if_longtexts_mm~get_text
        EXPORTING
          im_tdid      = im_tdid
        IMPORTING
          ex_textlines = ex_textlines.

    item_obj->set_data( item )."更新修改
ENDLOOP.
"--------------------@斌将军--------------------

计划行

"--------------------@斌将军--------------------
"获取计划行
      CALL METHOD item_obj->get_schedules
        RECEIVING
          re_schedules = schedules_data.

      LOOP AT schedules_data INTO schedule_data.
        schedule_obj = schedule_data-schedule.
        CALL METHOD schedule_obj->get_data
          RECEIVING
            re_data = schedule.

schedule_obj->set_data(schedule)."更新修改
ENDLOOP. 
"--------------------@斌将军--------------------

更新字段要注意,存在有不可更新的字段,例如行项目中的不可直接更新字段,使用set_data也更新不了

1.2、CHECK方法

另外还有检查增强,点击页面检查按钮可进入。保存时也可进入。

在检查中可以直接报E类型消息,自定义报错就直接进入前台报错清单中。

另外也可以通过标准的程序,将自定义报错添加到报错清单中

"--------------------@斌将军--------------------
INCLUDE mm_messages_mac.

IF 检查错误.
mmpur_message_forced  'E' 'ZMM002' '011' '' '' '' ''.  "错误消息
ch_failed = 'X'.
ENDIF.
"--------------------@斌将军--------------------

2、采购订单审批同步外围系统增强

函数:ME_PURCHASE_DOCUMENT_DATA_SAVE

 调用接口同步数据到外围系统

"--------------------@斌将军--------------------
ENHANCEMENT 1  ZME28.    "active version
"采购订单审批发送SRM接口
CALL FUNCTION 'Z_XXX' "IN BACKGROUND TASK DESTINATION 'NONE'
  EXPORTING
    i_ekko        = E_EKKO.
ENDENHANCEMENT.
"--------------------@斌将军--------------------

 

定期更文,欢迎关注

 
 
posted @ 2021-10-25 12:02  斌将军  阅读(2184)  评论(0编辑  收藏  举报