创建生产订单 BAPI

  DATA: orderdata    LIKE bapi_pp_order_create,
        order_number LIKE bapi_order_key-order_number,
        order_type   LIKE bapi_order_copy-order_type,
        return       LIKE bapiret2.

  DATA: aufnr   TYPE bdcdata-fval,
        fevor   TYPE bdcdata-fval,
        subrc   TYPE syst-subrc,
        messtab TYPE STANDARD TABLE OF bdcmsgcoll.

  DATA: lt_main TYPE TABLE OF ztpp008w_main,
        ls_main TYPE ztpp008w_main,
        lt_mat  TYPE TABLE OF ztpp008w_mat,
        ls_mat  TYPE ztpp008w_mat.

  DATA: lv_rowno TYPE int4.

  LOOP AT gt_alv ASSIGNING <fs_alv> WHERE sel = 'X'.

    IF <fs_alv>-icon = icon_led_red.
      CONTINUE.
    ENDIF.
    CLEAR orderdata.
    orderdata-material_long    = <fs_alv>-matnr.    " 物料编码
    orderdata-plant            = p_werks.           " 工厂
    orderdata-planning_plant   = p_werks.           "
    orderdata-order_type       = 'ZP01'.            " 生产订单类型
    orderdata-basic_start_date = <fs_alv>-psttr.    " 开始日期
    orderdata-basic_start_time = '000000'.          "
    orderdata-basic_end_date   = <fs_alv>-pedtr.    " 结束日期
    orderdata-basic_end_time   = '240000'.          "
    orderdata-prod_version     = <fs_alv>-verid.    " 生产版本
    orderdata-quantity         = <fs_alv>-zwcjsl.   " 订单数量
    orderdata-profit_center    = <fs_alv>-prctr.    " 利润中心
    orderdata-sales_order      = <fs_alv>-zvbel.    " 销售订单号
    orderdata-sales_order_item = <fs_alv>-posnr.    " 销售订单行号

    CLEAR: return, order_number, order_type.
    CALL FUNCTION 'BAPI_PRODORD_CREATE'
      EXPORTING
        orderdata    = orderdata
      IMPORTING
        return       = return
        order_number = order_number
        order_type   = order_type.

    IF return-type = 'E' OR return-type = 'A' OR return-type = 'X'.

      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

      <fs_alv>-icon = icon_led_red.
*      <fs_alv>-res  = 'E'.
      <fs_alv>-msg  = return-message.

    ELSE.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.

      <fs_alv>-icon  = icon_led_green.
      <fs_alv>-msg   = '创建成功'(t35).
      <fs_alv>-aufnr = order_number.
    ENDIF.
  ENDLOOP.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值