运行效果:
代码:
*&---------------------------------------------------------------------* *& Report ZPPRTEST *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ZPPRTEST. DATA: l_plnnr TYPE plnnr. DATA: lt_plko TYPE TABLE OF bapi1012_tsk_c, lt_mapl TYPE TABLE OF bapi1012_mtk_c, lt_plpo TYPE TABLE OF bapi1012_opr_c, lt_subplpo TYPE TABLE OF bapi1012_sub_opr_c, lt_bom TYPE TABLE OF bapi1012_com_c, lt_msg TYPE TABLE OF bapiret2, ls_plko TYPE bapi1012_tsk_c, ls_mapl TYPE bapi1012_mtk_c, ls_plpo TYPE bapi1012_opr_c, ls_subplpo TYPE bapi1012_sub_opr_c, ls_bom TYPE bapi1012_com_c, ls_msg TYPE bapiret2. ***表头*** ls_plko-valid_from = sy-datum. "生效日期 ls_plko-valid_to_date = \'99991231\'. "有效期限 ls_plko-plant = \'2000\'. "工厂 ls_plko-task_list_usage = \'1\'. "用途 ls_plko-task_list_status = \'4\'. "状态 ls_plko-task_measure_unit = \'PCS\'. "单位 ls_plko-lot_size_from = 0. "批量下限 ls_plko-lot_size_to = 99999999. "批量上限 APPEND ls_plko TO lt_plko.CLEAR ls_plko. ***物料指派*** ls_mapl-material_long = \'CTCZ0185-S2V-3\'. ls_mapl-plant = \'2000\'. ls_mapl-valid_from = sy-datum. ls_mapl-valid_to_date = \'99991231\'. APPEND ls_mapl TO lt_mapl.CLEAR ls_mapl. ***作业*** ls_plpo-activity = \'0010\'. ls_plpo-denominator = 1. "用于转换工艺路线和工序单位的分母 ls_plpo-nominator = 1. "用于转换任务清单和工序计量单位的计数器 ls_plpo-work_cntr = \'23001\'. "工作中心 ls_plpo-control_key = \'ZP10\'. "控制码 ls_plpo-standard_text_key = \'1050\'. "标准内文码 ls_plpo-base_quantity = 1. "基础数量 ls_plpo-operation_measure_unit = \'PCS\'. "单位 ls_plpo-std_value_01 = 60. ls_plpo-std_value_02 = \'77.140\'. ls_plpo-std_value_03 = 0. ls_plpo-std_value_04 = 10. "制程时间 ls_plpo-std_unit_04 = \'10\'. "天数单位 ls_plpo-scrap_factor = 0. ls_plpo-valid_from = sy-datum. ls_plpo-valid_to_date = \'99991231\'. ls_plpo-cost_relevant = \'X\'. APPEND ls_plpo TO lt_plpo.CLEAR ls_plpo. ls_plpo-activity = \'0020\'. ls_plpo-denominator = 1. "用于转换工艺路线和工序单位的分母 ls_plpo-nominator = 1. "用于转换任务清单和工序计量单位的计数器 ls_plpo-work_cntr = \'DP2031\'. "工作中心 ls_plpo-control_key = \'ZP02\'. "控制码 ls_plpo-standard_text_key = \'M231\'. "标准内文码 ls_plpo-base_quantity = 600. "基础数量 ls_plpo-operation_measure_unit = \'PCS\'. "单位 ls_plpo-std_value_01 = 1. ls_plpo-std_value_02 = 0. ls_plpo-std_value_03 = 1. ls_plpo-std_value_04 = 0. ls_plpo-scrap_factor = \'0.5\'. ls_plpo-valid_from = sy-datum. ls_plpo-valid_to_date = \'99991231\'. ls_plpo-cost_relevant = \'X\'. APPEND ls_plpo TO lt_plpo.CLEAR ls_plpo. ***子作业*** ls_subplpo-sub_activity = \'0011\'. ls_subplpo-activity = \'0010\'. ls_subplpo-denominator = 1. "用于转换工艺路线和工序单位的分母 ls_subplpo-nominator = 1. "用于转换任务清单和工序计量单位的计数器 ls_subplpo-work_cntr = \'31001\'. "工作中心 ls_subplpo-control_key = \'ZP10\'. "控制码 ls_subplpo-standard_text_key = \'1061\'. "标准内文码 ls_subplpo-base_quantity = 20. "基础数量 ls_subplpo-operation_measure_unit = \'PCS\'. "单位 ls_subplpo-std_value_01 = 35. ls_subplpo-std_value_02 = 35. ls_subplpo-std_value_03 = 0. ls_subplpo-std_value_04 = 0. ls_subplpo-scrap_factor = 0. ls_subplpo-valid_from = sy-datum. ls_subplpo-valid_to_date = \'99991231\'. ls_subplpo-cost_relevant = \'X\'. APPEND ls_subplpo TO lt_subplpo.CLEAR ls_subplpo. ***组件分配*** ls_bom-valid_from = sy-datum. ls_bom-valid_to_date = \'99991231\'. ls_bom-bom_type = ls_bom-bom_type_root = \'M\'. "STKO-STLTY ls_bom-activity = \'0010\'. "工艺路线作业序号 ls_bom-item_id = \'00000001\'. "STPO-STLKN ls_bom-bom_no = ls_bom-bom_no_root = \'00007871\'. "STKO-STLNR ls_bom-alternative_bom = ls_bom-alternative_bom_root = \'01\'. "STKO-STLAL ls_bom-item_no = \'0010\'. "STPO-POSNR ls_bom-plant = \'2000\'. APPEND ls_bom TO lt_bom.CLEAR ls_bom. ls_bom-valid_from = sy-datum. ls_bom-valid_to_date = \'99991231\'. ls_bom-bom_type = ls_bom-bom_type_root = \'M\'. "STKO-STLTY ls_bom-activity = \'0010\'. "工艺路线作业序号 ls_bom-item_id = \'00000002\'. "STPO-STLKN ls_bom-bom_no = ls_bom-bom_no_root = \'00007871\'. "STKO-STLNR ls_bom-alternative_bom = ls_bom-alternative_bom_root = \'01\'. "STKO-STLAL ls_bom-item_no = \'0020\'. "STPO-POSNR ls_bom-plant = \'2000\'. APPEND ls_bom TO lt_bom.CLEAR ls_bom. ls_bom-valid_from = sy-datum. ls_bom-valid_to_date = \'99991231\'. ls_bom-bom_type = ls_bom-bom_type_root = \'M\'. "STKO-STLTY ls_bom-activity = \'0020\'. "工艺路线作业序号 ls_bom-item_id = \'00000003\'. "STPO-STLKN ls_bom-bom_no = ls_bom-bom_no_root = \'00007871\'. "STKO-STLNR ls_bom-alternative_bom = ls_bom-alternative_bom_root = \'01\'. "STKO-STLAL ls_bom-item_no = \'0030\'. "STPO-POSNR ls_bom-plant = \'2000\'. ls_bom-order_lvl = \'01\'. "虚拟件使用 ls_bom-order_path = \'01\'. "虚拟件使用 ls_bom-path = \'000001\'. "虚拟件使用 APPEND ls_bom TO lt_bom.CLEAR ls_bom. CALL FUNCTION \'BAPI_ROUTING_CREATE\' * EXPORTING * testrun = \' \' * profile = * bomusage = * application = IMPORTING group = l_plnnr * groupcounter = TABLES task = lt_plko materialtaskallocation = lt_mapl * sequence = operation = lt_plpo suboperation = lt_subplpo * referenceoperation = * workcenterreference = componentallocation = lt_bom * productionresource = * inspcharacteristic = * textallocation = * text = return = lt_msg * task_segment = . READ TABLE lt_msg INTO ls_msg WITH KEY type = \'E\'. IF sy-subrc = 0. ROLLBACK WORK. ELSE. COMMIT WORK. ENDIF. cl_demo_output=>write( l_plnnr ). cl_demo_output=>write( lt_msg ). cl_demo_output=>display( ).