I can focus on scanning technology sharing public number, you learn something new together!
- For planned orders and production orders,
When the present alternative materials, homogeneous set after the completion of checking, can follow a single homogeneous set of split amount, and does not remove material homogeneous set of alternatives (with a delete rule). Not homogeneous set on the arrangements for the production of the highest (maximum stock) components priority, other components removed.
- After the planned order processing Kitting
Select all PLAF-STLFX <> X (BOM expanded fixed identity) planned orders.
2.1 If the judgment PLAF- VFMNG (number of sets may be homogeneous)> 0, delete missing alternative sleeve material. Remove COMMITED QUANTITY, (RESB-VMENG = 0) of the assembly line.
2.2 If PLAF- VFMNG (Qi can set the number) = 0, reserved date may demand a larger amount of alternative materials (delete planned orders component)
2.3 If you have selected by homogeneous set of dismantling the planned order, then change the planned order number to be homogeneous set number.
Re batch execution MRP, conduct batch ATP check.
- After homogeneous production order processing units
3.1, if the production AFPO- VFMNG order (the number of sets may be homogeneous) <> 0, delete RESB- VMENG (commitment number) = 0 substitute material.
3.2, if the production AFPO- VFMNG order (the number of sets may be homogeneous) = 0, reserved a ticket may be the largest amount of material alternative, deleted alternative materials. (Delete work order component)
3.3, if the selected "by a single homogeneous set of results split work" , according AFPO- VFMNG (number of sets may be homogeneous) update work orders.
下面分享需求里用到的主要功能:
1,删除计划订单组件,删除生产订单组件 , 对应前台事务码分别是 MD12 , CO02
2,修改计划订单总订单数量, 对应前台事务码 MD12
3,修改工单总数量, 对应前台事务码 CO02
1.删除订单组件用BAPI:
*&---------------------------------------------------------------------* *& Form FRM_DEAL_DD01 *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> LT_RESBKEYS *&---------------------------------------------------------------------* FORM frm_deal_dd01 TABLES pt_resbkeys TYPE coxt_t_resbdel. DATA: lt_return TYPE STANDARD TABLE OF bapiret2, lv_error TYPE flag. CHECK pt_resbkeys[] IS NOT INITIAL. * BAPI to delete the components of Production Order CALL FUNCTION 'CO_XT_COMPONENTS_DELETE' EXPORTING it_resbkeys_to_delete = pt_resbkeys[] IMPORTING e_error_occurred = lv_error TABLES ct_bapireturn = lt_return EXCEPTIONS delete_failed = 1 OTHERS = 2. IF lv_error IS INITIAL. PERFORM change_flag_set(saplcozv). * CALL FUNCTION 'CO_IT_SET_FLG_ITAB_NEW'. CALL FUNCTION 'CO_XT_ORDER_PREPARE_COMMIT'. COMMIT WORK AND WAIT. LOOP AT gt_data ASSIGNING FIELD-SYMBOL(<gf_data>) WHERE aufnr = gs_key-aufnr OR plnum = gs_key-plnum. <gf_data>-ctype = gc_s. ENDLOOP. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. CLEAR: gv_cmsg. LOOP AT lt_return INTO DATA(ls_return1) WHERE type CA 'EAX'. MESSAGE ID ls_return1-id TYPE ls_return1-type NUMBER ls_return1-number WITH ls_return1-message_v1 ls_return1-message_v2 ls_return1-message_v3 ls_return1-message_v4 INTO DATA(lv_message). gv_ctype = gc_e. gv_cmsg = |{ lv_message };{ gv_cmsg }|. CLEAR: lv_message. ENDLOOP. LOOP AT gt_data ASSIGNING <gf_data> WHERE aufnr = gs_key-aufnr OR plnum = gs_key-plnum. <gf_data>-ctype = gc_e. <gf_data>-cmsg = gv_cmsg. ENDLOOP. ENDIF. ENDFORM.
这步现在测试,删除生产订单OK ,删除计划订单也没有报错,但是没有删除成功, 正在找问题,
放开CALL FUNCTION 'CO_IT_SET_FLG_ITAB_NEW'.
再测试一次
需求数量 和 可用性检查数量 的对比
已经走完commit work 但还是不能删除成功
本来 103102-0000HL-09 这一行应该被删除,
2,修改计划订单总订单数量
*&---------------------------------------------------------------------* *& Form FRM_DEAL_PL *&---------------------------------------------------------------------* *& 更改计划订单的数量 为可齐套数量 *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_deal_pl . DATA:ls_headerdata TYPE bapiplaf_i2, ls_headerdatax TYPE bapiplaf_i2x, ls_return TYPE bapireturn1. ls_headerdata-total_plord_qty = gs_data-qtmng. ls_headerdatax-total_plord_qty = 'X'. **FIXED_SCRAP_QTY "计划报废数量 字段AVMNG CALL FUNCTION 'BAPI_PLANNEDORDER_CHANGE' EXPORTING plannedorder = gs_data-plnum headerdata = ls_headerdata headerdatax = ls_headerdatax IMPORTING return = ls_return. IF ls_return-type CA 'EXA'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 INTO DATA(lv_message). gs_data-ctype = gc_e. gs_data-cmsg = lv_message. gs_data-sffc = abap_true. APPEND gs_data TO gt_data. CLEAR gs_data. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. gs_data-sffc = abap_true. gs_data-ctype = gc_s. gs_data-cmsg = '更改计划订单的数量成功'(004). ENDIF. ENDFORM.
3.修改工单总数量,
*&---------------------------------------------------------------------* *& Form FRM_DEAL_DD02 *&---------------------------------------------------------------------* *& text *&---------------------------------------------------------------------* *& --> p1 text *& <-- p2 text *&---------------------------------------------------------------------* FORM frm_deal_dd02 . DATA: ls_orderdata LIKE bapi_pp_order_change, "修改结构 ls_orderdatax LIKE bapi_pp_order_changex, ls_order_status LIKE bapi_order_status, lv_otype LIKE bapi_order_copy-order_type, lv_bapiflag LIKE bapiflag-bapiflag, ls_return LIKE bapiret2. IF p_dd02 EQ abap_true. ls_orderdata-quantity = gs_data-qtmng. ls_orderdatax-quantity = 'X'. CALL FUNCTION 'BAPI_PRODORD_CHANGE' EXPORTING number = gs_data-aufnr orderdata = ls_orderdata orderdatax = ls_orderdatax IMPORTING return = ls_return order_type = lv_otype order_status = ls_order_status master_data_read = lv_bapiflag. IF ls_return-type CA 'EXA'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4 INTO DATA(lv_message). gs_data-ctype = gc_e. gs_data-cmsg = lv_message. gs_data-sffc = abap_true. APPEND gs_data TO gt_data. CLEAR gs_data. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. gs_data-sffc = abap_true. gs_data-ctype = gc_s. gs_data-cmsg = '按照afpo-vfmng (可齐套数量)更新工单成功'(003). APPEND gs_data TO gt_data. CLEAR gs_data. ENDIF. ENDIF. ENDFORM.