matinal:给工单打删除标识 BAPI:BAPI_PRODORD_SET_DELETION_FLAG

这段代码展示了如何通过BAPI_PRODORD_SET_DELETION_FLAG函数来设置工单的删除标志。它首先从数据表中读取选定行,然后调用BAPI进行删除操作。如果遇到错误,程序会进行回滚并显示错误消息;否则,提交事务并更新状态信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BAPI:BAPI_PRODORD_SET_DELETION_FLAG

FORM frm_post .

  DATA:lt_rows   TYPE lvc_t_row,
       ls_return TYPE bapiret2,
       lt_aufnr  TYPE TABLE OF bapi_order_key WITH HEADER LINE,
       lt_detail TYPE TABLE OF bapi_order_return WITH HEADER LINE.
  DATA:lv_msg TYPE string.

  "获取选中行
  CALL METHOD go_grid->get_selected_rows
    IMPORTING
      et_index_rows = lt_rows.

  LOOP AT lt_rows INTO DATA(ls_rows).

    CLEAR:lt_aufnr,lt_aufnr[],lt_detail,ls_return,lv_msg.
    READ TABLE gt_data INTO gs_data INDEX ls_rows-index.
    IF sy-subrc EQ 0.
      "需要执行删除的工单存内表
      lt_aufnr-order_number = gs_data-aufnr.
      APPEND lt_aufnr.
      CLEAR:lt_aufnr.

      CALL FUNCTION 'BAPI_PRODORD_SET_DELETION_FLAG'
        IMPORTING
          return        = ls_return
        TABLES
          orders        = lt_aufnr
          detail_return = lt_detail.

      LOOP AT lt_detail WHERE type = 'E' OR type EQ 'A' OR type EQ 'X'.
        CONCATENATE lv_msg lt_detail-message INTO lv_msg SEPARATED BY '/'.
      ENDLOOP.

      IF sy-subrc NE 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.

        gs_data-status = icon_green_light.
        gs_data-mesg = '删除成功'.
      ELSE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
        gs_data-status = icon_red_light.
        gs_data-mesg = lv_msg.
      ENDIF.
      MODIFY gt_data FROM gs_data INDEX ls_rows-index TRANSPORTING status mesg.
      CLEAR:gs_data.
    ENDIF.
    CLEAR:ls_rows.
  ENDLOOP.
ENDFORM.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值