SAP ABAP BAPI_PRODORD_CHANGE 修改生产订单基本信息

其实用两个函数:

BAPI_PRODORD_SCHEDULE

BAPI_PRODORD_CHANGE

l_aufnr --为定义的工单号
复制代码
    l_aufnr =  <fs_alv>-aufnr.
      "加上前导零
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = l_aufnr  "生产订单号
        IMPORTING
          output = l_aufnr. "生产订单号
      IF <fs_alv>-terkz IS NOT INITIAL.
        iw_aufnr-order_number = l_aufnr.
        APPEND iw_aufnr TO it_aufnr.
        CALL FUNCTION 'BAPI_PRODORD_SCHEDULE'
          EXPORTING
            sched_type               = <fs_alv>-terkz
*   FWD_DLV_ORIGIN           =
*   FWD_DLV_DATE             =
*   FWD_DLV_TIME             =
*   FWD_DLV_OFFSET           =
*   FWD_DLV_UNIT             =
*   FWD_BEG_ORIGIN           =
*   FWD_BEG_DATE             =
*   FWD_BEG_TIME             =
*   FWD_BEG_OFFSET           =
*   FWD_BEG_UNIT             =
*   BCK_DLV_ORIGIN           =
*   BCK_DLV_DATE             =
*   BCK_DLV_TIME             =
*   BCK_DLV_OFFSET           =
*   BCK_DLV_UNIT             =
*   BCK_BEG_ORIGIN           =
*   BCK_BEG_DATE             =
*   BCK_BEG_TIME             =
*   BCK_BEG_OFFSET           =
*   BCK_BEG_UNIT             =
*   WORK_PROCESS_GROUP       = 'COWORK_BAPI'
*   WORK_PROCESS_MAX         = 99
* IMPORTING
*   RETURN                   =
          TABLES
            orders                   = it_aufnr
*   DETAIL_RETURN            =
*   APPLICATION_LOG          =
                  .
        COMMIT WORK.
      ENDIF.

      CLEAR:it_wo,it_wox.
      it_wo-quantity  = <fs_alv>-gamng."修改数量
      it_wox-quantity  = 'X'."修改数量标志
      it_wo-basic_start_date  = <fs_alv>-gstrp."修改开始日期
      it_wox-basic_start_date  = 'X'."修改开始日期标志
      it_wo-basic_end_time = '235900'. "kaven20250211 强制附加一个时间,否则可能提前一天
      it_wo-basic_end_date  = <fs_alv>-gltrp."修改结束日期
      it_wox-basic_end_date  = 'X'."修改结束日期标志

      CALL FUNCTION 'BAPI_PRODORD_CHANGE'
        EXPORTING
          number     = l_aufnr
          orderdata  = it_wo
          orderdatax = it_wox
        IMPORTING
          return     = errmsg.
      IF errmsg-type = 'E' OR errmsg-type = 'A'.
        message = errmsg-message.
        <fs_alv>-type = 'E'.
        CONCATENATE errmsg-message '  ' <fs_alv>-msg INTO <fs_alv>-msg.
      ELSE.
        COMMIT WORK.
        message = '生产订单修改成功!'.
        <fs_alv>-msg = message.
        <fs_alv>-type  = 'S'.
      ENDIF.
复制代码

 

posted @   轻烟随风  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示